ucg/std/tests/lists_test.ucg
Jeremy Wall a90df8a362 REFACTOR: Cleanup the syntax for the select expr
This makes it both easier to correctly write a select expression
as well as easier to parse and report syntax errors.
2019-11-02 11:01:47 -05:00

83 lines
1.4 KiB
Plaintext

let list = import "std/lists.ucg";
let t = import "std/testing.ucg";
let list_to_join = [1, 2, 3];
assert t.equal{
left=list.ops{list=list_to_join}.str_join(","),
right="1,2,3"
};
assert t.equal{
left=list.ops{list=[0, 1, 2, 3]}.len,
right=4,
};
assert t.equal{
left = list.ops{list=[0, 1, 2, 3]}.reverse().list,
right = [3, 2, 1, 0],
};
assert t.equal{
left=list.ops{list=["foo", "bar"]}.enumerate().list,
right=[[0, "foo"], [1, "bar"]],
};
assert t.equal{
left=list.enumerate{start=1, list=["foo", "bar"]},
right=[[1, "foo"], [2, "bar"]],
};
assert t.equal{
left=list.enumerate{
start=1,
step=2,
list=["foo", "bar"]
},
right=[[1, "foo"], [3, "bar"]],
};
assert t.equal{
left=list.zip{list1=[0, 1], list2=[3, 4]},
right=[[0, 3], [1, 4]],
};
assert t.equal{
left=list.tail([0,1,2,3,4]),
right=[1,2,3,4],
};
assert t.equal{
left=list.ops{list=[0,1,2,3,4]}.head(),
right=[0],
};
assert t.equal{
left=list.ops{list=[0,1,2,3,4]}.tail().list,
right=[1,2,3,4],
};
assert t.equal{
left=list.slice{end=2, list=[0,1,2,3]},
right=[0,1,2],
};
assert t.equal{
left=list.slice{list=[0,1,2,3]},
right=[0,1,2,3],
};
assert t.equal{
left=list.slice{end=0, list=[0,1,2,3]},
right=[0],
};
assert t.equal{
left=list.slice{list=[]},
right=[],
};
assert t.equal{
left=list.slice{list=[0]},
right=[0],
};