suite('lunr.Set', function () { suite('#contains', function () { suite('complete set', function () { test('returns true', function () { assert.isOk(lunr.Set.complete.contains('foo')) }) }) suite('empty set', function () { test('returns false', function () { assert.isNotOk(lunr.Set.empty.contains('foo')) }) }) suite('populated set', function () { setup(function () { this.set = new lunr.Set (['foo']) }) test('element contained in set', function () { assert.isOk(this.set.contains('foo')) }) test('element not contained in set', function () { assert.isNotOk(this.set.contains('bar')) }) }) }) suite('#union', function () { setup(function () { this.set = new lunr.Set(['foo']) }) suite('complete set', function () { test('union is complete', function () { var result = lunr.Set.complete.union(this.set) assert.isOk(result.contains('foo')) assert.isOk(result.contains('bar')) }) }) suite('empty set', function () { test('contains element', function () { var result = lunr.Set.empty.union(this.set) assert.isOk(result.contains('foo')) assert.isNotOk(result.contains('bar')) }) }) suite('populated set', function () { suite('with other populated set', function () { test('contains both elements', function () { var target = new lunr.Set (['bar']) var result = target.union(this.set) assert.isOk(result.contains('foo')) assert.isOk(result.contains('bar')) assert.isNotOk(result.contains('baz')) }) }) suite('with empty set', function () { test('contains all elements', function () { var target = new lunr.Set (['bar']) var result = target.union(lunr.Set.empty) assert.isOk(result.contains('bar')) assert.isNotOk(result.contains('baz')) }) }) suite('with complete set', function () { test('contains all elements', function () { var target = new lunr.Set (['bar']) var result = target.union(lunr.Set.complete) assert.isOk(result.contains('foo')) assert.isOk(result.contains('bar')) assert.isOk(result.contains('baz')) }) }) }) }) suite('#intersect', function () { setup(function () { this.set = new lunr.Set(['foo']) }) suite('complete set', function () { test('contains element', function () { var result = lunr.Set.complete.intersect(this.set) assert.isOk(result.contains('foo')) assert.isNotOk(result.contains('bar')) }) }) suite('empty set', function () { test('does not contain element', function () { var result = lunr.Set.empty.intersect(this.set) assert.isNotOk(result.contains('foo')) }) }) suite('populated set', function () { suite('no intersection', function () { test('does not contain intersection elements', function () { var target = new lunr.Set (['bar']) var result = target.intersect(this.set) assert.isNotOk(result.contains('foo')) assert.isNotOk(result.contains('bar')) }) }) suite('intersection', function () { test('contains intersection elements', function () { var target = new lunr.Set (['foo', 'bar']) var result = target.intersect(this.set) assert.isOk(result.contains('foo')) assert.isNotOk(result.contains('bar')) }) }) suite('with empty set', function () { test('returns empty set', function () { var target = new lunr.Set(['foo']), result = target.intersect(lunr.Set.empty) assert.isNotOk(result.contains('foo')) }) }) suite('with complete set', function () { test('returns populated set', function () { var target = new lunr.Set(['foo']), result = target.intersect(lunr.Set.complete) assert.isOk(result.contains('foo')) assert.isNotOk(result.contains('bar')) }) }) }) }) })