package Ġec . eng calc ĊĊ Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* Ġ" n root "," abs "," fact "," perm "," comb "," inv "," log "," sin "," cos "," tan ", Ċ Ġ* Ġ" asin "," acos "," atan ") ĊĊ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠHelper Ġfunction Ġto Ġconvert Ġa Ġspace Ġdelimited Ġstring Ġof Ġtokens Ġinto Ġa ĠMutable List Ċ Ġ* Ġ@ param Ġinput ĠThe Ġstring Ġto Ġbe Ġconverted Ċ Ġ* Ġ@ return ĠA ĠMutable List Ġof Ġthe Ġtokens Ċ Ġ*/ Ċ fun Ġtokenize String ( input Ġ: ĠString ) Ġ: ĠMutable List < String >{ ĊĠĠĠ Ġvar Ġoutput Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġfor ( Ġtoken Ġin Ġinput . split (" Ġ" )){ ĊĠĠĠĠĠĠĠ Ġoutput . add ( token ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġoutput Ċ } Ċ Ċ class ĠToken Parsing Tests Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġfunction Ġto Ġconvert Ġa Ġspace Ġdelimited Ġstring Ġof Ġtokens Ġinto Ġa ĠMutable List ĊĠĠĠĠ Ġ* Ġ@ param Ġinput ĠThe Ġstring Ġto Ġbe Ġconverted ĊĠĠĠĠ Ġ* Ġ@ return ĠA ĠMutable List Ġof Ġthe Ġtokens ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtokenize String ( input Ġ: ĠString ) Ġ: ĠMutable List < String >{ ĊĠĠĠĠĠĠĠ Ġvar Ġoutput Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġfor ( Ġtoken Ġin Ġinput . split (" Ġ" )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . add ( token ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġoutput ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsh unting Y ard _ is Correct (){ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Calc _ test Cases Ġ= ĠarrayOf (" 3 Ġ/ Ġ 4 Ġ+ Ġ 5 Ġ/ Ġ 2 ", Ġ" 9 Ġ- Ġ 4 "," 7 Ġ/ Ġ 6 Ġ- Ġ 1 Ġ/ Ġ 5 "," 6 Ġ- Ġ 4 Ġ+ Ġ 4 Ġ* Ġ 8 "," 8 Ġ^ Ġ 2 Ġ+ Ġ 7 Ġ/ Ġ 5 Ġ* Ġ 7 ") ĊĠĠĠĠĠĠĠ Ġval Ġsimple Calc _ test Results Ġ= ĠarrayOf (" 3 Ġ 4 Ġ/ Ġ 5 Ġ 2 Ġ/ Ġ+ "," 9 Ġ 4 Ġ- "," 7 Ġ 6 Ġ/ Ġ 1 Ġ 5 Ġ/ Ġ- "," 6 Ġ 4 Ġ- Ġ 4 Ġ 8 Ġ* Ġ+ "," 8 Ġ 2 Ġ^ Ġ 7 Ġ 5 Ġ/ Ġ 7 Ġ* Ġ+ ") ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. simple Calc _ test Cases . size - 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( sh unting Y ard ( tokenize String ( simple Calc _ test Cases [ i ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ== Ġtokenize String ( simple Calc _ test Results [ i ])) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }