some more tests in objects

This commit is contained in:
Daniel Kang 2019-01-15 20:21:35 -08:00
parent 2ceaf3bd8f
commit 47da30bb5b
3 changed files with 1687 additions and 1 deletions

1666
c.out Normal file

File diff suppressed because it is too large Load diff

View file

@ -72,6 +72,12 @@ func TestObject_IsFalsy(t *testing.T) {
assert.True(t, o.IsFalsy())
o = &objects.Map{Value: map[string]objects.Object{"a": nil}} // nil is not valid but still count as 1 element
assert.False(t, o.IsFalsy())
o = &objects.StringIterator{}
assert.True(t, o.IsFalsy())
o = &objects.ArrayIterator{}
assert.True(t, o.IsFalsy())
o = &objects.MapIterator{}
assert.True(t, o.IsFalsy())
o = &objects.Break{}
assert.False(t, o.IsFalsy())
o = &objects.Continue{}
@ -110,6 +116,20 @@ func TestObject_String(t *testing.T) {
assert.Equal(t, "[]", o.String())
o = &objects.Map{Value: nil}
assert.Equal(t, "{}", o.String())
o = &objects.StringIterator{}
assert.Equal(t, "<string-iterator>", o.String())
o = &objects.ArrayIterator{}
assert.Equal(t, "<array-iterator>", o.String())
o = &objects.MapIterator{}
assert.Equal(t, "<map-iterator>", o.String())
o = &objects.Break{}
assert.Equal(t, "<break>", o.String())
o = &objects.Continue{}
assert.Equal(t, "<continue>", o.String())
o = &objects.ReturnValue{}
assert.Equal(t, "<return-value>", o.String())
o = &objects.Undefined{}
assert.Equal(t, "<undefined>", o.String())
}
func TestObject_BinaryOp(t *testing.T) {

View file

@ -13,7 +13,7 @@ func (o *ReturnValue) TypeName() string {
}
func (o *ReturnValue) String() string {
return "<return>"
return "<return-value>"
}
// BinaryOp returns another object that is the result of