describe("set_test", function() { it("set() returns an empty set", function() { expect(new morpheus.Set().values()).toEqual([]); }); it("size", function() { var s = new morpheus.Set(); expect(s.size()).toEqual(0); s.add("foo"); expect(s.size()).toEqual(1); s.add("foo"); expect(s.size()).toEqual(1); s.add("bar"); expect(s.size()).toEqual(2); s.remove("foo"); expect(s.size()).toEqual(1); s.remove("foo"); expect(s.size()).toEqual(1); s.remove("bar"); expect(s.size()).toEqual(0); }); it("forEach", function() { var s = new morpheus.Set(); s.add("foo"); s.add("bar"); var c = []; s.forEach(function(v) { c.push(v); }); c.sort(); expect(c).toEqual([ "bar", "foo" ]); }); it("add and remove", function() { var s = new morpheus.Set(); s.add("foo"); s.add("bar"); expect(s.values().sort()).toEqual([ "bar", "foo" ]); s.remove("foo"); expect(s.values().sort()).toEqual([ "bar" ]); s.add("bar"); expect(s.values().sort()).toEqual([ "bar" ]); s.remove("bar"); expect(s.values().sort()).toEqual([]); s.add("foo"); expect(s.values().sort()).toEqual([ "foo" ]); }); });