(namespace tests.set (test.case "set.empty?" (assert.ok! (set.empty? (set.new))) (assert.not! (set.empty? (set.new 1))) ) (test.case "set.len" (assert.eq! (set.len (set.new)) 0) (assert.eq! (set.len (set.new 1)) 1) (assert.eq! (set.len (set.new 1 2 3)) 3) ) (test.case "set.has" (assert.ok! (set.has (set.new 1 2 3) 2)) (assert.not! (set.has (set.new 1 2 3) 5)) ) (test.case "set.add" (assert.ok! (set.has (set.add (set.new 1 2) 3) 3)) (assert.eq! (set.len (set.add (set.new 1 2) 3)) 3) ) (test.case "set.remove" (assert.not! (set.has (set.remove (set.new 1 2 3) 2) 2)) (assert.eq! (set.len (set.remove (set.new 1 2 3) 2)) 2) ) (test.case "set.union" (assert.eq! (set.len (set.union (set.new 1 2) (set.new 2 3))) 3) (assert.ok! (set.has (set.union (set.new 1 2) (set.new 2 3)) 1)) (assert.ok! (set.has (set.union (set.new 1 2) (set.new 2 3)) 3)) ) (test.case "set.intersection" (assert.eq! (set.len (set.intersection (set.new 1 2 3) (set.new 2 3 4))) 2) (assert.ok! (set.has (set.intersection (set.new 1 2 3) (set.new 2 3 4)) 2)) (assert.ok! (set.has (set.intersection (set.new 1 2 3) (set.new 2 3 4)) 3)) ) (test.case "set.difference" (assert.eq! (set.len (set.difference (set.new 1 2 3) (set.new 2 3))) 1) (assert.ok! (set.has (set.difference (set.new 1 2 3) (set.new 2 3)) 1)) ) )