UNPKG

1.38 kBJavaScriptView Raw
1var entities = function () { return [
2 'Ishmael', 'Ahab', 'Starbuck', 'Queequeg', 'Stubb', 'Tashtego', 'Flask', 'Daggoo',
3 'Pip', 'Fedallah', 'Peleg', 'Bildad', 'Mapple', 'Boomer', 'Gabriel'
4] }
5
6var duplicates = function () { return [ 'Ahab', 'Starbuck', 'Queequeg', 'Gabriel' ] }
7
8var nested = function () { return [ 'Redburn', 'Jones', 'Riga', 'Jackson', 'Lavender', 'Blunt', 'Larry' ] }
9
10var assert = require( 'assert' )
11 , chai = require( 'chai' )
12 , dg = require( '../lib/dg.js' )
13
14it( 'syntax', function () {
15 assert( function () { return dg = require( '../lib/dg.js' ) }, 'require' );
16} );
17
18it( 'unique', function () {
19 var test1 = dg.unique(entities())
20
21 // Test that unique didn't lop off any values
22 //
23 assert.deepEqual( test1, entities(), 'simple uniqueness' );
24
25 // Add in some duplicates
26 //
27 var entities_dupes = dg.flatten( [ entities(), duplicates() ] );
28
29 // Check to see that unique removes the duplicates we added
30 //
31 var test2 = dg.unique( entities_dupes );
32 assert.deepEqual( test2, entities(), 'uniqueness' );
33
34 // Throw in some nested elements
35 //
36 var nested_test = [ entities(), [ duplicates() ], [ nested() ] ];
37
38 // Create the control list
39 //
40 var nested_control = dg.flatten( [ entities(), nested() ] );
41
42 // Run the test
43 //
44 var test3 = dg.unique( nested_test );
45
46 assert.deepEqual( test3, nested_control, 'deep uniqueness' );
47} );