From d3bfe4c5b7ea8c6cfc887780087d8a81caa80569 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Mon, 30 Dec 2019 20:53:05 +0300 Subject: [PATCH] Added additional tests for LevelledTopologicalSorter --- .../utils/LevelledTopologicalSorter.spec.ts | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/test/unit-tests/utils/LevelledTopologicalSorter.spec.ts b/test/unit-tests/utils/LevelledTopologicalSorter.spec.ts index 4616d861..62764505 100644 --- a/test/unit-tests/utils/LevelledTopologicalSorter.spec.ts +++ b/test/unit-tests/utils/LevelledTopologicalSorter.spec.ts @@ -53,7 +53,7 @@ describe('EscapeSequenceEncoder', () => { }); }); - describe('Variant #1: Base sort with grouping', () => { + describe('Variant #2: Base sort with grouping', () => { const expectedSortedItems: string[][] = [ ['C', 'D', 'F'], ['A', 'E'], @@ -71,5 +71,53 @@ describe('EscapeSequenceEncoder', () => { }); }); }); + + describe('Sort without relations', () => { + beforeEach(() => { + levelledTopologicalSorter.add('A'); + levelledTopologicalSorter.add('B'); + levelledTopologicalSorter.add('C'); + levelledTopologicalSorter.add('D'); + levelledTopologicalSorter.add('E'); + levelledTopologicalSorter.add('F'); + }); + + describe('Variant #1: Should sort items without relations', () => { + const expectedSortedItems: string[] = [ + 'A', + 'B', + 'C', + 'D', + 'E', + 'F' + ]; + + let sortedItems: string[]; + + beforeEach(() => { + sortedItems = levelledTopologicalSorter.sort(); + }); + + it('should topologically linear sort items', () => { + assert.deepEqual(sortedItems, expectedSortedItems); + }); + }); + + describe('Variant #2: Should sort items without relations with grouping', () => { + const expectedSortedItems: string[][] = [ + ['A', 'B', 'C', 'D', 'E', 'F'] + ]; + + let sortedItems: string[][]; + + beforeEach(() => { + sortedItems = levelledTopologicalSorter.sortByGroups(); + }); + + it('should topologically linear sort items', () => { + assert.deepEqual(sortedItems, expectedSortedItems); + }); + }); + }); }); });