idoneal - sequences_test.go
1 package meta
2
3 import (
4 "strings"
5 "testing"
6 )
7
8 func TestCountSequences(t *testing.T) {
9 for n, test := range [...]struct {
10 Input string
11 Count int
12 }{
13 {
14 "",
15 0,
16 },
17 {
18 "@",
19 0,
20 },
21 {
22 "@\nA",
23 0,
24 },
25 {
26 "@\nA\n+",
27 0,
28 },
29 {
30 "@\nA\n+\n!",
31 1,
32 },
33 {
34 "@\nAAAAAAAAAAAAAAAAAAAA\n+",
35 0,
36 },
37 {
38 "@\nAAAAAAAAAAAAAAAAAAAA\n+\n!!!!!!!!!!!!!!!!!!!!",
39 1,
40 },
41 {
42 "@\nA\n+\n!\n",
43 1,
44 },
45 {
46 "@\nA\n+\n!\n",
47 1,
48 },
49 {
50 "@\nA\n+\n!\n@\nB\n+",
51 1,
52 },
53 {
54 "@\nA\n+\n!\n@\nB\n+\n!",
55 2,
56 },
57 {
58 "@\nA\n+\n!\n@\nB\n+\n!\n@\nC\n+\n!\n@\nD\n+\n!\n@\nE\n+\n!\n@\nF\n+\n!\n@\nG\n+\n!\n@\nH\n+\n!\n@\nI\n+\n!\n@\nJ\n+\n!\n@\nK\n+\n!\n@\nL\n+\n!\n",
59 12,
60 },
61 } {
62 if count, err := CountSequences(strings.NewReader(test.Input)); err != nil {
63 t.Errorf("test %d: unexpected error: %s", n+1, err)
64 } else if count != test.Count {
65 t.Errorf("test %d: expecting to count %d sequences, got %d", n+1, test.Count, count)
66 }
67 }
68 }
69