package Ġorg . h ild an . ip m . helper . galaxy . money Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . time . milliseconds Ċ import Ġkotlin . time . seconds Ċ Ċ class ĠMoney Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` price Ġoperations `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprice 1 0 Ġ= ĠPrice ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġprice 1 0 D Ġ= ĠPrice ( 1 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġprice 2 0 Ġ= ĠPrice ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġprice 3 0 Ġ= ĠPrice ( 3 0 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( price 1 0 , Ġprice 1 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 1 0 , Ġprice 1 0 D ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 3 0 , Ġprice 1 0 Ġ+ Ġprice 2 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 1 0 , Ġprice 3 0 Ġ- Ġprice 2 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 3 0 , Ġprice 1 0 D Ġ+ Ġprice 2 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 2 0 , Ġprice 1 0 Ġ* Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( price 3 0 , Ġprice 1 0 Ġ* Ġ 3 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 . 5 , Ġprice 1 0 Ġ/ Ġprice 2 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 . 0 , Ġprice 2 0 Ġ/ Ġprice 1 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sums Ġon Ġlists `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Price ( 3 0 ), ĠlistOf ( Price ( 7 . 5 ), ĠPrice ( 2 2 . 5 )). sum ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Value Rate ( 3 0 . 0 ), ĠlistOf ( Value Rate ( 7 . 5 ), ĠValue Rate ( 2 2 . 5 )). sum Rates ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prices Ġand Ġrates `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġten Dollar s Ġ= ĠPrice ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtwo Per Sec Ġ= ĠRate ( 2 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġten Dollar s Per Sec Ġ= ĠValue Rate ( 1 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtw enty Dollar s Per Sec Ġ= ĠValue Rate ( 2 0 . 0 ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( tw enty Dollar s Per Sec , Ġten Dollar s Ġ* Ġtwo Per Sec ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ten Dollar s Per Sec , Ġten Dollar s Ġ/ Ġ 1 . seconds ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . seconds , Ġten Dollar s Ġ/ Ġten Dollar s Per Sec ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 . 5 . seconds , Ġten Dollar s Ġ/ Ġtw enty Dollar s Per Sec ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 5 0 0 . milliseconds , Ġten Dollar s Ġ/ Ġtw enty Dollar s Per Sec ) ĊĠĠĠ Ġ} Ċ } Ċ