51 lines
646 B
V
51 lines
646 B
V
struct Dog {
|
|
breed string
|
|
}
|
|
|
|
struct Cat {
|
|
breed string
|
|
}
|
|
|
|
interface Animal {
|
|
breed string
|
|
}
|
|
|
|
fn test_auto_str_gen_for_interfaces() {
|
|
x := Animal(Cat{'Siamese'})
|
|
assert '$x' == "
|
|
Animal(Cat{
|
|
breed: 'Siamese'
|
|
})
|
|
".trim_space()
|
|
}
|
|
|
|
struct Holder {
|
|
x Animal
|
|
}
|
|
|
|
struct Holder2 {
|
|
x map[string]Holder
|
|
breed string
|
|
}
|
|
|
|
fn test_auto_str_gen_for_complex_interface_types() {
|
|
a := Animal(Dog{'hi'})
|
|
h := Holder{a}
|
|
m := {
|
|
'dsa': h
|
|
}
|
|
h2 := Holder2{m, 'N/A'}
|
|
a2 := Animal(h2)
|
|
|
|
assert '$a2' == r"
|
|
Animal(Holder2{
|
|
x: {'dsa': Holder{
|
|
x: Animal(Dog{
|
|
breed: 'hi'
|
|
})
|
|
}}
|
|
breed: 'N/A'
|
|
})
|
|
".trim_space()
|
|
}
|