package Ġio . gitlab . art urb os ch . de te kt . rules . style Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . rules . Kotlin Core Environment Test Ċ import Ġio . gitlab . art urb os ch . de te kt . test . assertThat Ċ import Ġio . gitlab . art urb os ch . de te kt . test . compile And Lint WithContext Ċ import Ġorg . jetbrains . kotlin . cli . jvm . compiler . Kotlin Core Environment Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ @ Kotlin Core Environment Test Ċ class ĠUn necessary Filter Spec ( val Ġenv : ĠKotlin Core Environment ) Ġ{ ĊĠĠĠ Ġval Ġsubject Ġ= ĠUn necessary Filter () ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠUn necessary Filter Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Filter Ġwith Ġsize `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings [ 0 ]). has Message ("' filter Ġ{ Ġit Ġ> Ġ 1 Ġ}' Ġcan Ġbe Ġreplaced Ġby Ġ' count Ġ{ Ġit Ġ> Ġ 1 Ġ} '") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Filter Ġwith Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Sequence Ġwith Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ* Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` None Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Any Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass Ġ` Correct Ġfilter ` Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Not Ġstdlib Ġcount Ġlist Ġfunction `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< T > ĠList < T >. count () Ġ: ĠAny { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf < Int >(). count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= ĠlistOf < Int >(). filter Ġ{ Ġit Ġ> Ġ 0 Ġ}. count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Not Ġstdlib Ġcount Ġsequences Ġfunction `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< T > ĠSequence < T >. count () Ġ: ĠAny { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf < Int >(). as Sequence (). count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= ĠlistOf < Int >(). as Sequence (). filter Ġ{ Ġit Ġ> Ġ 0 Ġ}. count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Not Ġstdlib Ġfilter Ġfunction `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfilter () Ġ: ĠList < Any >{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġfilter (). size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Filter Ġwith Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count Ġ{ Ġit Ġ> Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` None Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. none Ġ{ Ġit Ġ> Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Any Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Ġ{ Ġit Ġ> Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Sequence Ġwith Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ* Ġ 2 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count Ġ{ Ġit Ġ> Ġ 1 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / de te kt / de te kt / issues / 3 5 4 1 # issuecomment - 8 1 5 1 3 6 8 3 1 ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Size Ġin Ġanother Ġstatement `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstrings Ġ= ĠlistOf (" abc ", Ġ" cde ", Ġ" ader ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiltered Strings Ġ= Ġstrings . filter Ġ{ Ġ" a " Ġin Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiltered Strings . forEach Ġ{ Ġprintln ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( filtered Strings . size Ġ> Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" more Ġthan Ġtwo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / de te kt / de te kt / issues / 3 5 4 1 ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġ@ DisplayName (" Size / isEmpty ()/ isNotEmpty () Ġin Ġanother Ġstatement ") ĊĠĠĠĠĠĠĠ Ġfun Ġfilter Used In Other Statement () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġtest ( query Parts : ĠList < String >, Ġa : ĠList < String >, Ġb : ĠList < String >, Ġc : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Query Parts Ġ= Ġquery Parts . filter Ġ{ Ġit . length Ġ> Ġ 1 Ġ}. take ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . compile And Lint WithContext ( env , Ġcode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ