package Ġcom . github . sh mv anh out en . ad vent of code . day 2 1 letter scr amble Ċ Ċ import Ġcom . nat pr y ce . ham k rest . assertion . assertThat Ċ import Ġcom . nat pr y ce . ham k rest . equalTo Ċ import Ġorg . junit . Test Ċ Ċ class ĠLetter Scr amb ler Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġswap Ġthe Ġb Ġin Ġposition Ġ 1 Ġwith Ġthe Ġd Ġin Ġposition Ġ 7 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" swap Ġposition Ġ 7 Ġwith Ġposition Ġ 1 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abcdefgh " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" ah c def gb ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġswap Ġthe Ġe Ġin Ġposition Ġ 4 Ġwith Ġthe Ġa Ġin Ġposition Ġ 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" swap Ġposition Ġ 4 Ġwith Ġposition Ġ 0 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" eb cda ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġswap Ġthe Ġe Ġwith Ġthe Ġd `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" swap Ġletter Ġe Ġwith Ġletter Ġd " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abcdefgh " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" ab ced f gh ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġswap Ġthe Ġd Ġwith Ġthe Ġb `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" swap Ġletter Ġd Ġwith Ġletter Ġb " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" eb cda " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" ed cba ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġreverse Ġthe Ġfirst Ġfive Ġletters Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" reverse Ġpositions Ġ 0 Ġthrough Ġ 4 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abcdefgh " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" ed cb af gh ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġreverse Ġall Ġletters Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" reverse Ġpositions Ġ 0 Ġthrough Ġ 4 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" ed cba " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" abc de ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġreverse Ġthe Ġlast Ġ 3 Ġletters Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" reverse Ġpositions Ġ 1 Ġthrough Ġ 4 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" aed cb ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġshift Ġall Ġthe Ġletters Ġone Ġposition Ġto Ġthe Ġleft Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" rotate Ġleft Ġ 1 Ġstep " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" bc dea ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġshift Ġall Ġthe Ġletters Ġtwo Ġpositions Ġto Ġthe Ġleft Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" rotate Ġleft Ġ 2 Ġstep " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" cde ab ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġshift Ġall Ġthe Ġletters Ġone Ġposition Ġto Ġthe Ġright `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" rotate Ġright Ġ 1 Ġstep " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" e abcd ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġremove Ġletter Ġat Ġposition Ġ 1 Ġthen Ġappend Ġit Ġat Ġthe Ġend Ġ` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" move Ġposition Ġ 1 Ġto Ġposition Ġ 4 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" bc dea " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" bde ac ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġremove Ġletter Ġat Ġposition Ġ 3 Ġthen Ġinsert Ġit Ġin Ġposition Ġ 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" move Ġposition Ġ 3 Ġto Ġposition Ġ 0 " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" bde ac " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" ab dec ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġshift Ġthe Ġwhole Ġstring Ġto Ġthe Ġright Ġ 3 Ġtimes Ġbecause Ġc Ġis Ġin Ġposition Ġ 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġraw Instructions Ġ= Ġ" rotate Ġbased Ġon Ġposition Ġof Ġletter Ġc " ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abc de " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( raw Instructions , Ġpassword ), ĠequalTo (" cde ab ")) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġsolve Ġthe Ġchallenge Ġinput `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscr amb ler Ġ= ĠLetter Scr amb ler () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġ" abcdefgh " ĊĠĠĠĠĠĠĠ ĠassertThat ( scr amb ler . scr amble Password ( day 2 1 Challenge Input , Ġpassword ), ĠequalTo (" fd h bc ge a ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġval Ġday 2 1 Challenge Input Ġ= Ġ""" swap Ġposition Ġ 7 Ġwith Ġposition Ġ 1 Ċ swap Ġletter Ġe Ġwith Ġletter Ġd Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 6 Ċ move Ġposition Ġ 4 Ġto Ġposition Ġ 0 Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 4 Ċ move Ġposition Ġ 6 Ġto Ġposition Ġ 5 Ċ rotate Ġright Ġ 1 Ġstep Ċ swap Ġletter Ġe Ġwith Ġletter Ġb Ċ reverse Ġpositions Ġ 3 Ġthrough Ġ 7 Ċ swap Ġposition Ġ 2 Ġwith Ġposition Ġ 6 Ċ reverse Ġpositions Ġ 2 Ġthrough Ġ 4 Ċ reverse Ġpositions Ġ 1 Ġthrough Ġ 4 Ċ reverse Ġpositions Ġ 5 Ġthrough Ġ 7 Ċ rotate Ġleft Ġ 2 Ġsteps Ċ swap Ġletter Ġg Ġwith Ġletter Ġf Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġa Ċ swap Ġletter Ġb Ġwith Ġletter Ġh Ċ swap Ġposition Ġ 0 Ġwith Ġposition Ġ 3 Ċ move Ġposition Ġ 4 Ġto Ġposition Ġ 7 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġg Ċ swap Ġletter Ġf Ġwith Ġletter Ġe Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 5 Ċ swap Ġletter Ġd Ġwith Ġletter Ġe Ċ move Ġposition Ġ 5 Ġto Ġposition Ġ 2 Ċ move Ġposition Ġ 6 Ġto Ġposition Ġ 5 Ċ rotate Ġright Ġ 6 Ġsteps Ċ rotate Ġleft Ġ 4 Ġsteps Ċ reverse Ġpositions Ġ 0 Ġthrough Ġ 3 Ċ swap Ġletter Ġg Ġwith Ġletter Ġc Ċ swap Ġletter Ġf Ġwith Ġletter Ġe Ċ reverse Ġpositions Ġ 6 Ġthrough Ġ 7 Ċ move Ġposition Ġ 6 Ġto Ġposition Ġ 1 Ċ rotate Ġleft Ġ 2 Ġsteps Ċ rotate Ġleft Ġ 5 Ġsteps Ċ swap Ġposition Ġ 3 Ġwith Ġposition Ġ 6 Ċ reverse Ġpositions Ġ 1 Ġthrough Ġ 5 Ċ rotate Ġright Ġ 6 Ġsteps Ċ swap Ġletter Ġa Ġwith Ġletter Ġb Ċ reverse Ġpositions Ġ 3 Ġthrough Ġ 4 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġf Ċ swap Ġposition Ġ 2 Ġwith Ġposition Ġ 6 Ċ reverse Ġpositions Ġ 5 Ġthrough Ġ 6 Ċ swap Ġletter Ġh Ġwith Ġletter Ġe Ċ reverse Ġpositions Ġ 0 Ġthrough Ġ 4 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġg Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġd Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġb Ċ swap Ġposition Ġ 5 Ġwith Ġposition Ġ 1 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġf Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 5 Ċ rotate Ġright Ġ 0 Ġsteps Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġe Ċ move Ġposition Ġ 0 Ġto Ġposition Ġ 1 Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 2 Ċ rotate Ġleft Ġ 3 Ġsteps Ċ reverse Ġpositions Ġ 0 Ġthrough Ġ 1 Ċ rotate Ġright Ġ 7 Ġsteps Ċ rotate Ġright Ġ 5 Ġsteps Ċ swap Ġposition Ġ 2 Ġwith Ġposition Ġ 0 Ċ swap Ġletter Ġg Ġwith Ġletter Ġa Ċ rotate Ġleft Ġ 0 Ġsteps Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġf Ċ swap Ġposition Ġ 5 Ġwith Ġposition Ġ 1 Ċ rotate Ġright Ġ 0 Ġsteps Ċ rotate Ġleft Ġ 5 Ġsteps Ċ swap Ġletter Ġe Ġwith Ġletter Ġa Ċ swap Ġposition Ġ 5 Ġwith Ġposition Ġ 4 Ċ reverse Ġpositions Ġ 2 Ġthrough Ġ 5 Ċ swap Ġletter Ġe Ġwith Ġletter Ġa Ċ swap Ġposition Ġ 3 Ġwith Ġposition Ġ 7 Ċ reverse Ġpositions Ġ 0 Ġthrough Ġ 2 Ċ swap Ġletter Ġa Ġwith Ġletter Ġb Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 1 Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 6 Ċ rotate Ġright Ġ 1 Ġstep Ċ reverse Ġpositions Ġ 2 Ġthrough Ġ 6 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġb Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 0 Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 3 Ċ move Ġposition Ġ 6 Ġto Ġposition Ġ 5 Ċ rotate Ġright Ġ 4 Ġsteps Ċ reverse Ġpositions Ġ 2 Ġthrough Ġ 7 Ċ reverse Ġpositions Ġ 3 Ġthrough Ġ 4 Ċ reverse Ġpositions Ġ 4 Ġthrough Ġ 5 Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġf Ċ reverse Ġpositions Ġ 0 Ġthrough Ġ 5 Ċ reverse Ġpositions Ġ 3 Ġthrough Ġ 4 Ċ move Ġposition Ġ 1 Ġto Ġposition Ġ 2 Ċ rotate Ġleft Ġ 4 Ġsteps Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 6 Ċ rotate Ġright Ġ 1 Ġstep Ċ move Ġposition Ġ 5 Ġto Ġposition Ġ 2 Ċ rotate Ġright Ġ 5 Ġsteps Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 4 Ċ swap Ġletter Ġa Ġwith Ġletter Ġe Ċ rotate Ġbased Ġon Ġposition Ġof Ġletter Ġe Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 1 Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 3 Ċ move Ġposition Ġ 7 Ġto Ġposition Ġ 1 Ċ swap Ġposition Ġ 7 Ġwith Ġposition Ġ 4 """