INNER CODE UNIT · Go
TestChain_MarshalJSON
mb-14/gomarkov · gomarkov_test.go:9
func TestChain_MarshalJSON(t *testing.T) {
tests := []struct {
name string
order int
data [][]string
want string
wantErr bool
}{
{"Empty chain", 2, [][]string{}, `{"int":2,"spool_map":{},"freq_mat":{}}`, false},
{"Empty chain, order 1", 1, [][]string{}, `{"int":1,"spool_map":{},"freq_mat":{}}`, false},
{"Trained once", 1, [][]string{{"Test"}}, `{"int":1,"spool_map":{"$":2,"Test":1,"^":0},"freq_mat":{"0":{"1":1},"1":{"2":1}}}`, false},
{"Trained on more data", 1, [][]string{{"test", "data"}, {"test", "data"}, {"test", "node"}}, `{"int":1,"spool_map":{"$":3,"^":0,"data":2,"node":4,"test":1},"freq_mat":{"0":{"1":3},"1":{"2":2,"4":1},"2":{"3":2},"4":{"3":1}}}`, false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
chain := NewChain(tt.order)
for _, data := range tt.data {
chain.Add(data)