package Ġcom . github . recognized . scre enc ast . editor . lang . script . psi Ċ Ċ import Ġcom . github . recognized . scre enc ast . editor . create Kt File Ċ import Ġcom . intellij . test Framework . fixtures . Light Code Insight Fixture TestCase Ċ import Ġorg . junit . Test Ċ Ċ class ĠRaw Tree Test Ġ: ĠLight Code Insight Fixture TestCase () Ġ{ ĊĊĠ Ġprivate Ġfun ĠCode Block Builder . create Something () Ġ{ ĊĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠ Ġstatement (" statement 1 ()", Ġ 2 0 0 ) ĊĠĠĠĠĠ Ġstatement (" statement 2 ()", Ġ 3 0 0 ) ĊĠĠĠĠĠ Ġblock (" block 3 ", Ġ 4 0 0 .. 6 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" statement 4 ", Ġ 5 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠĠĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġplain Ġtree Ġbuilding `() Ġ{ ĊĠĠĠ Ġval Ġmodel Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" statement 1 ()", Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" statement 2 ()", Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġblock (" block 3 ", Ġ 4 0 0 .. 6 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstatement (" statement 4 ", Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġresult Ġ= Ġ""" ĊĠĠĠĠĠĠ 0 : ĠOffset ( 1 0 0 ) ĊĠĠĠĠĠĠ 1 .. 1 2 : ĠCode (' ide Frame ') ĊĠĠĠĠĠĠ 2 : ĠOffset ( 2 0 0 ) ĊĠĠĠĠĠĠ 3 : ĠCode (' statement 1 () ') ĊĠĠĠĠĠĠ 4 : ĠOffset ( 3 0 0 ) ĊĠĠĠĠĠĠ 5 : ĠCode (' statement 2 () ') ĊĠĠĠĠĠĠ 6 : ĠOffset ( 4 0 0 ) ĊĠĠĠĠĠĠ 7 .. 1 0 : ĠCode (' block 3 ') ĊĠĠĠĠĠĠ 8 : ĠOffset ( 5 0 0 ) ĊĠĠĠĠĠĠ 9 : ĠCode (' statement 4 ') ĊĠĠĠĠĠĠ 1 1 : ĠOffset ( 6 0 0 ) ĊĠĠĠĠĠĠ 1 3 : ĠOffset ( 1 0 0 0 ) ĊĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ ĠassertEquals ( result , ĠRaw TreeNode . build Plain Tree ( model . create Editable Tree ()). join ToString ("\ n ")) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġtree Ġinsertion Ġtransformation `() Ġ{ ĊĠĠĠ Ġval Ġtext Ġ= Ġ""" ĊĠĠĠĠĠ Ġide Frame Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement 1 () ĊĠĠĠĠĠĠĠ Ġstatement 2 () ĊĠĠĠĠĠĠĠ Ġstatement 3 () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġval Ġcode Model Before Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" statement 2 ()", Ġ 3 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" statement 1 ()", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" statement 2 ()", Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" statement 3 ()", Ġ 6 5 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcode Model Before . assert Trans formed ( expected Model , Ġtext ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġtree Ġswap Ġlines Ġtransformation `() Ġ{ ĊĠĠĠ Ġval Ġtext Ġ= Ġ""" ĊĠĠĠĠĠ Ġide Frame Ġ{ ĊĠĠĠĠĠĠĠ ĠA AA ĊĠĠĠĠĠĠĠ ĠB BBBB ĊĠĠĠĠĠĠĠ ĠC CCCC CC ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġval Ġcode Model Before Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" AAA ", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" CCCC CCC ", Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" BB BBB ", Ġ 6 5 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" AAA ", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" BB BBB ", Ġ 6 5 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" CCCC CCC ", Ġ 8 2 5 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcode Model Before . assert Trans formed ( expected Model , Ġtext ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġdeletion `() Ġ{ ĊĠĠĠ Ġval Ġtext Ġ= Ġ""" ĊĠĠĠĠĠ Ġide Frame Ġ{ ĊĠĠĠĠĠĠĠ ĠA AA ĊĠĠĠĠĠĠĠ ĠC CCCC CC ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġval Ġcode Model Before Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" AAA ", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġblock (" block ", Ġ 2 0 0 .. 4 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstatement (" hello ", Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstatement (" CCCC CCC ", Ġ 6 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" ide Frame ", Ġ 1 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" AAA ", Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġstatement (" CCCC CCC ", Ġ 6 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcode Model Before . assert Trans formed ( expected Model , Ġtext ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġwhole Ġtext Ġshift `() Ġ{ ĊĠĠĠ Ġval Ġmodel Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġcreate Something () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġstatement (" hello ", Ġ 0 ) ĊĠĠĠĠĠ Ġcreate Something () ĊĠĠĠ Ġ} ĊĠĠĠ Ġmodel . assert Trans formed ( expected ) ĊĠ Ġ} ĊĊĠ Ġfun Ġ` test Ġpaste Ġblock Ġof Ġcode `() Ġ{ ĊĠĠĠ Ġval Ġstart Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" big Block ", Ġ 0 .. 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Something () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" big Block ", Ġ 0 .. 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Something () ĊĠĠĠĠĠĠĠ Ġblock (" another Block ", Ġ 1 0 0 0 .. 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstatement (" click 1 ()", Ġ 1 3 3 3 ) ĊĠĠĠĠĠĠĠĠĠ Ġstatement (" click 2 ()", Ġ 1 6 6 6 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġstart Model . assert Trans formed ( expected Model ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġblock Ġexpansion `() Ġ{ ĊĠĠĠ Ġval Ġstart Model Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" frame ", Ġ 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstatement (" empty ", Ġ 3 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexpected Ġ= Ġcode Model Ġ{ ĊĠĠĠĠĠ Ġblock (" frame ", Ġ 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock (" empty ", Ġ 3 0 0 .. 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġstart Model . assert Trans formed ( expected ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠCode Model . assert Trans formed ( ĊĠĠĠ Ġexpected : ĠCode Model , ĊĠĠĠ Ġtext : ĠString Ġ= Ġexpected . createText Without Offsets (). text ĊĠ Ġ) Ġ{ ĊĠĠĠ ĠassertEquals ( expected , Ġthis . transformed By Script ( create Kt File ( text ))) ĊĠ Ġ} Ċ }