1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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)
- }
- }
|