package selsl import "testing" func Check(t *testing.T, ok bool, mesg ...interface{}) { reporter := t.Logf head := "Check:" if !ok { reporter = t.Errorf head = "Check failed:" } if len(mesg) < 1 { reporter(head) } else { reporter(head+mesg[0].(string), mesg[1:]...) } } func TestCheck(t *testing.T) { Check(t, true, "true") } func TestRootType(t *testing.T) { name := Send(RootType, "name", nil, nil) nameString := string(name.(String)) Check(t, nameString == "Type", "Root type name: %v", name) } func TestStringType(t *testing.T) { raw := "banana" str := String(raw) name := Send(str, "name", nil, nil) nameString := string(name.(String)) Check(t, nameString == raw, "String type name: %v", name) } func TestListType(t *testing.T) { raw := []string{"apple", "banana", "pear"} list := List{String(raw[0]), String(raw[1]), String(raw[2]), } clone := list.Clone().(List) alt := []string{"apple", "kumquat", "pear"} clone[1] = String(alt[1]) for i, s := range raw { f := string(list[i].(String)) Check(t, s == f, "list %s <-> %s", s, f) } for i, s := range alt { f := string(clone[i].(String)) Check(t, s == f, "clone %s <-> %s", s, f) } }