MCPcopy Create free account
hub / github.com/egonelbre/exp / WriterReaderTest

Function WriterReaderTest

coder/arith/writer_test.go:10–37  ·  view source on GitHub ↗

Tests a model provided by the constructor

(t *testing.T, N int, model func() Model)

Source from the content-addressed store, hash-verified

8
9// Tests a model provided by the constructor
10func WriterReaderTest(t *testing.T, N int, model func() Model) {
11 data := make([]byte, N)
12 for i := range data {
13 data[i] = byte(rand.Int())
14 }
15
16 w := NewWriter(model())
17 n, err := w.Write(data)
18 if n != N || err != nil {
19 t.Fatalf("failed write (%v,%v): %v", n, N, err)
20 }
21
22 if err := w.Close(); err != nil {
23 t.Fatalf("failed close: %v", err)
24 }
25
26 got := make([]byte, N)
27
28 r := NewReader(w.Bytes(), model())
29 n, err = r.Read(got)
30 if n != N || err != nil {
31 t.Fatalf("failed read (%v,%v): %v", n, N, err)
32 }
33
34 if !bytes.Equal(got, data) {
35 t.Fatalf("different content: %v, %v", got, data)
36 }
37}
38
39func TestShiftWriter(t *testing.T) {
40 WriterReaderTest(t, 3, func() Model { return &Shift{Prob(0.5), 3} })

Callers 1

TestShiftWriterFunction · 0.85

Calls 6

WriteMethod · 0.95
CloseMethod · 0.95
BytesMethod · 0.95
ReadMethod · 0.95
NewWriterFunction · 0.70
NewReaderFunction · 0.70

Tested by

no test coverage detected