You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							143 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							143 lines
						
					
					
						
							2.2 KiB
						
					
					
				| require './_prepare'
 | |
| 
 | |
| array = mod 'array'
 | |
| 
 | |
| test 'from', ->
 | |
| 
 | |
| 	array.from([1]).should.be.an.instanceOf Array
 | |
| 	array.from([1])[0].should.equal 1
 | |
| 
 | |
| # test 'clone', ->
 | |
| 
 | |
| # 	a = [0, 1, 2]
 | |
| 
 | |
| # 	b = array.clone a
 | |
| 
 | |
| # 	b[0].should.equal 0
 | |
| # 	b[1].should.equal 1
 | |
| 
 | |
| # 	b[0] = 3
 | |
| 
 | |
| # 	a[0].should.equal 0
 | |
| 
 | |
| test 'pluck', ->
 | |
| 
 | |
| 	a = [0, 1, 2, 3]
 | |
| 
 | |
| 	after = array.pluck a, 1
 | |
| 
 | |
| 	after.length.should.equal 3
 | |
| 
 | |
| 	after[0].should.equal 0
 | |
| 	after[1].should.equal 2
 | |
| 	after[2].should.equal 3
 | |
| 	after.should.equal a
 | |
| 
 | |
| test 'pluckMultiple', ->
 | |
| 
 | |
| 	a = [0, 1, 2, 3, 4, 5, 6]
 | |
| 
 | |
| 	array.pluckMultiple a, [0, 4, 2, 6]
 | |
| 
 | |
| 	a.length.should.equal 3
 | |
| 	a[0].should.equal 1
 | |
| 	a[1].should.equal 3
 | |
| 	a[2].should.equal 5
 | |
| 
 | |
| test 'pluckItem', ->
 | |
| 
 | |
| 	a = [0, 1, 2, 3, 2, 4, 2]
 | |
| 
 | |
| 	array.pluckItem a, 2
 | |
| 
 | |
| 	a[0].should.equal 0
 | |
| 	a[1].should.equal 1
 | |
| 	a[2].should.equal 3
 | |
| 	a[3].should.equal 4
 | |
| 
 | |
| 	array.pluckItem([1], 2).length.should.equal 1
 | |
| 
 | |
| 
 | |
| test 'pluckOneItem', ->
 | |
| 
 | |
| 	a = [0, 1, 2, 3, 2, 4, 2]
 | |
| 
 | |
| 	array.pluckOneItem a, 2
 | |
| 
 | |
| 	a[0].should.equal 0
 | |
| 	a[1].should.equal 1
 | |
| 	a[2].should.equal 3
 | |
| 	a[3].should.equal 2
 | |
| 	a[4].should.equal 4
 | |
| 	a[5].should.equal 2
 | |
| 
 | |
| 	a = [1, 2]
 | |
| 
 | |
| 	array.pluckOneItem a, 1
 | |
| 
 | |
| 	a.length.should.equal 1
 | |
| 	a[0].should.equal 2
 | |
| 
 | |
| 	array.pluckOneItem([], 1).length.should.equal 0
 | |
| 
 | |
| 	array.pluckOneItem([1], 2).length.should.equal 1
 | |
| 
 | |
| test 'plcukByCallback', ->
 | |
| 
 | |
| 	a = [0, 1, 2, 3]
 | |
| 
 | |
| 	array.pluckByCallback a, (val, i) ->
 | |
| 
 | |
| 		return yes if val is 2
 | |
| 
 | |
| 		return no
 | |
| 
 | |
| 	a[0].should.equal 0
 | |
| 	a[1].should.equal 1
 | |
| 	a[2].should.equal 3
 | |
| 
 | |
| test 'injectByCallback', ->
 | |
| 
 | |
| 	shouldInject = (valA, valB, toInject) ->
 | |
| 
 | |
| 		unless valA?
 | |
| 
 | |
| 			return yes if toInject <= valB
 | |
| 
 | |
| 			return no
 | |
| 
 | |
| 		unless valB?
 | |
| 
 | |
| 			return yes if valA <= toInject
 | |
| 
 | |
| 			return no
 | |
| 
 | |
| 		return yes if valA <= toInject <= valB
 | |
| 
 | |
| 		return no
 | |
| 
 | |
| 	a = [0.5, 1, 2.5, 2.5, 2.75, 2.75, 3]
 | |
| 
 | |
| 	array.injectByCallback a, 0, shouldInject
 | |
| 
 | |
| 	a[0].should.equal 0
 | |
| 	a[1].should.equal 0.5
 | |
| 	a[7].should.equal 3
 | |
| 
 | |
| 	a = [0.5, 1, 2.5, 2.5, 2.75, 2.75, 3]
 | |
| 
 | |
| 	array.injectByCallback a, 2.7, shouldInject
 | |
| 
 | |
| 	a[0].should.equal 0.5
 | |
| 	a[4].should.equal 2.7
 | |
| 	a[5].should.equal 2.75
 | |
| 	a[7].should.equal 3
 | |
| 
 | |
| 	a = [0.5, 1, 2.5, 2.5, 2.75, 2.75, 3]
 | |
| 
 | |
| 	array.injectByCallback a, 3.2, shouldInject
 | |
| 
 | |
| 	a[0].should.equal 0.5
 | |
| 	a[4].should.equal 2.75
 | |
| 	a[6].should.equal 3
 | |
| 	a[7].should.equal 3.2 |