package Ġcom . gil ded rose . rules Ċ Ċ import Ġcom . gil ded rose . Item Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠCon j ured Items Rule Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrule Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCon j ured Items Rule () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Apply Ġrule Ġwhen Ġitem Ġstarts Ġwith Ġconj ured `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem (" Con j ured Ġitem ", Ġ 5 , Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( rule . should Apply Rule ( item )) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem With Ty po Ġ= ĠItem (" Con j ures ", Ġ 5 , Ġ 3 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( rule . should Apply Rule ( item With Ty po )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Name Ġof Ġitem Ġis Ġchecked Ġwhile Ġignoring Ġcase `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem (" con J UR ed Ġitem ", Ġ 5 , Ġ 5 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( rule . should Apply Rule ( item )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Sell In Ġde creases Ġwhen Ġadjust ing Ġquality `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġgenerate Item ( 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġrule . adjust Quality ( item ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġitem . sell In ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Quality Ġde grade s Ġtwice Ġas Ġfast `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġgenerate Item ( 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġrule . adjust Quality ( item ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġitem . quality ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Quality Ġcan Ġnever Ġgo Ġbelow Ġ 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġgenerate Item ( 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġrule . adjust Quality ( item ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġitem . quality ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` Quality Ġnever Ġgoes Ġbelow Ġ 0 Ġif Ġsell In Ġis Ġbelow Ġ 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġgenerate Item (- 5 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġrule . adjust Quality ( item ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġitem . quality ) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 6 , Ġitem . sell In ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` When Ġsell In Ġpassed , Ġquality Ġde grade s Ġtwice Ġas Ġfast `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġgenerate Item ( 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġrule . adjust Quality ( item ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġitem . quality ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Item ( sell In : ĠInt , Ġquality : ĠInt ) Ġ= ĠItem (" Con j ured Ġitem ", Ġsell In , Ġquality ) Ċ }