Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var set = require ('./set').set
- , assert = require ('assert')
- , sys = require ("sys")
- setA = set ('a', 'b', 'c', 'd', 'e')
- // setA can be called as a function to check for membership
- assert.equal (true, setA ('a'))
- assert.equal (false, setA ('q'))
- // or, if you prefer:
- assert.equal (true, setA.has ('b'))
- assert.equal (false, setA.has ('r'))
- // to add an element,
- setA.add ('r')
- assert.equal (true, setA ('r'))
- //to remove an element
- setA.del ('r')
- assert.equal (false, setA ('r'))
- //you can add or remove multiple items at a time
- setA.add ('p', 'q')
- assert.equal (true, setA ('p'))
- assert.equal (true, setA ('q'))
- setA.del ('p', 'q')
- assert.equal (false, setA ('p'))
- assert.equal (false, setA ('q'))
- // get the full list of set members. this is inefficient.
- assert.deepEqual (['a', 'b', 'c', 'd', 'e'], setA.members)
- // size
- assert.equal (5, setA.size ())
- //toString
- assert.equal ("<Set:a,b,c,d,e>", setA.toString ())
- //and the important set stuff:
- setA.add ('a', 'a', 'a')
- assert.equal (5, setA.size ())
- // unions
- setB = set ('c', 'd', 'e', 'f')
- union = setA.union (setB)
- assert.deepEqual (['a', 'b', 'c', 'd', 'e', 'f'], union.members)
- // intersection
- intersection = setA.intersection (setB)
- assert.deepEqual (['c', 'd', 'e'], intersection.members)
Add Comment
Please, Sign In to add comment