@ file : Suppress (" UNUSED _ VARIABLE ", Ġ" Member Visibility Can Be Private ") Ċ Ċ import Ġalgorithms . Alignment Global Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** Ċ Code ĠChallenge : ĠSolve Ġthe ĠGlobal ĠAlignment ĠProblem . Ċ Ċ Input : ĠTwo Ġprotein Ġstrings Ġwritten Ġin Ġthe Ġsingle - letter Ġa mino Ġacid Ġalphabet . Ċ Output : ĠThe Ġmaximum Ġalignment Ġscore Ġof Ġthese Ġstrings Ġfollowed Ġby Ġan Ġalignment Ċ ach ie ving Ġthis Ġmaximum Ġscore . ĠUse Ġthe ĠB LO SUM 6 2 Ġscoring Ġmatrix Ġfor Ġmatches Ġand Ċ mis matches Ġas Ġwell Ġas Ġthe Ġin del Ġpenalty ĠÏĥ Ġ= Ġ 5 . Ċ Ġ* Ċ Ġ* ĠSee Ġalso : Ċ Ġ* Ġstep ik : Ġ@ link : Ġhttps :// step ik . org / lesson / 2 4 0 3 0 5 / step / 3 ? unit = 2 1 2 6 5 1 Ċ Ġ* Ġro sal ind : Ġ@ link : Ġhttp :// ros al ind . info / problems / ba 5 e / Ċ Ġ* Ġbook Ġ( 5 . 1 0 ): Ġ Ġhttps :// www . bio inform atic sal gorithms . org / bio inform atics - chapter - 5 Ċ Ġ*/ Ċ Ċ internal Ġclass ĠS 0 5 c 1 0 p 0 3 Alignment Global Test Ġ{ ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthe Ġscoring Ġfunction Ġ- Ġthis Ġchecks Ġto Ġmake Ġsure Ġthe ĠB LO SUM 6 2 ĊĠĠĠĠ Ġ* Ġmatch Ġmatrix Ġis Ġset Ġup Ġfor Ġthose Ġtests Ġthat Ġuse Ġit . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġ- Ġmatrix Ġinput Ġtest ") ĊĠĠĠ Ġfun Ġglobal Alignment Matrix Input Test () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġga Ġ= ĠAlignment Global ( 0 , Ġ 0 , Ġ 0 , Ġuse B LO SUM 6 2 Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġtest 1 Ġ= Ġga . score (' Y ', Ġ' Y ') ĊĠĠĠĠĠĠĠ ĠassertEquals ( 7 , Ġtest 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest 2 Ġ= Ġga . score (' A ', Ġ' A ') ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġtest 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġfirst Ġsample Ġin Ġthe ĠTest ĠDataset ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 3 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 3 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG AG A ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG AT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG AG A ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGA - T ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġ* Ġsecond Ġsample Ġin Ġthe ĠTest ĠDataset ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 4 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 4 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 3 Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA CG ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC - G ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACT - ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 5 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 5 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĉ This Ġtest Ġmakes Ġsure Ġthat Ġyour Ġcode Ġallows Ġfor Ġan Ġoutput ĊĠĠĠĠ Ġ* Ġ ĉ beginning Ġwith Ġan Ġin del . ĠIf Ġyour Ġcode Ġdoesn âĢĻ t Ġmake Ġuse Ġof ĊĠĠĠĠ Ġ* Ġ ĉ the Ġbase Ġcases Ġ( first Ġrow Ġand Ġcolumn Ġof Ġthe Ġdynamic Ġprogramming Ġmatrix ) ĊĠĠĠĠ Ġ* Ġ ĉ scores Ġthen Ġthe Ġcorrect Ġscore Ġof Ġ 3 Ġcannot Ġbe Ġfound . ĊĠĠĠĠ Ġ* Ġ ĉ Be Ġsure Ġto Ġcorrectly Ġfill Ġout Ġyour Ġbases Ġcases Ġand Ġconsider Ġthem Ġin Ġyour Ġrecursive Ġcases . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 6 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 6 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ 5 Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT CA ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCA ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT CA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- CA ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġmakes Ġsure Ġthat Ġyour Ġcode Ġcan Ġhandle Ġmultiple Ġin de ls Ġin Ġa Ġrow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 7 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 7 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 0 Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT TT TC CT T ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCC ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 4 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT TT TC CT T ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ---- CC -- ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġmakes Ġsure Ġthat Ġyour Ġcode Ġcan Ġhandles Ġinputs ĊĠĠĠĠ Ġ* Ġin Ġwhich Ġthe Ġtwo Ġstrings Ġdiffer Ġdr astic ally Ġin Ġlength . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 8 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 8 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ 3 Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC AG AT TAG ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC AG AT TAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ------ T -- ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġmakes Ġsure Ġthat Ġyour Ġcode Ġcan Ġhandles ĊĠĠĠĠ Ġ* Ġinputs Ġin Ġwhich Ġthe Ġtwo Ġstrings Ġdiffer Ġdr astic ally Ġin Ġlength . ĊĠĠĠĠ Ġ* ĠThis Ġdataset Ġis Ġsimilar Ġto Ġthe Ġprevious Ġdataset ĊĠĠĠĠ Ġ* Ġexcept Ġin Ġthis Ġdataset Ġstring Ġs Ġis Ġmuch Ġshorter Ġthan Ġstring Ġt Ġinstead Ġof Ġvice - ver sa . ĊĠĠĠĠ Ġ* ĠNOTE : ĊĠĠĠĠ Ġ* Ġoriginal Ġexpected : ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ------ G --- ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġ 0 9 ") ĊĠĠĠ Ġfun Ġglobal Alignment Test 0 9 () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ 1 Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC AT AC G AT G ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--------- G ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC AT AC G AT G ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġadded Ġa Ġtest Ġto Ġcheck Ġbasic Ġresults Ġto Ġcompare Ġto ĠMiddle ĠEdge Ġtest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Basic Ġstring Ġtest ") ĊĠĠĠ Ġfun Ġfind Middle Edge Basic Function 0 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput : ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT TT TT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOutput : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ--- TT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT TT TT ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġrun Test ( sample ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġrun Test ( sample : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= Ġsample . reader () ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġreader . read Lines () ĊĠĠĠĠĠĠĠ Ġval Ġpar ms Ġ= Ġlines [ 1 ]. split (" Ġ"). map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmatch Ġ= Ġpar ms [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġmismatch Ġ= Ġpar ms [ 1 ] ĊĠĠĠĠĠĠĠ Ġval Ġgap Ġ= Ġpar ms [ 2 ] ĊĊĠĠĠĠĠĠĠ Ġval Ġga Ġ= ĠAlignment Global ( match , Ġmismatch , Ġgap ) ĊĠĠĠĠĠĠĠ Ġval Ġs Row Ġ= Ġlines [ 2 ] ĊĠĠĠĠĠĠĠ Ġval Ġt Col Ġ= Ġlines [ 3 ] ĊĊĠĠĠĠĠĠĠ Ġval Ġscore Expected Ġ= Ġlines [ 5 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġs Row Aligned Expected Ġ= Ġlines [ 6 ] ĊĠĠĠĠĠĠĠ Ġval Ġt Col Aligned Expected Ġ= Ġlines [ 7 ] ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġga . global Alignment ( s Row , Ġt Col ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscore Result Ġ= Ġresult . first ĊĠĠĠĠĠĠĠ Ġval Ġs Row Result Ġ= Ġresult . second ĊĠĠĠĠĠĠĠ Ġval Ġt Col Result Ġ= Ġresult . third ĊĠĠĠĠĠĠĠ ĠassertEquals ( score Expected , Ġscore Result ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( s Row Aligned Expected , Ġs Row Result ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( t Col Aligned Expected , Ġt Col Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġ* Ġthe Ġsample Ġproblem ĊĠĠĠ Ġ* Ġ@ link : Ġhttp :// ros al ind . info / problems / ba 5 e / ĊĠĠĠ Ġ* ĠNote Ġthat Ġthe Ġanswer Ġdiffers Ġfrom Ġthat Ġgiven Ġin Ġthe Ġproblem Ġstatement . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" global Ġalignment Ġtest Ġsample ") ĊĠĠĠ Ġfun Ġglobal Alignment Test Sample () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġs Row Ġ= Ġ" PLE AS ANT LY " ĊĠĠĠĠĠĠĠ Ġval Ġt Col Ġ= Ġ" ME AN LY " ĊĊĠĠĠĠĠĠĠ Ġval Ġga Ġ= ĠAlignment Global ( 0 , Ġ 0 , Ġ 5 , Ġuse B LO SUM 6 2 Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġga . global Alignment ( s Row , Ġt Col ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscore Result Ġ= Ġresult . first ĊĠĠĠĠĠĠĠ Ġval Ġs Row Result Ġ= Ġresult . second ĊĠĠĠĠĠĠĠ Ġval Ġt Col Result Ġ= Ġresult . third ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Score Result Ġ= Ġ 8 ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Score Result , Ġscore Result ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected t Col Result Ġ= Ġ"- ME -- AN - LY " ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected t Col Result , Ġt Col Result ) ĊĠĠĠ Ġ} Ċ Ċ }