79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								USING: sequences sequences.private arrays bit-arrays kernel
							 | 
						||
| 
								 | 
							
								tools.test math random ;
							 | 
						||
| 
								 | 
							
								IN: bit-arrays.tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ 100 ] [ 100 <bit-array> length ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[
							 | 
						||
| 
								 | 
							
								    { t f t }
							 | 
						||
| 
								 | 
							
								] [
							 | 
						||
| 
								 | 
							
								    3 <bit-array> t 0 pick set-nth t 2 pick set-nth
							 | 
						||
| 
								 | 
							
								    >array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[
							 | 
						||
| 
								 | 
							
								    { t f t }
							 | 
						||
| 
								 | 
							
								] [
							 | 
						||
| 
								 | 
							
								    { t f t } >bit-array >array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[
							 | 
						||
| 
								 | 
							
								    { t f t } { f t f }
							 | 
						||
| 
								 | 
							
								] [
							 | 
						||
| 
								 | 
							
								    { t f t } >bit-array dup clone dup [ not ] change-each
							 | 
						||
| 
								 | 
							
								    [ >array ] bi@
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[
							 | 
						||
| 
								 | 
							
								    { f f f f f }
							 | 
						||
| 
								 | 
							
								] [
							 | 
						||
| 
								 | 
							
								    { t f t t f } >bit-array dup clear-bits >array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[
							 | 
						||
| 
								 | 
							
								    { t t t t t }
							 | 
						||
| 
								 | 
							
								] [
							 | 
						||
| 
								 | 
							
								    { t f t t f } >bit-array dup set-bits >array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ t ] [
							 | 
						||
| 
								 | 
							
								    100 [
							 | 
						||
| 
								 | 
							
								        drop 100 [ 2 random zero? ] replicate
							 | 
						||
| 
								 | 
							
								        dup >bit-array >array =
							 | 
						||
| 
								 | 
							
								    ] all?
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ?{ f } ] [
							 | 
						||
| 
								 | 
							
								    1 2 { t f t f } <slice> >bit-array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ?{ f t } ] [ 0 2 ?{ f t f } subseq ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ?{ t f t f f f } ] [ 6 ?{ t f t } resize ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ?{ t t } ] [ 2 ?{ t t f t f t f t t t f t } resize ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ -10 ?{ } resize ] must-fail
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ -1 integer>bit-array ] must-fail
							 | 
						||
| 
								 | 
							
								[ ?{ } ] [ 0 integer>bit-array ] unit-test
							 | 
						||
| 
								 | 
							
								[ ?{ f t } ] [ 2 integer>bit-array ] unit-test
							 | 
						||
| 
								 | 
							
								[ ?{ t t t t t t t t t } ] [ 511 integer>bit-array ] unit-test
							 | 
						||
| 
								 | 
							
								[ ?{ 
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								} ] [
							 | 
						||
| 
								 | 
							
								    HEX: ffffffffffffffffffffffffffffffff integer>bit-array
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ 14 ] [ ?{ f t t t } bit-array>integer ] unit-test
							 | 
						||
| 
								 | 
							
								[ 0 ] [ ?{ } bit-array>integer ] unit-test
							 | 
						||
| 
								 | 
							
								[ HEX: ffffffffffffffffffffffffffffffff ] [ ?{
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								    t t t t t t t t   t t t t t t t t   t t t t t t t t  t t t t t t t t
							 | 
						||
| 
								 | 
							
								} bit-array>integer ] unit-test
							 |