66 lines
1.2 KiB
Elixir
66 lines
1.2 KiB
Elixir
Code.require_file "../test_helper", __FILE__
|
|
|
|
module TupleTest
|
|
mixin ExUnit::Case
|
|
|
|
def brackets_test
|
|
1 = {1,2,3}[0]
|
|
2 = {1,2,3}[1]
|
|
3 = {1,2,3}[2]
|
|
nil = {1,2,3}[3]
|
|
|
|
end
|
|
|
|
def brackets_negative_index_test
|
|
1 = {1,2,3}[-3]
|
|
2 = {1,2,3}[-2]
|
|
3 = {1,2,3}[-1]
|
|
nil = {1,2,3}[-4]
|
|
end
|
|
|
|
def brackets_invalid_index_type_test
|
|
assert_error 'badarg, do
|
|
{1,2,3}["somestring"]
|
|
end
|
|
|
|
% TODO: Fix this assertion when Tuple#[] raises 'badarg when atom is passed
|
|
assert_error 'undef, do
|
|
{1,2,3}['someatom]
|
|
end
|
|
end
|
|
|
|
def set_test
|
|
{ 4, 2, 3 } = { 1, 2, 3 }.set(0, 4)
|
|
{ 1, 2, 4 } = { 1, 2, 3 }.set(2, 4)
|
|
{ 4, 2, 3 } = { 1, 2, 3 }.set(-3, 4)
|
|
{ 1, 2, 4 } = { 1, 2, 3 }.set(-1, 4)
|
|
end
|
|
|
|
def unpack_test
|
|
{ x, x } = { 1, 1 }
|
|
1 = x
|
|
|
|
assert_error { 'badmatch, { 1, 2 } }, do
|
|
{ y, y } = { 1, 2 }
|
|
end
|
|
end
|
|
|
|
def empty_test
|
|
false = {"abc"}.empty?
|
|
true = Tuple.empty.empty?
|
|
end
|
|
|
|
def to_list_test
|
|
[1,2,3] = {1,2,3}.to_list
|
|
end
|
|
|
|
def length_size_test
|
|
3 = {1,2,3}.length
|
|
0 = Tuple.empty.size
|
|
end
|
|
|
|
def inspect_test
|
|
"{1,2,3}" = {1,2,3}.inspect
|
|
"Tuple.empty" = Tuple.empty.inspect
|
|
end
|
|
end |