package Ġorg . jetbrains . ref le kt . plugin . analysis . util Ċ Ċ import Ġorg . jetbrains . ref le kt . util . file . getAll Nested Files Ċ import Ġorg . jetbrains . ref le kt . plugin . analysis .* Ċ import Ġorg . jetbrains . ref le kt . plugin . util . Maven Local Util . get Ref le kt Project J ars Ċ import Ġorg . jetbrains . ref le kt . plugin . util . Util Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Tag Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ import Ġjava . io . File Ċ Ċ class ĠFind Smart Ref le kt Invoke Arguments By Expression Part Test Ġ{ ĊĠĠĠ Ġ@ Tag (" analysis ") ĊĠĠĠ Ġ@ Method Source (" data ") ĊĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" test Ġ{ index }") ĊĠĠĠ Ġfun Ġ` find Smart Ref le kt Invoke Arguments By Expression Part Ġfunction Ġtest `( ĊĠĠĠĠĠĠĠ Ġsources : ĠSet < File >, ĊĠĠĠĠĠĠĠ Ġexpected Result : ĠString , ĊĠĠĠĠĠĠĠ Ġdirectory : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġref le kt Class Path Ġ= Ġget Ref le kt Project J ars () ĊĠĠĠĠĠĠĠ Ġval Ġanalyzer Ġ= ĠSmart Ref le kt Test Analyzer ( Analysis Util . getBase Analyzer ( class Path Ġ= Ġref le kt Class Path , Ġsources Ġ= Ġsources )) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( expected Result , Ġanalyzer . analyze (). to Pretty String (), Ġ" Incorrect Ġinvoke Ġarguments Ġfor Ġdirectory Ġ$ directory ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġdata (): ĠList < Arguments > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġchange Ġonly Ġthe ĠMain Ġfile Ġin Ġeach Ġtest Ġby Ġusing Ġdifferent Ġconfigurations Ġof Ġthe ĠRef le kt Ġinvokes \ uses ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommon Test Files Ġ= ĠUtil . getResources RootPath ( Analysis Test :: class , Ġ" common Test Files "). getAll Nested Files (). toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Tests Directories ( Find Smart Ref le kt Invoke Arguments By Expression Part Test :: class ). map Ġ{ Ġdirectory Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġget Project Files In Directory ( directory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsup ert ypes To Filters Ġ= Ġdirectory . find In Directory (" sup ert ypes To Filters . txt "). read Text (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( common Test Files . union ( project ), Ġsup ert ypes To Filters , Ġdirectory . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ