package Ġexpressions Ċ Ċ import Ġexpressions . bool . Greater Zero Polynomial Ċ import Ġexpressions . num .* Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠExpression Kt Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnew Bool Operator () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠG reater Zero Polynomial ( Polynomial Implementation ( mutable ListOf ( 1 , Ġ 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠG reater Zero Polynomial ( Polynomial Implementation ( mutable ListOf ( 3 , Ġ 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġnew Operator ("| ", Ġa , Ġb ). toString () ĊĠĠĠĠĠĠĠ ĠassertEquals ( new , Ġ" (( 1 +( 2 * element )+( 3 * element * element )> 0 )| ( 3 +( 2 * element )+ element * element > 0 )) ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnew Num Operator () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠPlus ( Numeric . Element , ĠConstant Expression (" 2 ")) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠMin us ( Numeric . Element , ĠConstant Expression (" 1 ")) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġnew Operator ("+ ", Ġa , Ġb ). toString () ĊĠĠĠĠĠĠĠ ĠassertEquals ( new , Ġ" (( element + 2 )+( element - 1 )) ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcomposition () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠPlus ( Numeric . Element , ĠConstant Expression (" 2 ")) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠTimes ( Numeric . Element , ĠNumeric . Element ) ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġb . composition ( a ). toString () ĊĠĠĠĠĠĠĠ ĠassertEquals ( c , Ġ" (( element + 2 )*( element + 2 )) ") ĊĊĠĠĠ Ġ} Ċ }