You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fx/dict_test.go

78 lines
1.4 KiB
Go

package main
import "testing"
func Test_dict(t *testing.T) {
d := newDict()
d.set("number", 3)
v, _ := d.get("number")
if v.(int) != 3 {
t.Error("Set number")
}
i, _ := d.index("number")
if i != 0 {
t.Error("Index error")
}
// string
d.set("string", "x")
v, _ = d.get("string")
if v.(string) != "x" {
t.Error("Set string")
}
i, _ = d.index("string")
if i != 1 {
t.Error("Index error")
}
// string slice
d.set("strings", []string{
"t",
"u",
})
v, _ = d.get("strings")
if v.([]string)[0] != "t" {
t.Error("Set strings first index")
}
if v.([]string)[1] != "u" {
t.Error("Set strings second index")
}
i, _ = d.index("strings")
if i != 2 {
t.Error("Index error")
}
// mixed slice
d.set("mixed", []interface{}{
1,
"1",
})
v, _ = d.get("mixed")
if v.([]interface{})[0].(int) != 1 {
t.Error("Set mixed int")
}
if v.([]interface{})[1].(string) != "1" {
t.Error("Set mixed string")
}
// overriding existing key
d.set("number", 4)
v, _ = d.get("number")
if v.(int) != 4 {
t.Error("Override existing key")
}
// keys
expectedKeys := []string{
"number",
"string",
"strings",
"mixed",
}
for i, key := range d.keys {
if key != expectedKeys[i] {
t.Error("Keys method", key, "!=", expectedKeys[i])
}
}
for i, key := range expectedKeys {
if key != expectedKeys[i] {
t.Error("Keys method", key, "!=", expectedKeys[i])
}
}
}