UNPKG

jsii-reflect

Version:

strongly-typed reflection library and tools for jsii

58 lines 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const hierarchical_set_1 = require("../lib/hierarchical-set"); test('empty set', () => { expect(Array.from(new hierarchical_set_1.HierarchicalSet())).toEqual([]); }); test('set iteration', () => { const hs = new hierarchical_set_1.HierarchicalSet([ ['a'], ['a', 'b', 'c'], ['a', 'b', 'd'], ['a', 'e'], ['f'], ]); expect(Array.from(hs)).toEqual([ ['a'], ['a', 'b', 'c'], ['a', 'b', 'd'], ['a', 'e'], ['f'], ]); }); test('add prefix after child', () => { const hs = new hierarchical_set_1.HierarchicalSet(); hs.addAll([['a', 'b']]); hs.addAll([['a']]); expect(Array.from(hs)).toEqual([['a'], ['a', 'b']]); }); describe('remove', () => { test('remove literals', () => { const x = new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c'], ['d']]); x.remove([['a', 'b'], ['c']]); expect(Array.from(x)).toEqual([['d']]); }); test('remove parents', () => { const x = new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c'], ['d']]); x.remove([['a']]); expect(Array.from(x)).toEqual([['c'], ['d']]); }); }); describe('intersect', () => { test('retains literal elements', () => { const x = new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c'], ['d']]); x.intersect(new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c']])); expect(Array.from(x)).toEqual([['a', 'b'], ['c']]); }); test('retains children of parents', () => { const x = new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c'], ['d']]); x.intersect(new hierarchical_set_1.HierarchicalSet([['a']])); expect(Array.from(x)).toEqual([['a', 'b']]); }); test('parent and child only retains child', () => { const x = new hierarchical_set_1.HierarchicalSet([['a'], ['a', 'b']]); x.intersect(new hierarchical_set_1.HierarchicalSet([['a', 'b'], ['c']])); expect(Array.from(x)).toEqual([['a', 'b']]); }); }); //# sourceMappingURL=hierarchical-set.test.js.map