package Ġde . ma ib orn w ol ff . code chart a . importer . source code parser . visitor s Ċ Ċ import Ġorg . assertj . core . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . sonar . api . batch . fs . Input File Ċ import Ġorg . sonar . api . batch . fs . internal . Test Input File Builder Ċ import Ġorg . sonar . java . ast . parser . Java Parser Ċ import Ġorg . sonar . java . model . Default Java File Scanner Context Ċ import Ġorg . sonar . java . model . Java Version Impl Ċ import Ġorg . sonar . plugins . java . Java Ċ import Ġorg . sonar . plugins . java . api . tree . Compilation Unit Tree Ċ import Ġorg . sonar . plugins . java . api . tree . Tree Ċ import Ġjava . io . File Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġjava . nio . file . Files Ċ Ċ class ĠMax N esting Level Visitor Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbase Dir Ġ= ĠFile (" src / test / resources / max - nest ing - level "). absolute File ĊĊĠĠĠ Ġprivate Ġfun Ġget Tree ( fileName : ĠString ) Ġ: ĠTree Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ("$ base Dir /$ fileName ") ĊĠĠĠĠĠĠĠ Ġval Ġinput File : ĠInput File Ġ= ĠTest Input File Builder . create (" module Key ", ĠfileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Module Base Dir ( base Dir . to Path ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Charset ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( Input File . Type . MAIN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Language ( Java . KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. init Metadata ( String ( Files . read All Bytes ( File ("$ base Dir /$ fileName "). to Path ()), ĠStandard Charsets . UTF _ 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġcompilation Unit Tree Ġ= ĠJava Parser . create Parser (). parse ( file ) Ġas ĠCompilation Unit Tree ĊĠĠĠĠĠĠĠ Ġval Ġdefault Java File Scanner Context Ġ= ĠDefault Java File Scanner Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompilation Unit Tree , Ġinput File , Ġnull , Ġnull , ĠJava Version Impl (), Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdefault Java File Scanner Context . tree ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetMax N esting Level Of Nested I fs () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax N esting Level Ġ= ĠMax N esting Level Visitor (). getMax N esting Level ( get Tree (" nested _ ifs . java ")) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( max N esting Level ). isEqualTo ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetMax N esting Level Of If Else () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax N esting Level Ġ= ĠMax N esting Level Visitor (). getMax N esting Level ( get Tree (" if _ else . java ")) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( max N esting Level ). isEqualTo ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetMax N esting Level Of Gold en Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax N esting Level Ġ= ĠMax N esting Level Visitor (). getMax N esting Level ( get Tree (" golden _ test . java ")) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( max N esting Level ). isEqualTo ( 7 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetMax N esting Level Of Lambda Functions () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax N esting Level Ġ= ĠMax N esting Level Visitor (). getMax N esting Level ( get Tree (" lambda _ function . java ")) ĊĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( max N esting Level ). isEqualTo ( 2 ) ĊĠĠĠ Ġ} Ċ } Ċ