| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | #!/usr/bin/env node
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							| 
									
										
										
										
											2020-10-06 01:32:33 +03:00
										 |  |  | **********************************************/  /* c8 ignore next 2 */ | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | ((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define) | 
					
						
							|  |  |  | (function(require){ var module={} // make module AMD/node compatible...
 | 
					
						
							|  |  |  | /*********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var colors = require('colors') | 
					
						
							|  |  |  | var test = require('ig-test') | 
					
						
							| 
									
										
										
										
											2020-10-06 03:09:44 +03:00
										 |  |  | var object = require('ig-object') | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | var types = require('./main') | 
					
						
							|  |  |  | var containers = require('./containers') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //---------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 03:03:41 +03:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | var setups = test.Setups({ | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var modifiers = test.Modifiers({ | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var tests = test.Tests({ | 
					
						
							|  |  |  | }) | 
					
						
							| 
									
										
										
										
											2020-10-07 03:03:41 +03:00
										 |  |  | //*/
 | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var cases = test.Cases({ | 
					
						
							| 
									
										
										
										
											2020-10-06 03:09:44 +03:00
										 |  |  | 	// Object.js
 | 
					
						
							|  |  |  | 	// 	- flatCopy
 | 
					
						
							|  |  |  | 	Object: function(assert){ | 
					
						
							|  |  |  | 		var o = Object.assign( | 
					
						
							|  |  |  | 			Object.create({ | 
					
						
							|  |  |  | 				x: 111, | 
					
						
							|  |  |  | 				y: 222, | 
					
						
							|  |  |  | 			}), { | 
					
						
							|  |  |  | 				y: 333, | 
					
						
							|  |  |  | 				z: 444, | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 		var oo = Object.flatCopy(o) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(Object.match(oo, {x: 111, y: 333, z: 444}), '') | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2020-10-06 03:36:40 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-06 02:43:16 +03:00
										 |  |  | 	// Array.js
 | 
					
						
							|  |  |  | 	// 	- flat
 | 
					
						
							|  |  |  | 	// 	- includes
 | 
					
						
							|  |  |  | 	// 	- first
 | 
					
						
							|  |  |  | 	// 	- last
 | 
					
						
							|  |  |  | 	// 	- compact
 | 
					
						
							|  |  |  | 	// 	- len
 | 
					
						
							|  |  |  | 	// 	- toKeys
 | 
					
						
							|  |  |  | 	// 	- toMap
 | 
					
						
							|  |  |  | 	// 	- unique
 | 
					
						
							|  |  |  | 	// 	- tailUnique
 | 
					
						
							|  |  |  | 	// 	- cmp
 | 
					
						
							|  |  |  | 	// 	- setCmp
 | 
					
						
							|  |  |  | 	// 	- sortAs
 | 
					
						
							|  |  |  | 	// 	- mapChunks
 | 
					
						
							|  |  |  | 	// 	- filterChunks
 | 
					
						
							|  |  |  | 	// 	- reduceChunks
 | 
					
						
							|  |  |  | 	Array: function(assert){ | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2020-10-07 03:53:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// Set.js
 | 
					
						
							|  |  |  | 	// 	- unite
 | 
					
						
							|  |  |  | 	// 	- intersect
 | 
					
						
							|  |  |  | 	// 	- subtract
 | 
					
						
							|  |  |  | 	Array: function(assert){ | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2020-10-06 02:43:16 +03:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2020-10-07 03:53:10 +03:00
										 |  |  | 	String: function(assert){ | 
					
						
							|  |  |  | 		assert(''.capitalize() == '') | 
					
						
							|  |  |  | 		assert('a'.capitalize() == 'A') | 
					
						
							|  |  |  | 		assert('abc'.capitalize() == 'Abc') | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	RegExp: function(assert){ | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-06 02:43:16 +03:00
										 |  |  | 	// Date.js
 | 
					
						
							| 
									
										
										
										
											2020-10-06 03:36:40 +03:00
										 |  |  | 	Date: function(assert){ | 
					
						
							|  |  |  | 		var d = new Date() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var ts = assert(d.getTimeStamp(), '.getTimeStamp()') | 
					
						
							|  |  |  | 		var tsm = assert(d.getTimeStamp(true), '.getTimeStamp(true)') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var dd = assert(Date.fromTimeStamp(tsm), '.fromTimeStamp(..)') | 
					
						
							|  |  |  | 		var dds = assert(Date.fromTimeStamp(ts), '.fromTimeStamp(..)') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(d.toString() == dd.toString(), 'timestamp reversable') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(d.toShortDate() == dd.toShortDate(), '.toShortDate()') | 
					
						
							|  |  |  | 		assert(d.toShortDate() == dds.toShortDate(), '.toShortDate()') | 
					
						
							|  |  |  | 		assert(d.toShortDate(true) == dd.toShortDate(true), '.toShortDate(true)') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var a = Date.timeStamp() | 
					
						
							|  |  |  | 		var b = Date.timeStamp(true) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(a == Date.fromTimeStamp(a).getTimeStamp()) | 
					
						
							|  |  |  | 		assert(a + '000' == Date.fromTimeStamp(a).getTimeStamp(true)) | 
					
						
							|  |  |  | 		assert(b == Date.fromTimeStamp(b).getTimeStamp(true)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 03:03:41 +03:00
										 |  |  | 		assert(Date.str2ms('1') == 1, 'Date.str2ms("1")') | 
					
						
							|  |  |  | 		assert(Date.str2ms(1) == 1, 'Date.str2ms(1)') | 
					
						
							|  |  |  | 		assert(Date.str2ms('1ms') == 1, 'Date.str2ms("1ms")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('1s') == 1000, 'Date.str2ms("1s")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('1m') == 60*1000, 'Date.str2ms("1m")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('1h') == 60*60*1000, 'Date.str2ms("1h")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('1d') == 24*60*60*1000, 'Date.str2ms("1d")') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(Date.str2ms('5 sec') == 5000, 'Date.str2ms("1 sec")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('5 second') == 5000, 'Date.str2ms("1 second")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('5 seconds') == 5000, 'Date.str2ms("1 seconds")') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(Date.str2ms('2hour') == 2*60*60*1000, 'Date.str2ms("1hour")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('2 Hour') == 2*60*60*1000, 'Date.str2ms("1 Hour")') | 
					
						
							|  |  |  | 		assert(Date.str2ms('2 hours') == 2*60*60*1000, 'Date.str2ms("1 hours")') | 
					
						
							| 
									
										
										
										
											2020-10-07 03:53:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		assert(Number.isNaN(Date.str2ms('moo')), 'Date.str2ms("moo")') | 
					
						
							|  |  |  | 		assert(Number.isNaN(Date.str2ms('123 moo')), 'Date.str2ms("moo")') | 
					
						
							| 
									
										
										
										
											2020-10-06 03:36:40 +03:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2020-10-06 02:43:16 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// containers.js
 | 
					
						
							| 
									
										
										
										
											2020-10-07 07:33:58 +03:00
										 |  |  | 	// XXX .reset(..) and .rename(..) should not affect order...
 | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | 	UniqueKeyMap: function(assert){ | 
					
						
							|  |  |  | 		var a = assert(containers.UniqueKeyMap(), '') | 
					
						
							|  |  |  | 		var b = assert(containers.UniqueKeyMap([]), '') | 
					
						
							|  |  |  | 		var c = assert(containers.UniqueKeyMap([ | 
					
						
							|  |  |  | 			['a', 111], | 
					
						
							|  |  |  | 			['b', 222], | 
					
						
							|  |  |  | 			['a', 333], | 
					
						
							|  |  |  | 		]), '') | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		assert(a.size == 0) | 
					
						
							|  |  |  | 		assert(b.size == 0) | 
					
						
							|  |  |  | 		assert(c.size == 3) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(c.get('a') == 111) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(c.has('a (1)')) | 
					
						
							|  |  |  | 		assert(c.get('a (1)') == 333) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var n | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert((n = c.set('a', 444, true)) == 'a (2)') | 
					
						
							|  |  |  | 		assert(c.get(n) == 444) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(c.reset(n, 555)) | 
					
						
							|  |  |  | 		assert(c.get(n) == 555) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(c.delete('a (1)')) | 
					
						
							|  |  |  | 		assert(!c.has('a (1)')) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert((n = c.set('a', 222, true)) == 'a (1)') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		assert(c.keysOf(222).sort().cmp(['b', 'a'].sort())) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 07:33:58 +03:00
										 |  |  | 		var k = [...c.keys()] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | 		assert((n = c.rename('a', 'b', true)) == 'b (1)') | 
					
						
							| 
									
										
										
										
											2020-10-07 07:33:58 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// XXX should .rename(..) affect element order??
 | 
					
						
							|  |  |  | 		//console.log('>>>>>', k, [...c.keys()])
 | 
					
						
							| 
									
										
										
										
											2020-10-06 00:52:05 +03:00
										 |  |  | 	}, | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //---------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typeof(__filename) != 'undefined' | 
					
						
							|  |  |  | 	&& __filename == (require.main || {}).filename | 
					
						
							|  |  |  | 	&& test.run() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                               */ return module }) |