/** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġ- Ġ 2 0 2 2 ĠEP AM ĠSystems Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . ep am . drill . plugins . test 2 code Ċ Ċ import Ġkotlin . test .* Ċ Ċ class ĠLambda Diff Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmethod Example Ġ= ĠMethod ( ĊĠĠĠĠĠĠĠ Ġ" foo / bar / Bar ", ĊĠĠĠĠĠĠĠ Ġ" method ", ĊĠĠĠĠĠĠĠ Ġ" () V ", ĊĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 1 2 3 ", ĊĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmap Of (" lambda \$ method \$ 1 " Ġto Ġ" 4 5 6 "), ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġhas Ġnot Ġchanged , Ġmethod Ġhas Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( method Example . copy ( hash Ġ= Ġ" 8 9 6 ")) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( method Example , Ġdiff . modified . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġmethod Ġwithout Ġlambda Ġhas Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Method Ġ= Ġmethod Example . copy ( lamb das Hash Ġ= Ġempty Map ()) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( expected Method ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( expected Method . copy ( hash Ġ= Ġ" 8 9 6 ")) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Method , Ġdiff . modified . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġmethod Ġwithout Ġlambda Ġdoesn 't Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Method Ġ= Ġmethod Example . copy ( lamb das Hash Ġ= Ġempty Map ()) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( expected Method ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( expected Method ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . un affected . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Method , Ġdiff . un affected . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġname Ġhas Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Example . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmethod Example . lamb das Hash . map Keys Ġ{ Ġit . key Ġ+ Ġ" f " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . un affected . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( method Example , Ġdiff . un affected . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġhas Ġchanged , Ġmethod Ġdoesn 't Ġchange `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchanged Method Ġ= Ġmethod Example . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmethod Example . lamb das Hash . map Values Ġ{ Ġit . value Ġ+ Ġ" f " Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( method Example . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmethod Example . lamb das Hash . map Values Ġ{ Ġit . value Ġ+ Ġ" f " Ġ} ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġsecond Build Methods . diff ( first Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( changed Method , Ġdiff . modified . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġand Ġmethod Ġhas Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Example . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" qw erty ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmethod Example . lamb das Hash . map Values Ġ{ Ġit . value Ġ+ Ġ" f " Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( method Example , Ġdiff . modified . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġand Ġlambda Ġname Ġhas Ġchanged `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Methods Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Example . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" qw erty ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlamb das Hash Ġ= Ġmethod Example . lamb das Hash . map Ġ{ Ġ( it . key Ġ+ Ġ" some ") Ġto Ġ( it . value Ġ+ Ġ" some ") Ġ}. toMap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Methods ) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġdiff . modified . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( method Example , Ġdiff . modified . first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġ- Ġlambda Ġmethod Ġshouldn 't Ġbe Ġin Ġdiff `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlambda Method Ġ= ĠMethod ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Class Ġ= Ġ" foo / bar / Bar ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" lambda \$ method \$ 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdesc Ġ= Ġ"( java / lang / String ) V ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Ġ= Ġ" 1 2 5 ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Build Methods Ġ= ĠlistOf ( method Example , Ġlambda Method ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Build Method Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Example . copy ( hash Ġ= Ġ" 8 9 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlambda Method . copy ( name Ġ= Ġ" lambda \$ method \$ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlambda Method . copy ( name Ġ= Ġ" lambda \$ other Method \$ 0 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġfirst Build Methods . diff ( second Build Method ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdiff . modified . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġdiff . new . size ) ĊĠĠĠ Ġ} Ċ } Ċ