docs: update Potatium v0.6 architecture and PoP research

This commit is contained in:
Michael Böhmländer committed 2026-10-25 11:45:32 +00:00
1 parent 75df8a5c0d
commit 862ccf1d03
34 files changed
+3257 -18

No files matched your search

+52
View File
@@ -0,0 +1,52 @@
"""Unit tests for offline research simulation only (not consensus tests)."""
from __future__ import annotations
import math
import sys
import tempfile
import unittest
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts"))
from simulate_pop_longterm import (
fee_for_window, progressive_fee, policy_for, should_buy, simulate, save_results,
)
class LongtermSimulationTests(unittest.TestCase):
def test_fee_models_and_free_entry(self):
self.assertEqual(fee_for_window(1, 1000, "original"), 0)
self.assertLess(fee_for_window(2, 1000, "low"), fee_for_window(2, 1000, "original"))
self.assertGreater(progressive_fee(1000), progressive_fee(100))
self.assertGreater(fee_for_window(3, 100, "original"), fee_for_window(2, 100, "original"))
def test_policy_and_budget(self):
self.assertEqual([policy_for(x, "mixed") for x in range(4)],
["free", "rational", "rational", "always"])
ok, reason = should_buy("always", 2, 0, 100, "original", (0.7,)*3, 1)
self.assertFalse(ok)
self.assertEqual(reason, "budget")
def test_zero_capital_never_goes_negative(self):
res = simulate(12, 4, 7, "balanced", "mixed", "original", 1, 10)
self.assertTrue(all(m["balance"] >= -1e-8 for m in res["miners"]))
self.assertLessEqual(res["summary"]["issued"], 40)
self.assertGreaterEqual(res["summary"]["burned"], 0)
def test_free_scenario_no_fees(self):
res = simulate(10, 2, 11, "original", "free", "original", 1, 16)
self.assertEqual(res["summary"]["burned"], 0)
self.assertTrue(all(m["paid_windows2"] == 0 for m in res["miners"]))
def test_reproducible_and_report_files(self):
a = simulate(5, 3, 2026, "balanced", "mixed", "mild", 1, 20)
b = simulate(5, 3, 2026, "balanced", "mixed", "mild", 1, 20)
self.assertEqual(a, b)
with tempfile.TemporaryDirectory() as tmp:
files = save_results(Path(tmp), a)
self.assertEqual(len(files), 4)
self.assertTrue(all(p.is_file() for p in files))
if __name__ == "__main__":
unittest.main()