spreadlab/internal/engine
Justin Visser e73db0bdd4 refactor engine: decompose Holme-Kim into builder methods
The generator's working state (graph, attachment pool, rng) moves into
a holmeKimBuilder struct so each algorithm step is a small named
method: attachNewNode, link, pickMutualFriend, degreeProportionalSample.
Max nesting drops from five levels to two. The RNG call order is
untouched, and the golden test (99/70/7 reached) plus the fixed-seed
determinism test prove behaviour is bit-for-bit identical.
Go bits: pointer receivers ((b *holmeKimBuilder)) let methods mutate
the builder; (value, ok) multiple returns are the idiom for 'may not
exist', as in pickMutualFriend.
2026-06-10 12:37:57 +02:00
..
cascade.go engine: edge thresholds and the independent cascade 2026-06-10 12:08:12 +02:00
cascade_test.go engine: edge thresholds and the independent cascade 2026-06-10 12:08:12 +02:00
educate.go engine: education strategies (random vs most-connected) 2026-06-10 12:08:39 +02:00
educate_test.go engine: education strategies (random vs most-connected) 2026-06-10 12:08:39 +02:00
graph.go engine: undirected simple graph with deterministic neighbour order 2026-06-10 11:58:45 +02:00
graph_test.go engine: undirected simple graph with deterministic neighbour order 2026-06-10 11:58:45 +02:00
holmekim.go refactor engine: decompose Holme-Kim into builder methods 2026-06-10 12:37:57 +02:00
holmekim_test.go engine: Holme-Kim network generator (powerlaw_cluster_graph port) 2026-06-10 12:05:43 +02:00
rng.go engine: seeded RNG helper, first tests 2026-06-10 11:57:39 +02:00
rng_test.go engine: undirected simple graph with deterministic neighbour order 2026-06-10 11:58:45 +02:00
scenario.go engine: Config, scenario runner, golden regression tests; demo CLI 2026-06-10 12:24:47 +02:00
scenario_test.go engine: Config, scenario runner, golden regression tests; demo CLI 2026-06-10 12:24:47 +02:00