package Ġcom . br uce . calculator Ċ Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ import Ġorg . junit . Test Ġas Ġtest ĊĊ Ċ class Ġ` Test ĠRP N ĠCalculator ` Ġ{ ĊĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 5 Ġ 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 2 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 2 Ġsqrt ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 1 . 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 1 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" clear Ġ 9 Ġsqrt ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 3 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 5 Ġ 2 Ġ- ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 3 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" 3 Ġ- ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" clear ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 4 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 5 Ġ 4 Ġ 3 Ġ 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 4 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" undo Ġundo Ġ* ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 2 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" 5 Ġ* ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 1 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" undo ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 5 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 5 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 7 Ġ 1 2 Ġ 2 Ġ/ ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 6 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse ("* ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 4 2 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" 4 Ġ/ ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 1 0 . 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 6 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 1 Ġ 2 Ġ 3 Ġ 4 Ġ 5 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 5 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 5 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse ("* ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . size , Ġ 4 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 2 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġr pn . parse (" clear Ġ 3 Ġ 4 Ġ- ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ- 1 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 7 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġr pn . parse (" 1 Ġ 2 Ġ 3 Ġ 4 Ġ 5 ") ĊĠĠĠĠĠĠĠ Ġr pn . parse ("* Ġ* Ġ* Ġ* ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 1 2 0 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ test ĊĠĠĠ Ġfun Ġ` Test Ġexample Ġ 8 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr pn Ġ= ĠR pn Invoker () ĊĠĠĠĠĠĠĠ Ġassert Fails With < Calculator Exception >{ Ġr pn . parse (" 1 Ġ 2 Ġ 3 Ġ* Ġ 5 Ġ+ Ġ* Ġ* Ġ 6 Ġ 5 ") Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( r pn . value Stack . peek (), Ġ 1 1 . 0 ) ĊĠĠĠ Ġ} Ċ } ĊĊ