47 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2010 Daniel Ehrenberg
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: sets tools.test kernel sorting prettyprint hash-sets ;
 | 
						|
IN: hash-sets.tests
 | 
						|
 | 
						|
{ { 1 2 3 } } [ HS{ 1 2 3 } members natural-sort ] unit-test
 | 
						|
 | 
						|
{ "HS{ 1 2 3 4 }" } [ HS{ 1 2 3 4 } unparse ] unit-test
 | 
						|
 | 
						|
{ t } [ 1 HS{ 0 1 2 } in? ] unit-test
 | 
						|
{ f } [ 3 HS{ 0 1 2 } in? ] unit-test
 | 
						|
{ HS{ 1 2 3 } } [ 3 HS{ 1 2 } clone [ adjoin ] keep ] unit-test
 | 
						|
{ HS{ 1 2 } } [ 2 HS{ 1 2 } clone [ adjoin ] keep ] unit-test
 | 
						|
{ HS{ 1 2 3 } } [ 4 HS{ 1 2 3 } clone [ delete ] keep ] unit-test
 | 
						|
{ HS{ 1 2 } } [ 3 HS{ 1 2 3 } clone [ delete ] keep ] unit-test
 | 
						|
{ HS{ 1 2 } } [ HS{ 1 2 } fast-set ] unit-test
 | 
						|
{ { 1 2 } } [ HS{ 1 2 } members natural-sort ] unit-test
 | 
						|
 | 
						|
{ HS{ 1 2 3 4 } } [ HS{ 1 2 3 } HS{ 2 3 4 } union ] unit-test
 | 
						|
{ HS{ 2 3 } } [ HS{ 1 2 3 } HS{ 2 3 4 } intersect ] unit-test
 | 
						|
{ t } [ HS{ 1 2 3 } HS{ 2 3 4 } intersects? ] unit-test
 | 
						|
{ f } [ HS{ 1 } HS{ 2 3 4 } intersects? ] unit-test
 | 
						|
{ f } [ HS{ 1 } HS{ 2 3 4 } subset? ] unit-test
 | 
						|
{ f } [ HS{ 1 2 3 } HS{ 2 3 4 } subset? ] unit-test
 | 
						|
{ t } [ HS{ 2 3 } HS{ 2 3 4 } subset? ] unit-test
 | 
						|
{ t } [ HS{ } HS{ 2 3 4 } subset? ] unit-test
 | 
						|
{ HS{ 1 } } [ HS{ 1 2 3 } HS{ 2 3 4 } diff ] unit-test
 | 
						|
{ t } [ HS{ 1 2 3 } HS{ 2 1 3 } set= ] unit-test
 | 
						|
{ t } [ HS{ 1 2 3 } HS{ 2 1 3 } = ] unit-test
 | 
						|
{ f } [ HS{ 2 3 } HS{ 2 1 3 } set= ] unit-test
 | 
						|
{ f } [ HS{ 1 2 3 } HS{ 2 3 } set= ] unit-test
 | 
						|
 | 
						|
{ HS{ 1 2 } HS{ 1 2 3 } } [ HS{ 1 2 } clone dup clone [ 3 swap adjoin ] keep ] unit-test
 | 
						|
 | 
						|
{ t } [ HS{ } null? ] unit-test
 | 
						|
{ f } [ HS{ 1 } null? ] unit-test
 | 
						|
 | 
						|
{ { } } [ { 1 2 3 } duplicates ] unit-test
 | 
						|
{ f } [ { 1 2 3 } >hash-set duplicates ] unit-test
 | 
						|
{ { 1 } } [ { 1 2 1 } duplicates ] unit-test
 | 
						|
 | 
						|
{ HS{ HS{ { 2 1 } { 1 2 } } } } [
 | 
						|
    HS{ } clone
 | 
						|
    HS{ { 1 2 } { 2 1 } } over adjoin
 | 
						|
    HS{ { 2 1 } { 1 2 } } over adjoin
 | 
						|
] unit-test
 |