describe('set_test', function() { it('set() returns an empty set', function() { expect(new phantasus.Set().values()).toEqual([]); }); it('size', function() { var s = new phantasus.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 phantasus.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 phantasus.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' ]); }); });