86 lines
1.9 KiB
Elixir
86 lines
1.9 KiB
Elixir
Code.require_file "../test_helper", __FILE__
|
|
|
|
module SetTest
|
|
mixin ExUnit::Case
|
|
|
|
def is_set_test
|
|
true = Set.new().set?
|
|
end
|
|
|
|
def from_list_test
|
|
set = Set.from_list([1,2,3])
|
|
true = set.include?(1)
|
|
true = set.include?(2)
|
|
true = set.include?(3)
|
|
3 = set.size
|
|
end
|
|
|
|
def size_test
|
|
0 = Set.new().size
|
|
1 = Set.new().add(2).size
|
|
end
|
|
|
|
def to_list_test
|
|
[] = Set.new.to_list
|
|
[1] = Set.new.add(1).to_list
|
|
end
|
|
|
|
def add_test
|
|
[1] = Set.new().add(1).to_list
|
|
end
|
|
|
|
def include_test
|
|
false = Set.new().include?(1)
|
|
true = Set.new().add(1).include?(1)
|
|
end
|
|
|
|
def delete_test
|
|
false = Set.new().add(1).delete(1).include?(1)
|
|
end
|
|
|
|
def equality_test
|
|
true = Set.new == Set.new
|
|
false = Set.new == Set.new.add(1)
|
|
true = Set.new.add(1) == Set.new.add(1)
|
|
end
|
|
|
|
def union_test
|
|
true = Set.from_list([1,2,3]) == Set.new.add(1).add(2).union(Set.new.add(2).add(3))
|
|
true = Set.from_list([1,2,3,4,5]) == Set.from_list([1,2,3]).union(Set.from_list([2,4,5]))
|
|
end
|
|
|
|
def intersection_test
|
|
[2] = Set.new.add(1).add(2).intersection(Set.new.add(2).add(3)).to_list
|
|
end
|
|
|
|
def disjoint_test
|
|
true = Set.new.add(1).disjoint?(Set.new.add(2))
|
|
false = Set.new.add(1).disjoint?(Set.new.add(1))
|
|
end
|
|
|
|
def subtract_test
|
|
[1] = Set.new.add(1).add(2).subtract(Set.new.add(2)).to_list
|
|
[1] = (Set.from_list([1,2,3]) - Set.from_list([2,3,4])).to_list
|
|
end
|
|
|
|
def subset_test
|
|
true = Set.new.add(1).subset?(Set.new.add(1).add(2))
|
|
false = Set.new.add(3).subset?(Set.new.add(1).add(2))
|
|
end
|
|
|
|
def superset_test
|
|
false = Set.new.add(1).superset?(Set.new.add(1).add(2))
|
|
true = Set.new.add(1).add(2).superset?(Set.new.add(1))
|
|
end
|
|
|
|
def fold_test
|
|
set = Set.new.add(1).add(2)
|
|
3 = set.fold(-> (x,y) x + y, 0)
|
|
end
|
|
|
|
def filter_test
|
|
set = Set.from_list([1,2,3,4])
|
|
true = Set.from_list([3,4]) == set.filter(-> (x) x > 2)
|
|
end
|
|
end
|