-module(gleam@set_test). -compile(no_auto_import). -export([size_test/0, contains_test/0, delete_test/0, to_list_test/0, from_list_test/0, fold_test/0, filter_test/0, take_test/0, union_test/0, intersection_test/0]). -spec size_test() -> gleam@should:expectation(). size_test() -> gleam@should:equal(gleam@set:size(gleam@set:new()), 0), gleam@should:equal( gleam@set:size( gleam@set:insert(gleam@set:insert(gleam@set:new(), 1), 2) ), 2 ), gleam@should:equal( gleam@set:size( gleam@set:insert( gleam@set:insert(gleam@set:insert(gleam@set:new(), 1), 1), 2 ) ), 2 ). -spec contains_test() -> gleam@should:expectation(). contains_test() -> gleam@should:be_true( gleam@set:contains(gleam@set:insert(gleam@set:new(), 1), 1) ), gleam@should:be_false(gleam@set:contains(gleam@set:new(), 1)). -spec delete_test() -> gleam@should:expectation(). delete_test() -> gleam@should:be_false( gleam@set:contains( gleam@set:delete(gleam@set:insert(gleam@set:new(), 1), 1), 1 ) ). -spec to_list_test() -> gleam@should:expectation(). to_list_test() -> gleam@should:equal( gleam@list:sort( gleam@set:to_list( gleam@set:insert( gleam@set:insert(gleam@set:insert(gleam@set:new(), 2), 3), 4 ) ), fun gleam@int:compare/2 ), [2, 3, 4] ). -spec from_list_test() -> gleam@should:expectation(). from_list_test() -> gleam@should:equal( gleam@list:sort( gleam@set:to_list(gleam@set:from_list([1, 1, 2, 4, 3, 2])), fun gleam@int:compare/2 ), [1, 2, 3, 4] ). -spec fold_test() -> integer(). fold_test() -> gleam@set:fold(gleam@set:from_list([1, 3, 9]), 0, fun(M, A) -> M + A end). -spec filter_test() -> gleam@should:expectation(). filter_test() -> gleam@should:equal( gleam@set:to_list( gleam@set:filter( gleam@set:from_list([1, 4, 6, 3, 675, 44, 67]), fun gleam@int:is_even/1 ) ), [4, 6, 44] ). -spec take_test() -> gleam@should:expectation(). take_test() -> gleam@should:equal( gleam@set:take(gleam@set:from_list([1, 2, 3]), [1, 3, 5]), gleam@set:from_list([1, 3]) ). -spec union_test() -> gleam@should:expectation(). union_test() -> gleam@should:equal( gleam@set:to_list( gleam@set:union( gleam@set:from_list([1, 2]), gleam@set:from_list([2, 3]) ) ), [1, 2, 3] ). -spec intersection_test() -> gleam@should:expectation(). intersection_test() -> gleam@should:equal( gleam@set:to_list( gleam@set:intersection( gleam@set:from_list([1, 2]), gleam@set:from_list([2, 3]) ) ), [2] ).