package Ġcom . ag og . math display ; Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . test . Instrumentation Registry Ċ import Ġandroid . support . test . runner . Android JUnit 4 Ċ import Ġcom . ag og . math display . parse .* Ċ import Ġcom . ag og . math display . render .* Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . Before ; Ċ import Ġorg . junit . Assert .* Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . os . Environment Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ import Ġandroid . support . test . rule . Grant Permission Rule Ċ import Ġorg . junit . Rule Ċ import Ġcom . ag og . math display . MT Math View . MT Text Alignment ĊĊ Ċ /** Ċ Ġ* ĠExample Ġlocal Ġunit Ġtest , Ġwhich Ġwill Ġexecute Ġon Ġthe Ġdevelopment Ġmachine Ġ( host ). Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" http :// d . android . com / tools / testing "> Testing Ġdocumentation </ a > Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ public Ġclass ĠView Instrument ed Test Ġ{ ĊĠĠĠ Ġval ĠTEST VIEW WIDTH Ġ= Ġ 6 4 0 ĊĠĠĠ Ġval ĠTEST VIEW HEIGHT Ġ= Ġ 2 4 0 ĊĠĠĠ Ġval ĠTEST LAT EX Ġ= Ġ" x Ġ= Ġ\\ frac {- b Ġ\\ pm Ġ\\ sqrt { b ^ 2 - 4 ac }} { 2 a }" ĊĊĠĠĠ Ġ// val ĠTEST VIEW HEIGHT Ġ= Ġ 1 0 0 ĊĠĠĠ Ġ// val ĠTEST LAT EX Ġ= Ġ Ġ" x Ġ= Ġ 5 Gg " ĊĊĊĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfont : ĠMT Font ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcanvas : ĠCanvas ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Runtime Permission Write Rule Ġ= ĠGrant Permission Rule . grant ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġm Runtime Permission Read Rule Ġ= ĠGrant Permission Rule . grant ( Manifest . permission . READ _ EXTERNAL _ STORAGE ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= ĠInstrument ation Registry . getContext (); ĊĠĠĠĠĠĠĠ ĠassertNotNull ( context ) ĊĠĠĠĠĠĠĠ ĠMT Font Manager . set Context ( context !! ) ĊĠĠĠĠĠĠĠ Ġfont Ġ= ĠMT Font Manager . default Font () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Canvas ( w : ĠInt , Ġh : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbitmap Ġ= ĠBitmap . create Bitmap ( w , Ġh , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( bitmap ) ĊĠĠĠĠĠĠĠ Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( canvas ) ĊĠĠĠĠĠĠĠ Ġ// canvas !!. translate ( 0 . 0 f , ĠBIT MAP HEIGHT . toFloat ()) ĊĠĠĠĠĠĠĠ Ġ// canvas !!. scale ( 1 . 0 f , Ġ- 1 . 0 f ) ĊĊĠĠĠĠĠĠĠ Ġ// canvas !!. translate ( 1 0 0 . 0 f , Ġ 1 0 0 . 0 f ) Ġ// Ġfor Ġnow ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġsave bitmap ( filename : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertNotNull ( context ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( bitmap ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠEnvironment . get External Storage Public Directory ( Environment . DIRECTORY _ DOWNLOAD S ). getAbsolutePath () Ġ+ Ġ"/" Ġ+ Ġfilename ĊĊĠĠĠĠĠĠĠ ĠFileOutputStream ( path ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap !!. compress ( Bitmap . Compress Format . PNG , Ġ 1 0 0 , Ġit ) Ġ// Ġbmp Ġis Ġyour ĠBitmap Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPNG Ġis Ġa Ġloss less Ġformat , Ġthe Ġcompression Ġfactor Ġ( 1 0 0 ) Ġis Ġignored ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit !!. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest MT Math View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= ĠTEST LAT EX ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Error None , Ġmath View . last Error . error code ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . measure ( 0 , Ġ 0 ); ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġmath View . get Measured Width () ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġmath View . get Measured Height () ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , Ġw , Ġh ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( w , Ġh ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test MT Math View . png ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Inline Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġ""" \ not ac ommand """ ĊĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= Ġl ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġmath View . last Error ĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Invalid Command , Ġe . error code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Invalid Ġcommand Ġnot ac ommand ", Ġe . error desc ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . measure ( 0 , Ġ 0 ); ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġmath View . get Measured Width () ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġmath View . get Measured Height () ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , Ġw , Ġh ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( w , Ġh ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test Inline Error . png ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Not Inline Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġ""" \ not ac ommand """ ĊĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . display Error Inline Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= Ġl ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġmath View . last Error ĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Invalid Command , Ġe . error code ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Invalid Ġcommand Ġnot ac ommand ", Ġe . error desc ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . measure ( 0 , Ġ 0 ); ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġmath View . get Measured Width () ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġmath View . get Measured Height () ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , Ġw , Ġh ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( w , Ġh ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test Not Inline Error . png ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Left Align () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= ĠTEST LAT EX ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Error None , Ġmath View . last Error . error code ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , ĠTEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( TEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test Left Align . png ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Center Align () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= ĠTEST LAT EX ĊĠĠĠĠĠĠĠ Ġmath View . text Alignment Ġ= ĠMT Text Alignment . K MT Text Alignment Center ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Error None , Ġmath View . last Error . error code ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , ĠTEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( TEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test Center Align . png ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Right Align () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmath View Ġ= ĠMT Math View ( context !! ) ĊĠĠĠĠĠĠĠ Ġmath View . fontSize Ġ= Ġ 6 0 f ĊĠĠĠĠĠĠĠ Ġmath View . latex Ġ= ĠTEST LAT EX ĊĠĠĠĠĠĠĠ Ġmath View . text Alignment Ġ= ĠMT Text Alignment . K MT Text Alignment Right ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( MT Parse Errors . Error None , Ġmath View . last Error . error code ) ĊĠĠĠĠĠĠĠ Ġ// Cause Ġthe Ġview Ġto Ġre - layout ĊĠĠĠĠĠĠĠ Ġmath View . layout ( 0 , Ġ 0 , ĠTEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġget Canvas ( TEST VIEW WIDTH , ĠTEST VIEW HEIGHT ) ĊĠĠĠĠĠĠĠ Ġmath View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġsave bitmap (" test Right Align . png ") ĊĠĠĠ Ġ} ĊĊĊĊĊ Ċ } ĊĊĊ