package Ġpl . pj ag iel ski . p unkt . pattern Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . contains Exactly Ċ import Ġassert k . assertions . extract ing Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġpl . pj ag iel ski . p unkt . me lo dy . Ch ord Ċ import Ġpl . pj ag iel ski . p unkt . me lo dy . E Ċ import Ġpl . pj ag iel ski . p unkt . me lo dy . Intervals . minor Ċ import Ġpl . pj ag iel ski . p unkt . me lo dy . Scale Ċ import Ġpl . pj ag iel ski . p unkt . me lo dy . degrees Ċ Ċ class ĠAr p Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create Up Ar p () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindexes Ġ= Ġar p ( 0 , Ġ 5 , Ġ 1 4 , ĠAr p Type . UP ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( indexes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create UpDown Ar p () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindexes Ġ= Ġar p ( 0 , Ġ 5 , Ġ 1 4 , ĠAr p Type . UP DOWN ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( indexes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( 0 , Ġ 1 , Ġ 2 , Ġ 1 , Ġ 0 , Ġ 1 , Ġ 2 , Ġ 1 , Ġ 0 , Ġ 1 , Ġ 2 , Ġ 1 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create Down Ch ord Ar p () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindexes Ġ= Ġar p ( Ch ord . I , Ġ 9 , ĠAr p Type . DOWN ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( indexes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( 0 , Ġ 4 , Ġ 2 , Ġ 0 , Ġ 4 , Ġ 2 , Ġ 0 , Ġ 4 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create UpDown Ch ord Ar p () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindexes Ġ= Ġar p ( Ch ord . I , Ġ 9 , ĠAr p Type . UP DOWN ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( indexes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( 0 , Ġ 2 , Ġ 4 , Ġ 2 , Ġ 0 , Ġ 2 , Ġ 4 , Ġ 2 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Use Ar p With Ch ord Progress ion () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠScale ( E , Ġminor ) ĊĠĠĠĠĠĠĠ Ġval Ġprogress ion Ġ= ĠlistOf ( Ch ord . I , ĠCh ord . IV , ĠCh ord . VI , ĠCh ord . V II ) ĊĊĠĠĠĠĠĠĠ Ġval Ġp ats Ġ= Ġpatterns ( beats Ġ= Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. phrase ( degrees ( progress ion . flatMap Ġ{ Ġar p ( it , Ġ 6 ) Ġ}), Ġrepeat ( 0 . 2 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. syn th (" test ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( p ats ). extract ing Ġ{ Ġit . mid in ote Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 4 , Ġ 6 7 , Ġ 7 1 , Ġ 6 4 , Ġ 6 7 , Ġ 7 1 , Ġ 6 9 , Ġ 7 2 , Ġ 7 6 , Ġ 6 9 , Ġ 7 2 , Ġ 7 6 , Ġ 7 2 , Ġ 7 6 , Ġ 7 9 , Ġ 7 2 , Ġ 7 6 , Ġ 7 9 , Ġ 7 4 , Ġ 7 8 , Ġ 8 1 , Ġ 7 4 , Ġ 7 8 , Ġ 8 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create Ar p With Oct ave Low Every N th Beat () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcycle ( arp ( listOf ( 1 , Ġ 2 , Ġ 3 ), Ġ 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. every ( 5 , Ġ{ Ġit Ġ- Ġ 7 Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (- 6 , Ġ 2 , Ġ 3 , Ġ 1 , Ġ 1 , Ġ- 5 , Ġ 3 , Ġ 1 , Ġ 1 , Ġ 2 , Ġ- 4 , Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ