Answer architecture round 1: read the module path from go.mod, keep the randomness behind State's methods, rename the field drawState and the counter Seq, and file items 108 and 109

This commit is contained in:
2026-10-05 11:52:10 +02:00
committed by Lillem4n
parent ddc3193593
commit 1d0fe9f555
16 changed files with 78 additions and 52 deletions
+10 -10
View File
@@ -5,7 +5,7 @@ import "testing"
func TestOneSeedDrawsOneSequence(t *testing.T) {
a, b := New(42), New(42)
for i := 0; i < 50; i++ {
if x, y := a.Uint64(), b.Uint64(); x != y {
if x, y := a.IntN(1<<30), b.IntN(1<<30); x != y {
t.Fatalf("seed 42 diverged at draw %d: %d != %d", i, x, y)
}
}
@@ -14,7 +14,7 @@ func TestOneSeedDrawsOneSequence(t *testing.T) {
func TestTwoSeedsDrawTwoSequences(t *testing.T) {
a, b := New(1), New(2)
for i := 0; i < 50; i++ {
if a.Uint64() != b.Uint64() {
if a.IntN(1<<30) != b.IntN(1<<30) {
return
}
}
@@ -24,17 +24,17 @@ func TestTwoSeedsDrawTwoSequences(t *testing.T) {
func TestCountersCountFromOneEach(t *testing.T) {
s := New(1)
for want := uint64(1); want <= 3; want++ {
if got := s.Next(""); got != want {
t.Fatalf("Next(\"\") = %d, want %d", got, want)
if got := s.Seq(""); got != want {
t.Fatalf("Seq(\"\") = %d, want %d", got, want)
}
}
if got := s.Next("orders"); got != 1 {
t.Fatalf("Next(orders) = %d, want its own count from 1", got)
if got := s.Seq("orders"); got != 1 {
t.Fatalf("Seq(orders) = %d, want its own count from 1", got)
}
if got := s.Next(""); got != 4 {
t.Fatalf("Next(\"\") after Next(orders) = %d, want 4", got)
if got := s.Seq(""); got != 4 {
t.Fatalf("Seq(\"\") after Seq(orders) = %d, want 4", got)
}
if got := New(1).Next(""); got != 1 {
t.Fatalf("a new state's Next = %d, want 1", got)
if got := New(1).Seq(""); got != 1 {
t.Fatalf("a new state's Seq = %d, want 1", got)
}
}