package Ġcom . github . recognized . scre enc ast . recorder . sound . impl Ċ Ċ import Ġcom . github . recognized . scre enc ast . recorder . sound . Ed itions Model Ċ import Ġcom . github . recognized . scre enc ast . recorder . sound . Ed itions Model . Edition Type .* Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ Ċ class ĠDefault Edition Model Test Ġ{ ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġequals Ġmethod `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Default Ed itions Model (), ĠDefault Ed itions Model ()) ĊĠĠĠĠĠĠĠ Ġval Ġrange 1 Ġ= Ġ 1 0 L .. 2 0 L ĊĠĠĠĠĠĠĠ ĠassertEquals ( Default Ed itions Model (). apply Ġ{ Ġcut ( range 1 ) Ġ}, ĠDefault Ed itions Model (). apply Ġ{ Ġcut ( range 1 ) Ġ}) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Default Ed itions Model (). apply Ġ{ Ġmute ( range 1 ) Ġ}, ĠDefault Ed itions Model (). apply Ġ{ Ġmute ( range 1 ) Ġ}) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Default Ed itions Model (). apply Ġ{ Ġmute ( range 1 ); Ġun mute ( range 1 ) Ġ}, ĠDefault Ed itions Model ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Ed itions Model (). apply Ġ{ Ġmute ( range 1 ); Ġcut ( range 1 ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Ed itions Model (). apply Ġ{ Ġcut ( range 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġcut Ġis Ġnot Ġaffected `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel 1 Ġ= ĠDefault Ed itions Model (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 1 0 0 .. 2 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 3 0 0 .. 4 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 5 0 0 .. 6 0 0 L ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmodel 2 Ġ= Ġmodel 1 . copy (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 5 0 .. 3 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mute ( 3 5 0 .. 3 6 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 4 0 0 .. 1 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mute ( 3 8 0 .. 5 5 0 L ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel 1 . ed itions Model . filter Ġ{ Ġit . second Ġ== ĠC UT Ġ}. map Ġ{ Ġit . first Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel 2 . ed itions Model . filter Ġ{ Ġit . second Ġ== ĠC UT Ġ}. map Ġ{ Ġit . first Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġranges Ġare Ġcorrect `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġranges Ġ= ĠDefault Ed itions Model (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 1 0 0 .. 2 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 3 0 0 .. 4 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 5 0 0 .. 6 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 5 0 .. 2 5 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 4 5 0 .. 1 0 0 0 L ) ĊĠĠĠĠĠĠĠ Ġ}. ed itions Model ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ranges Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 .. 4 9 L Ġto ĠNO _ CHANG ES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 .. 9 9 L Ġto ĠM UTE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 .. 2 0 0 L Ġto ĠC UT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 1 .. 2 5 0 L Ġto ĠM UTE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 5 1 .. 2 9 9 L Ġto ĠNO _ CHANG ES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 0 0 .. 4 0 0 L Ġto ĠC UT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 1 .. 4 4 9 L Ġto ĠNO _ CHANG ES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 5 0 .. 4 9 9 L Ġto ĠM UTE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 .. 6 0 0 L Ġto ĠC UT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 0 1 .. 1 0 0 0 L Ġto ĠM UTE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Ranges , Ġranges . drop Last ( 1 )) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġserialization `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠDefault Ed itions Model (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 0 L .. 2 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 4 0 0 L .. 6 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcut ( 8 0 0 L .. 9 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 1 0 0 0 L .. 1 2 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 1 5 0 L .. 4 5 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmute ( 1 0 0 0 0 L .. 4 0 0 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mute ( 1 2 0 0 0 L .. 3 5 0 0 0 L ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( model , ĠEdition s Model . deserialize ( model . serialize ())) ĊĠĠĠ Ġ} Ċ }