package Ġcom . map k . fast k function Ċ Ċ import Ġcom . map k . fast k function . Single Arg Fast K Function . Companion . check Parameters Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . api . assert DoesNot Throw Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ import Ġjava . util . stream . Stream Ċ import Ġkotlin . reflect . K Function Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . jvm . java Method Ċ Ċ private Ġfun Ġtop Level Func ( arg : ĠString ) Ġ= Ġprintln ( arg ) Ċ private Ġfun ĠString . top Level Extension Func ( arg : ĠString ) Ġ= Ġprintln ( this Ġ+ Ġarg ) Ċ Ċ private Ġclass ĠSingle Arg Fast K Function Test Ġ{ ĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) ĊĠĠĠ Ġinner Ġclass ĠCheck Parameters Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Parameter Ġ= Ġmock k < K Parameter > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġkind Ġ} Ġreturns ĠK Parameter . Kind . VALUE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġinstance Parameter Ġ= Ġmock k < K Parameter > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġkind Ġ} Ġreturns ĠK Parameter . Kind . INSTANCE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠ Ġ@ Method Source (" empty Param List Provider ") ĊĠĠĠĠĠĠĠ Ġfun ĠisEmpty ( params : ĠList < K Parameter >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ Ġparams . check Parameters () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġempty Param List Provider (): ĠStream < Arguments > Ġ= ĠStream . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( emptyList < K Parameter > ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( instance Parameter )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠ Ġ@ Method Source (" il legal Size Arguments Provider ") ĊĠĠĠĠĠĠĠ Ġfun Ġis Illegal Size Arguments ( params : ĠList < K Parameter >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . check Parameters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġillegal Size Arguments Provider (): ĠStream < Arguments > Ġ= ĠStream . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( value Parameter , Ġvalue Parameter )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( instance Parameter , Ġvalue Parameter , Ġvalue Parameter )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġis Illegal Arguments () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( instance Parameter , Ġinstance Parameter , Ġvalue Parameter ). check Parameters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠ Ġ@ Method Source (" collect Param List Provider ") ĊĠĠĠĠĠĠĠ Ġfun Ġis Correct ( params : ĠList < K Parameter >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġassert DoesNot Throw Ġ{ Ġparams . check Parameters () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( params , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcollect Param List Provider (): ĠStream < Arguments > Ġ= ĠStream . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( value Parameter )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( listOf ( instance Parameter , Ġvalue Parameter )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠTop Level Function Of Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġ@ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠKind Is Extension Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunction : ĠK Function < Unit > Ġ= ĠString :: top Level Extension Func ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġfunction . parameters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Method Ġ= Ġfunction . java Method !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Method Source (" il legal Receiver Provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġillegal Receiver Test ( receiver : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġreceiver , Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġillegal Receiver Provider (): ĠStream < Arguments > Ġ= ĠStream . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( null ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġis Correct () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġ"", Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . TopLevel Extension Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠExtension Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunction : ĠK Function < Unit > Ġ= Ġinstance :: top Level Extension Func ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġfunction . parameters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Method Ġ= Ġfunction . java Method !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith Illegal Receiver Test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġ 0 , Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith Instance Test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġ"", Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . TopLevel Extension Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwithout Instance Test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġnull , Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġtop Level Function Test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunction : ĠK Function < Unit > Ġ= Ġ:: top Level Func ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġfunction . parameters ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . top Level Function Of ( function , Ġnull , Ġparameters , Ġfunction . java Method !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . TopLevel Function ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠInstance Function Of Test Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġinstance Func ( arg : ĠString ) Ġ= Ġprintln ( arg ) ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠKind Is Instance Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunction : ĠK Function < Unit > Ġ= ĠInstance Function Of Test :: instance Func ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġfunction . parameters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Method Ġ= Ġfunction . java Method !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwithout Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( function , Ġnull , Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith Wrong Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( function , Ġ"", Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġis Correct () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Instance Function Of Test , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Method ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . Instance Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠInstance Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunction : ĠK Function < Unit > Ġ= Ġthis @ Instance Function Of Test :: instance Func ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġfunction . parameters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Method Ġ= Ġfunction . java Method !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwithout Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Method ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith Wrong Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( function , Ġ"", Ġparameters , Ġjava Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġwith Correct Instance () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Arg Fast K Function . instance Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Instance Function Of Test , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Method ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSingle Arg Fast K Function . Instance Function ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ