package Ġnl . bre un . model _ d . core Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin . any Ċ import Ġcom . n ha ar man . mockito _ kotlin . do Answer Ċ import Ġcom . n ha ar man . mockito _ kotlin . do Return Ċ import Ġcom . n ha ar man . mockito _ kotlin . mock Ċ import Ġio . github . ben as . random beans . api . Enhanced Random . random Ċ import Ġnl . bre un . model _ d . core . parameter .* Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . assertThat Exception OfType Ċ import Ġorg . assertj . core . description . Text Description Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjavax . sound . midi . Midi Device Ċ import Ġjavax . sound . midi . Receiver Ċ import Ġjavax . sound . midi . Short Message Ċ import Ġjavax . sound . midi . Sy sex Message Ċ Ċ class ĠModel D Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmodel D : ĠModel D ĊĠĠĠ Ġprivate Ġvar ĠdeviceId : ĠDevice Id ĊĠĠĠ Ġprivate Ġvar Ġlast Message : ĠSy sex Message ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr : ĠReceiver Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġsend ( any (), Ġany ()) Ġ}. do Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Message Ġ= Ġit . get Argument ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmidi Out : ĠM idi Device Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġreceiver Ġ}. do Return ( r ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠdeviceId Ġ= Ġrandom ( DeviceId :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġmodel D Ġ= ĠModel D ( midi Out , ĠdeviceId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Message Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġdevice ĠID Ġto Ġ 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set DeviceId ( DeviceId ._ 0 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġdevice ĠID Ġto Ġ 1 5 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set DeviceId ( DeviceId ._ 1 5 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 0 , Ġ 0 , Ġ 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġdevice ĠID Ġto ĠALL `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set DeviceId ( DeviceId . ALL ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 0 , Ġ 0 , Ġ 1 2 7 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġchannel Ġin Ġto Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Channel In ( Midi Channel ._ 1 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġchannel Ġin Ġto Ġ 1 6 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Channel In ( Midi Channel ._ 1 6 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 , Ġ 0 , Ġ 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġchannel Ġout Ġto Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Channel Out ( Midi Channel ._ 1 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġchannel Ġout Ġto Ġ 1 6 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Channel Out ( Midi Channel ._ 1 6 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 2 , Ġ 0 , Ġ 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġkey Ġpriority Ġto Ġlowest Ġkey `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Key Priority ( Key Priority . LOW ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 3 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġkey Ġpriority Ġto Ġlast Ġkey `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Key Priority ( Key Priority . LAST ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 3 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġkey Ġpriority Ġto Ġhighest Ġkey `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Key Priority ( Key Priority . HIGH ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 3 , Ġ 0 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Disable Ġmulti - trigger `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Multi Trigger ( Status . OFF ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 4 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Enable Ġmulti - trigger `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Multi Trigger ( Status . ON ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 4 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġb end Ġto Ġ 0 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set B end S emit ones ( 9 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 5 , Ġ 0 , Ġ 9 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġb end Ġto Ġ 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set B end S emit ones ( 1 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 5 , Ġ 0 , Ġ 1 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset Ġben Ġse mit ones Ġto Ġ- 1 `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set B end S emit ones (- 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" b end Ġse mit ones : Ġ[ 0 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset Ġben Ġse mit ones Ġto Ġ 1 3 `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set B end S emit ones ( 1 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" b end Ġse mit ones : Ġ[ 0 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Disable Ġoutput ĠMIDI Ġpitch Ġb end `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . setOutput Midi Pitch B end ( Status . OFF ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 8 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Enable Ġoutput ĠMIDI Ġpitch Ġb end `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . setOutput Midi Pitch B end ( Status . ON ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 8 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Disable Ġoutput ĠMIDI Ġpressure `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . setOutput Midi Pressure ( Status . OFF ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 9 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Enable Ġoutput ĠMIDI Ġpressure `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . setOutput Midi Pressure ( Status . ON ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 9 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġgate Ġtrigger Ġsources Ġto Ġexternal Ġonly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Gate Trigger Sources ( Gate Trigger Sources . EXTERNAL ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġgate Ġtrigger Ġsources Ġto Ġexternal Ġand Ġlocal Ġonly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Gate Trigger Sources ( Gate Trigger Sources . EXTERNAL _ AND _ LOCAL ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 0 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġgate Ġtrigger Ġsources Ġto Ġexternal Ġand ĠMIDI Ġonly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Gate Trigger Sources ( Gate Trigger Sources . EXTERNAL _ AND _ MIDI ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 0 , Ġ 0 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġgate Ġtrigger Ġsources Ġto Ġexternal , Ġlocal Ġand ĠMIDI `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Gate Trigger Sources ( Gate Trigger Sources . EXTERNAL _ AND _ LOCAL _ AND _ MIDI ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 0 , Ġ 0 , Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Disable Ġtuning Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Error ( Status . OFF ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 1 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Enable Ġtuning Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Error ( Status . ON ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 1 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġvariance Ġto Ġ 0 Ġcent s `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Variance ( 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġvariance Ġto Ġ 5 0 Ġcent s `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Variance ( 5 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 2 , Ġ 3 , Ġ 1 1 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset Ġnegative Ġtuning Ġvariance `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set T uning Variance (- 0 . 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" cent s : Ġ[ 0 . 0 , Ġ 5 0 . 0 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset Ġtuning Ġvariance Ġhigher Ġthan Ġ 5 0 Ġcent s `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set T uning Variance ( 5 0 . 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" cent s : Ġ[ 0 . 0 , Ġ 5 0 . 0 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġprogram Ġto Ġtw el ve Ġtone Ġequal Ġtemp ar ament `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Program ( T uning Program . TW EL VE _ T ONE _ EQUAL _ TEMP ER AM ENT ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 3 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġprogram Ġto Ġcustom ĠMIDI Ġ 1 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Program ( T uning Program . CUSTOM _ MIDI _ 1 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 3 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġprogram Ġto Ġcustom ĠMIDI Ġ 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Program ( T uning Program . CUSTOM _ MIDI _ 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 3 , Ġ 0 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġtuning Ġprogram Ġto Ġcustom ĠMIDI Ġ 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set T uning Program ( T uning Program . CUSTOM _ MIDI _ 3 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 3 , Ġ 0 , Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġvelocity Ġcurve Ġto Ġsoft `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Velocity Curve ( Velocity Curve . SOFT ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 4 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġvelocity Ġcurve Ġto Ġmedium `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Velocity Curve ( Velocity Curve . MEDIUM ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 4 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġvelocity Ġcurve Ġto Ġhard `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Velocity Curve ( Velocity Curve . HARD ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 4 , Ġ 0 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġin Ġtranspose Ġto Ġ- 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi In Transpose (- 1 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 5 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġin Ġtranspose Ġto Ġ 0 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi In Transpose ( 0 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 5 , Ġ 0 , Ġ 1 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġin Ġtranspose Ġto Ġ+ 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi In Transpose ( 1 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 5 , Ġ 0 , Ġ 2 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset ĠMIDI Ġin Ġtranspose Ġlower Ġthan Ġ- 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set Midi In Transpose (- 1 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" transpose Ġse mit ones : Ġ[- 1 2 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset ĠMIDI Ġin Ġtranspose Ġhigher Ġthan Ġ+ 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set Midi In Transpose ( 1 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" transpose Ġse mit ones : Ġ[- 1 2 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġout Ġtranspose Ġto Ġ- 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Out Transpose (- 1 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 6 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġout Ġtranspose Ġto Ġ 0 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Out Transpose ( 0 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 6 , Ġ 0 , Ġ 1 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġout Ġtranspose Ġto Ġ+ 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Out Transpose ( 1 2 ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 6 , Ġ 0 , Ġ 2 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset ĠMIDI Ġout Ġtranspose Ġlower Ġthan Ġ- 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set Midi Out Transpose (- 1 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" transpose Ġse mit ones : Ġ[- 1 2 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġexception Ġwhen Ġtrying Ġto Ġset ĠMIDI Ġout Ġtranspose Ġhigher Ġthan Ġ+ 1 2 Ġse mit ones `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Exception OfType ( IllegalArgumentException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Thrown By Ġ{ Ġmodel D . set Midi Out Transpose ( 1 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Message (" transpose Ġse mit ones : Ġ[- 1 2 , Ġ 1 2 ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġpressure ĠCV Ġrange Ġto Ġ+ 5 Ġvol ts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Pressure CV Range ( Pressure CV Range . PLUS _ FI VE _ VOL TS ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 7 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set Ġpressure ĠCV Ġrange Ġto Ġ+ 1 0 Ġvol ts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Pressure CV Range ( Pressure CV Range . PLUS _ TEN _ VOL TS ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 7 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġnote Ġ 0 Ġvol ts Ġto ĠC 0 Ġ( MIDI Ġnote Ġ 0 )` () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Note Zero Vol ts ( Midi Note ( 0 )) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 8 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Set ĠMIDI Ġnote Ġ 0 Ġvol ts Ġto ĠG 1 0 Ġ( MIDI Ġnote Ġ 1 2 7 )` () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Midi Note Zero Vol ts ( Midi Note ( 1 2 7 )) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 8 , Ġ 0 , Ġ 1 2 7 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Disable Ġlocal Ġcontrol `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Local Control ( Status . OFF ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 9 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Enable Ġlocal Ġcontrol `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel D . set Local Control ( Status . ON ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message ( 1 9 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Global Parameter Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Global Parameter Number : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected MSB : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected LSB : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( last Message ). isNotNull () ĊĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġlast Message !!. message ĊĊĠĠĠĠĠĠĠ Ġassert Global Parameter Message Bytes ( bytes ) ĊĠĠĠĠĠĠĠ Ġassert DeviceId ( bytes ) ĊĠĠĠĠĠĠĠ Ġassert Global Parameter Number ( expected Global Parameter Number . to Byte (), Ġbytes ) ĊĠĠĠĠĠĠĠ Ġassert MSB ( expected MSB . to Byte (), Ġbytes ) ĊĠĠĠĠĠĠĠ Ġassert LSB ( expected LSB . to Byte (), Ġbytes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Global Parameter Message Bytes ( bytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" First Ġbyte Ġ( status Ġbyte , Ġconstant ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Sy sex Message . SYSTEM _ EXCL USIVE . to Byte ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" Second Ġbyte Ġ( constant ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 0 x 0 4 . to Byte ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" Third Ġbyte Ġ( constant ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 0 x 1 5 . to Byte ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 4 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" F ifth Ġbyte Ġ( constant ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 0 x 1 4 . to Byte ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 8 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" Nin th Ġbyte Ġ( end Ġbyte , Ġconstant ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Short Message . END _ OF _ EXCL USIVE . to Byte ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert DeviceId ( bytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 3 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" Device ĠID Ġ( four th Ġbyte ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( deviceId . value . to Byte ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Global Parameter Number ( expected Global Parameter Number : ĠByte , Ġbytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 5 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" Global Ġparameter Ġnumber Ġ( six th Ġbyte ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Global Parameter Number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert MSB ( expected MSB : ĠByte , Ġbytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 6 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" MSB Ġ( se vent h Ġbyte ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected MSB ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert LSB ( expected : ĠByte , Ġbytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( bytes [ 7 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. described As ( Text Description (" LSB Ġ( e ighth Ġbyte ) ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected ) ĊĠĠĠ Ġ} Ċ }