owa-rs/modules/core/tests/set.owa
2026-05-06 12:21:06 +03:00

44 lines
No EOL
1.4 KiB
Text

(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))
)
)