public void ArrayMarshall()
{
Interpret(@"var arg = Test.Person('bike', 0, 'kiki')
.Bounce([1, 2, [3]]);
var a = arg is Bike.Array;
var b = arg[0] is Bike.Number;
var c = arg[2] is Bike.Array;
var d = arg[2][0] is Bike.Number;")
.Equal("a", true)
.Equal("b", true)
.Equal("c", true)
.Equal("d", true);
Interpret(@"a = Test.Person('bike', 0, 'kiki')
.TakeArray([1, 2, 3]);")
.Equal("a", true);
Interpret(@"a = Test.Person('bike', 0, 'kiki')
.TakeArray([Test.Person('bike', 0, 'kiki')]);")
.Equal("a", true);
Interpret(@"a = Test.Person('bike', 0, 'kiki')
.TakeArray(['a']);")
.Equal("a", true);
}