| 
									
										
										
										
											2013-05-15 18:05:07 -04:00
										 |  |  | USING: arrays kernel math math.combinatorics | 
					
						
							|  |  |  | math.combinatorics.private tools.test sequences ;
 | 
					
						
							| 
									
										
										
										
											2008-03-01 17:00:45 -05:00
										 |  |  | IN: math.combinatorics.tests | 
					
						
							| 
									
										
										
										
											2008-01-27 20:00:31 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { 1 } [ -1 factorial ] unit-test ! required by other math.combinatorics words | 
					
						
							|  |  |  | { 1 } [ 0 factorial ] unit-test | 
					
						
							|  |  |  | { 1 } [ 1 factorial ] unit-test | 
					
						
							|  |  |  | { 3628800 } [ 10 factorial ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { 1 } [ 3 0 nPk ] unit-test | 
					
						
							|  |  |  | { 6 } [ 3 2 nPk ] unit-test | 
					
						
							|  |  |  | { 6 } [ 3 3 nPk ] unit-test | 
					
						
							|  |  |  | { 0 } [ 3 4 nPk ] unit-test | 
					
						
							|  |  |  | { 311875200 } [ 52 5 nPk ] unit-test | 
					
						
							|  |  |  | { 672151459757865654763838640470031391460745878674027315200000000000 } [ 52 47 nPk ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { 1 } [ 3 0 nCk ] unit-test | 
					
						
							|  |  |  | { 3 } [ 3 2 nCk ] unit-test | 
					
						
							|  |  |  | { 1 } [ 3 3 nCk ] unit-test | 
					
						
							|  |  |  | { 0 } [ 3 4 nCk ] unit-test | 
					
						
							|  |  |  | { 2598960 } [ 52 5 nCk ] unit-test | 
					
						
							|  |  |  | { 2598960 } [ 52 47 nCk ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { { } } [ 0 factoradic ] unit-test | 
					
						
							|  |  |  | { { 1 0 } } [ 1 factoradic ] unit-test | 
					
						
							|  |  |  | { { 1 1 0 3 0 1 0 } } [ 859 factoradic ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { { 0 1 2 3 } } [ { 0 0 0 0 } >permutation ] unit-test | 
					
						
							|  |  |  | { { 0 1 3 2 } } [ { 0 0 1 0 } >permutation ] unit-test | 
					
						
							|  |  |  | { { 1 2 0 6 3 5 4 } } [ { 1 1 0 3 0 1 0 } >permutation ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-01 17:59:35 -04:00
										 |  |  | { { 0 1 2 3 } } [ 0 4 <iota> permutation-indices ] unit-test | 
					
						
							|  |  |  | { { 0 1 3 2 } } [ 1 4 <iota> permutation-indices ] unit-test | 
					
						
							|  |  |  | { { 1 2 0 6 3 5 4 } } [ 859 7 <iota> permutation-indices ] unit-test | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | { { "a" "b" "c" "d" } } [ 0 { "a" "b" "c" "d" } permutation ] unit-test | 
					
						
							|  |  |  | { { "d" "c" "b" "a" } } [ 23 { "a" "b" "c" "d" } permutation ] unit-test | 
					
						
							|  |  |  | { { "d" "a" "b" "c" } } [ 18 { "a" "b" "c" "d" } permutation ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { { { "a" "b" "c" } { "a" "c" "b" } | 
					
						
							| 
									
										
										
										
											2008-01-27 20:00:31 -05:00
										 |  |  |     { "b" "a" "c" } { "b" "c" "a" } | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  |     { "c" "a" "b" } { "c" "b" "a" } } } [ { "a" "b" "c" } all-permutations ] unit-test | 
					
						
							| 
									
										
										
										
											2008-01-27 20:00:31 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 0 1 2 } } [ { "a" "b" "c" } inverse-permutation ] unit-test | 
					
						
							|  |  |  | { { 2 1 0 } } [ { "c" "b" "a" } inverse-permutation ] unit-test | 
					
						
							|  |  |  | { { 3 0 2 1 } } [ { 12 45 34 2 } inverse-permutation ] unit-test | 
					
						
							| 
									
										
										
										
											2008-01-27 20:00:31 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { "" } [ "" next-permutation ] unit-test | 
					
						
							|  |  |  | { "1" } [ "1" next-permutation ] unit-test | 
					
						
							|  |  |  | { "21" } [ "12" next-permutation ] unit-test | 
					
						
							|  |  |  | { "8344112666" } [ "8342666411" next-permutation ] unit-test | 
					
						
							|  |  |  | { "ABC" "ACB" "BAC" "BCA" "CAB" "CBA" "ABC" } | 
					
						
							| 
									
										
										
										
											2012-03-02 13:05:57 -05:00
										 |  |  | [ "ABC" 6 [ dup dup clone-like next-permutation ] times ] unit-test | 
					
						
							| 
									
										
										
										
											2009-05-06 19:33:58 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { 0 1 2 } } [ 0 3 5 combination-indices ] unit-test | 
					
						
							|  |  |  | { { 2 3 4 } } [ 9 3 5 combination-indices ] unit-test | 
					
						
							| 
									
										
										
										
											2009-05-06 19:33:58 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { "a" "b" "c" } } [ 0 { "a" "b" "c" "d" "e" } 3 combination ] unit-test | 
					
						
							|  |  |  | { { "c" "d" "e" } } [ 9 { "a" "b" "c" "d" "e" } 3 combination ] unit-test | 
					
						
							| 
									
										
										
										
											2009-05-06 19:33:58 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { "a" "b" } { "a" "c" } | 
					
						
							| 
									
										
										
										
											2009-05-06 19:33:58 -04:00
										 |  |  |     { "a" "d" } { "b" "c" } | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  |     { "b" "d" } { "c" "d" } } } [ { "a" "b" "c" "d" } 2 all-combinations ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { } } } [ { } all-subsets ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { } { 1 } { 2 } { 3 } { 1 2 } { 1 3 } { 2 3 } { 1 2 3 } } } | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | [ { 1 2 3 } all-subsets ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { } } [ { 1 2 } 0 selections ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { 1 } { 2 } } } [ { 1 2 } 1 selections ] unit-test | 
					
						
							|  |  |  | { { { { 1 } } { 2 } } } [ { { 1 } 2 } 1 selections ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { 1 1 } { 1 2 } { 2 1 } { 2 2 } } } | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | [ { 1 2 } 2 selections ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { { { 1 1 1 } { 1 1 2 } { 1 2 1 } { 1 2 2 } | 
					
						
							|  |  |  |     { 2 1 1 } { 2 1 2 } { 2 2 1 } { 2 2 2 } } } | 
					
						
							| 
									
										
										
										
											2010-07-14 12:09:57 -04:00
										 |  |  | [ { 1 2 } 3 selections ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-06 16:06:23 -04:00
										 |  |  | { { "aa" "ab" "ac" "ba" "bb" "bc" "ca" "cb" "cc" } } | 
					
						
							|  |  |  | [ "abc" 2 selections ] unit-test | 
					
						
							| 
									
										
										
										
											2012-04-18 18:17:48 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | { V{ { 1 2 } { 1 3 } } } | 
					
						
							|  |  |  | [ { 1 2 3 } 2 [ { 1 } head? ] filter-combinations ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { { 3 4 5 } } | 
					
						
							|  |  |  | [ { 1 2 3 } 2 [ sum ] map-combinations ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { V{ { 1 2 3 } { 1 3 2 } } } | 
					
						
							|  |  |  | [ { 1 2 3 } [ { 1 } head? ] filter-permutations ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { { 6 6 6 6 6 6 } } | 
					
						
							|  |  |  | [ { 1 2 3 } [ sum ] map-permutations ] unit-test | 
					
						
							| 
									
										
										
										
											2012-04-21 02:31:40 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-21 23:11:47 -04:00
										 |  |  | { f } [ { 1 2 3 } 2 [ last 4 = ] find-combination ] unit-test | 
					
						
							| 
									
										
										
										
											2012-04-21 02:31:40 -04:00
										 |  |  | { { 2 3 } } [ { 1 2 3 } 2 [ first 2 = ] find-combination ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-21 23:11:47 -04:00
										 |  |  | { f } [ { 1 2 3 } [ last 4 = ] find-permutation ] unit-test | 
					
						
							| 
									
										
										
										
											2012-04-21 02:31:40 -04:00
										 |  |  | { { 2 1 3 } } [ { 1 2 3 } [ first 2 = ] find-permutation ] unit-test | 
					
						
							| 
									
										
										
										
											2013-05-15 18:05:07 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | { { { 0 1 2 } { 0 2 1 } { 1 0 2 } { 1 2 0 } { 2 0 1 } { 2 1 0 } } } | 
					
						
							| 
									
										
										
										
											2017-06-01 17:59:35 -04:00
										 |  |  | [ 3 <iota> <permutations> >array ] unit-test | 
					
						
							| 
									
										
										
										
											2013-05-15 18:05:07 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | { { "as" "ad" "af" "sa" "sd" "sf" "da" "ds" "df" "fa" "fs" "fd" } } | 
					
						
							|  |  |  | [ "asdf" 2 <k-permutations> >array ] unit-test |