package Ġdev . ss ch . mini java . compiler Ċ Ċ import Ġdev . ss ch . mini java . compiler . util . Compiler Test Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠString Test Ġ: ĠCompiler Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` declare ĠString Ġvariable `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġs ; ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( 1 2 3 ); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" 1 2 3 ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` assign ĠString Ġliteral Ġto ĠString Ġvariable `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġs Ġ= Ġ" Hello Ġworld "; ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( 1 2 3 ); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" 1 2 3 ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` output ĠString `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġs Ġ= Ġ" Hello "; ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( s ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" world "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" Hello ", Ġ" world ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠStrings Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" Hello " Ġ+ Ġ" Ġ" Ġ+ Ġ" world "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" Hello Ġworld ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠStrings Ġ 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġhello Ġ= Ġ" Hello "; ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġworld Ġ= Ġ" world "; ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( hello Ġ+ Ġ" Ġ" Ġ+ Ġworld ); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" Hello Ġworld ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" Number : Ġ" Ġ+ Ġ 1 2 3 ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( 1 2 3 Ġ+ Ġ" Ġnumbers "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" Number : Ġ 1 2 3 ", Ġ" 1 2 3 Ġnumbers ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġfloat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" Number : Ġ" Ġ+ Ġ 4 . 5 f ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( 4 . 5 f Ġ+ Ġ" Ġnumbers "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" Number : Ġ 4 . 5 ", Ġ" 4 . 5 Ġnumbers ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġboolean `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" truth : Ġ" Ġ+ Ġtrue ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( false Ġ+ Ġ" Ġtruth "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" truth : Ġtrue ", Ġ" false Ġtruth ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġchar `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" char : Ġ" Ġ+ Ġ' a '); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (' b ' Ġ+ Ġ" Ġchar "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" char : Ġa ", Ġ" b Ġchar ", Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġobject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" obj : Ġ" Ġ+ Ġnew ĠMain ()); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( new ĠMain () Ġ+ Ġ" Ġobj "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()[ 0 ]). matches (" obj : ĠObject @ [ 0 - 9 ]* ") ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()[ 1 ]). matches (" Object @ [ 0 - 9 ]* Ġobj ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` concat ĠString Ġand Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println (" obj : Ġ" Ġ+ Ġnull ); ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConsole . println ( null Ġ+ Ġ" Ġobj "); ĊĠĠĠĠĠĠĠ Ġ""" . compile And Run In Main Function () ĊĠĠĠĠĠĠĠ ĠassertThat ( output . lines ()). contains Exactly (" obj : Ġnull ", Ġ" null Ġobj ", Ġ"") ĊĠĠĠ Ġ} Ċ }