package Ġorg . grand test auto . math s . mon oid . test Ċ Ċ import Ġorg . grand test auto . math s . mon oid .* Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* Ġ@ author ĠTim ĠLa vers Ċ Ġ*/ Ċ class ĠTransformation Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Right Zero Test () Ġ{ ĊĠĠĠĠ Ġassert ( t ( 1 , 1 , 1 ). is Right Zero ) ĊĠĠĠĠ Ġassert ( t ( 5 , 5 , 5 , 5 , 5 , 5 , 5 ). is Right Zero ) ĊĠĠĠĠ Ġassert (! t ( 1 , 1 , 2 ). is Right Zero ) ĊĠĠĠĠ Ġassert (! t ( 6 , 6 , 6 , 6 , 6 , 6 , 6 , 1 ). is Right Zero ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġimage Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( set ( 1 , 2 , 3 ), Ġt ( 1 , 2 , 3 ). image ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( set ( 1 ), Ġt ( 1 , 1 , 1 , Ġ 1 ). image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsub sem ig roup Of Order Pre serving Transform ations Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfiltered Ġ= Ġsub sem ig roup Of Order Pre serving Transform ations ( transformation Mon oid ( 5 )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġorder Pre serving Transformation Mon oid ( 5 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( expected , Ġfiltered ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Order Pre serving Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Order Pre serving ( t ( 2 , 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Order Pre serving ( t ( 1 , 2 , 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Order Pre serving ( t ( 1 , 1 , 1 , 2 , 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Order Pre serving ( t ( 1 , 1 , 1 , 1 , 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Order Pre serving ( t ( 1 , 1 , 1 , 2 , 2 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Order Pre serving ( t ( 1 , 1 , 1 , 2 , 3 , 4 , 4 , 4 , 6 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcycle 2 _ 3 ___ n _ 1 Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( t ( 2 , Ġ 1 ), Ġcycle 2 _ 3 ___ n _ 1 ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( t ( 2 , Ġ 3 , Ġ 1 ), Ġcycle 2 _ 3 ___ n _ 1 ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( t ( 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 ), Ġcycle 2 _ 3 ___ n _ 1 ( 9 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠnumberOf Fixed Points Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , ĠTransformation ( int ArrayOf ( 1 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 2 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 2 , Ġ 1 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 2 , Ġ 4 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 3 , Ġ 3 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , ĠTransformation ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 3 )). numberOf Fixed Points ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )). numberOf Fixed Points ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġkernel Test (){ ĊĠĠĠĠĠĠĠ Ġvar Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 2 , Ġ 2 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 1 , Ġ 2 ), Ġtu ( 2 , Ġ 1 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 1 , Ġ 2 ), Ġtu ( 2 , Ġ 1 ), Ġtu ( 3 , Ġ 3 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 1 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 1 , Ġ 3 ), Ġtu ( 3 , Ġ 1 ), Ġtu ( 3 , Ġ 3 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 2 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 1 , Ġ 2 ), Ġtu ( 1 , Ġ 3 ), Ġtu ( 2 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 2 , Ġ 3 ), Ġtu ( 3 , Ġ 1 ), Ġtu ( 3 , Ġ 2 ), Ġtu ( 3 , Ġ 3 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 2 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 1 , Ġ 2 ), Ġtu ( 2 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 3 , Ġ 3 ), Ġtu ( 3 , Ġ 4 ), Ġtu ( 4 , Ġ 3 ), Ġtu ( 4 , Ġ 4 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 2 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 1 , Ġ 3 ), Ġtu ( 1 , Ġ 4 ), Ġtu ( 3 , Ġ 1 ), Ġtu ( 3 , Ġ 3 ), Ġtu ( 3 , Ġ 4 ), Ġtu ( 4 , Ġ 1 ), Ġtu ( 4 , Ġ 3 ), Ġtu ( 4 , Ġ 4 ), Ġtu ( 2 , Ġ 2 )), Ġt . kernel ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( relation ( tu ( 1 , Ġ 1 ), Ġtu ( 2 , Ġ 2 ), Ġtu ( 3 , Ġ 3 ), Ġtu ( 4 , Ġ 4 )), Ġt . kernel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġembed Test (){ ĊĠĠĠĠĠĠĠ Ġvar Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġvar Ġembedded Ġ= Ġt . embed ( 5 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 5 )), Ġembedded ) ĊĊĠĠĠĠĠĠĠ Ġembedded Ġ= Ġt . embed ( 1 2 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 0 , Ġ 1 1 , Ġ 1 2 )), Ġembedded ) ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 4 , Ġ 3 , Ġ 2 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġembedded Ġ= Ġt . embed ( 1 2 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 4 , Ġ 3 , Ġ 2 , Ġ 1 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 0 , Ġ 1 1 , Ġ 1 2 )), Ġembedded ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtoString Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ("[ 1 , Ġ 3 , Ġ 4 , Ġ 1 ]", Ġt . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdefines AT rans formation Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 1 , Ġ 2 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 1 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 1 , Ġ 4 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 5 , Ġ 2 , Ġ 1 , Ġ 4 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( defines AT rans formation ( int ArrayOf ( 5 , Ġ 5 , Ġ 5 , Ġ 5 , Ġ 5 , Ġ 5 , Ġ 5 , Ġ 5 ))) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 2 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 1 , Ġ 6 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 2 , Ġ 1 , Ġ 0 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( defines AT rans formation ( int ArrayOf ( 5 , Ġ 2 , Ġ- 1 , Ġ 4 , Ġ 3 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġin Domain Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t . in Domain ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t . in Domain ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t . in Domain ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t . in Domain ( 4 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( t . in Domain ( 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrank Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )). rank ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 6 , ĠTransformation ( int ArrayOf ( 1 , Ġ 5 , Ġ 5 , Ġ 1 , Ġ 1 , Ġ 1 )). rank ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġapply Test (){ ĊĠĠĠĠĠĠĠ Ġvar Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġt . apply ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġt Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 4 , Ġ 3 , Ġ 1 , Ġ 4 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġt . apply ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġt . apply ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġt . apply ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġt . apply ( 4 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġt . apply ( 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġunit Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 1 )), Ġunit ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 1 , Ġ 2 )), Ġunit ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Transformation ( int ArrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 )), Ġunit ( 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcompose Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġst Ġ= Ġs . compose ( t ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġst . rank ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġst . apply ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġst . apply ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġst . apply ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġst . apply ( 4 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġu Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġsu Ġ= Ġs . compose ( u ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġsu . rank ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtimes Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġst Ġ= Ġs Ġ* Ġt ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġst . rank ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġst . apply ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġst . apply ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġst . apply ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġst . apply ( 4 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġu Ġ= ĠTransformation ( int ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġsu Ġ= Ġs Ġ* Ġu ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġsu . rank ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġsu . apply ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġequals Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġu Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 , Ġ 5 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( s Ġ== Ġt ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t Ġ== Ġs ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( t Ġ== Ġu ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( u Ġ== Ġt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠhashCode Test (){ ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTransformation ( int ArrayOf ( 2 , Ġ 3 , Ġ 4 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( s . hashCode (), Ġt . hashCode ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdomain Test (){ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġt ( 1 , Ġ 2 , Ġ 1 ). domain . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t ( 1 , Ġ 2 , Ġ 1 ). domain . contains ( 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t ( 1 , Ġ 2 , Ġ 1 ). domain . contains ( 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( t ( 1 , Ġ 2 , Ġ 1 ). domain . contains ( 3 )) ĊĠĠĠ Ġ} Ċ } Ċ