/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 - 2 0 1 9 . Ġdata 2 viz Ġs Ãł rl . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . data 2 viz . geo . projection Ċ Ċ import Ġio . data 2 viz . math . PI Ċ import Ġio . data 2 viz . math . deg Ċ import Ġio . data 2 viz . test . TestBase Ċ import Ġkotlin . test . Test Ċ Ċ class ĠE quire ct angular Projection Tests Ġ: ĠTest Base () Ġ{ ĊĊĠĠĠĠ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġe quire ct angular _ point _ except ed _ result () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġe quire ct angular Ġ= Ġe quire ct angular Projection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 1 8 0 . 0 , Ġ 0 . 0 , Ġ- PI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 1 8 0 . 0 , Ġ 0 . 0 , ĠPI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 3 0 . 0 , Ġ 0 . 0 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 0 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ 3 0 . 0 , ĠPI Ġ/ Ġ 6 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ- 3 0 . 0 , ĠPI Ġ/ Ġ 6 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ 3 0 . 0 , Ġ- PI Ġ/ Ġ 6 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ- 3 0 . 0 , Ġ- PI Ġ/ Ġ 6 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġe quire ct angular _ rotate _ 3 0 _ 0 _ 0 _ except ed _ result () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġe quire ct angular Ġ= Ġe quire ct angular Projection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotate ( 3 0 . 0 . deg , Ġ 0 . 0 . deg , Ġ 0 . 0 . deg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 0 . 0 , ĠPI Ġ/ Ġ 6 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 5 . 0 Ġ/ Ġ 6 . 0 Ġ* ĠPI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 5 . 0 Ġ/ Ġ 6 . 0 Ġ* ĠPI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 3 0 . 0 , ĠPI Ġ/ Ġ 6 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ- 3 0 . 0 , ĠPI Ġ/ Ġ 6 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ 3 0 . 0 , ĠPI Ġ/ Ġ 3 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ- 3 0 . 0 , ĠPI Ġ/ Ġ 3 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ 3 0 . 0 , Ġ 0 . 0 , Ġ- PI Ġ/ Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 0 , ĠPI Ġ/ Ġ 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġe quire ct angular _ rotate _ 3 0 _ 3 0 _ 0 _ except ed _ result () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġe quire ct angular Ġ= Ġe quire ct angular Projection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotate ( 3 0 . 0 . deg , Ġ 3 0 . 0 . deg , Ġ 0 . 0 . deg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 0 . 0 , ĠĠ 0 . 5 8 8 0 0 2 6 0 3 5 4 7 5 6 7 4 , Ġ- 0 . 4 4 7 8 3 2 3 9 6 9 2 8 9 3 2 4 5 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 2 . 5 5 3 5 9 0 0 5 0 0 4 2 2 2 5 7 , ĠĠ 0 . 4 4 7 8 3 2 3 9 6 9 2 8 9 3 2 4 5 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 2 . 5 5 3 5 9 0 0 5 0 0 4 2 2 2 5 7 , ĠĠ 0 . 4 4 7 8 3 2 3 9 6 9 2 8 9 3 2 4 5 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 3 0 . 0 , ĠĠ 0 . 8 2 5 6 0 7 5 5 6 1 6 4 3 4 8 0 , Ġ- 0 . 9 4 0 7 7 1 1 9 5 1 7 0 5 2 0 8 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 4 4 8 6 4 2 9 6 1 5 6 0 8 4 7 9 , ĠĠ 0 . 0 5 8 0 4 5 2 9 1 3 0 7 7 8 0 4 8 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ 3 0 . 0 , Ġ 1 . 4 0 5 6 4 7 6 4 9 3 8 0 2 6 9 4 , Ġ- 0 . 7 0 6 9 5 1 7 2 7 8 8 7 2 1 7 7 0 ); ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 8 7 6 0 5 8 0 5 0 5 9 8 1 9 3 3 , ĠĠ 0 . 2 1 8 2 3 4 5 1 4 3 6 7 4 5 9 5 5 ); ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ 3 0 . 0 , Ġ 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 , Ġ- 1 . 0 4 7 1 9 7 5 5 1 1 9 6 5 9 7 6 0 ); ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 , ĠĠ 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ); ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġe quire ct angular _ rotate _ 0 _ 0 _ 3 0 _ except ed _ result () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġe quire ct angular Ġ= Ġe quire ct angular Projection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotate ( 0 . 0 . deg , Ġ 0 . 0 . deg , Ġ 3 0 . 0 . deg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 0 . 0 , ĠĠ 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 1 8 0 . 0 , Ġ 0 . 0 , Ġ- PI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 1 8 0 . 0 , Ġ 0 . 0 , ĠPI , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 3 0 . 0 , Ġ Ġ- 0 . 2 8 1 0 3 4 9 0 1 5 0 2 8 1 3 5 , Ġ- 0 . 4 4 7 8 3 2 3 9 6 9 2 8 9 3 2 4 5 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 2 8 1 0 3 4 9 0 1 5 0 2 8 1 3 5 , ĠĠ 0 . 4 4 7 8 3 2 3 9 6 9 2 8 9 3 2 4 5 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ 3 0 . 0 , Ġ 0 . 1 6 5 1 4 8 6 7 7 4 1 4 6 2 6 8 , Ġ- 0 . 7 0 6 9 5 1 7 2 7 8 8 7 2 1 7 6 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 6 9 4 7 3 8 2 7 6 1 9 6 7 0 3 1 , ĠĠ 0 . 2 1 8 2 3 4 5 1 4 3 6 7 4 5 9 6 4 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ 3 0 . 0 , Ġ- 0 . 6 9 4 7 3 8 2 7 6 1 9 6 7 0 3 1 , Ġ- 0 . 2 1 8 2 3 4 5 1 4 3 6 7 4 5 9 6 4 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ- 3 0 . 0 , Ġ- 0 . 1 6 5 1 4 8 6 7 7 4 1 4 6 2 6 8 , ĠĠ 0 . 7 0 6 9 5 1 7 2 7 8 8 7 2 1 7 6 0 ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġe quire ct angular _ rotate _ 3 0 _ 3 0 _ 3 0 _ except ed _ result () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġe quire ct angular Ġ= Ġe quire ct angular Projection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrotate ( 3 0 . 0 . deg , Ġ 3 0 . 0 . deg , Ġ 3 0 . 0 . deg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 0 . 0 , ĠĠ 0 . 2 8 1 0 3 4 9 0 1 5 0 2 8 1 3 5 , Ġ- 0 . 6 7 5 1 3 1 5 3 2 9 3 7 0 3 1 7 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 2 . 8 6 0 5 5 7 7 5 2 0 8 6 9 8 0 0 , ĠĠ 0 . 6 7 5 1 3 1 5 3 2 9 3 7 0 3 1 7 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 1 8 0 . 0 , Ġ 0 . 0 , Ġ- 2 . 8 6 0 5 5 7 7 5 2 0 8 6 9 8 0 0 , ĠĠ 0 . 6 7 5 1 3 1 5 3 2 9 3 7 0 3 1 7 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ 3 0 . 0 , Ġ Ġ- 0 . 0 7 2 4 7 6 0 0 5 9 2 7 0 8 1 6 , Ġ- 1 . 1 5 8 6 5 6 7 7 0 8 6 5 9 7 7 2 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 4 2 2 1 3 5 1 5 5 2 5 6 7 0 5 3 , Ġ- 0 . 1 6 7 0 4 1 6 1 8 6 3 1 3 2 2 5 2 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ 3 0 . 0 , Ġ 1 . 2 0 3 3 7 4 4 2 2 1 7 5 0 9 4 4 , Ġ- 1 . 2 1 5 3 7 5 1 2 5 1 0 4 6 7 3 2 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 8 8 1 1 2 3 5 7 0 1 9 4 4 9 0 5 , Ġ- 0 . 1 8 8 6 1 6 3 8 6 1 7 5 4 0 4 1 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ 3 0 . 0 , Ġ- 0 . 7 1 3 7 2 4 3 7 8 9 4 4 7 6 5 4 , Ġ- 0 . 8 4 8 0 6 2 0 7 8 9 8 1 4 8 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġcheck Project And Invert ( e quire ct angular , Ġ- 3 0 . 0 , Ġ- 3 0 . 0 , Ġ 0 . 0 , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 ) ĊĠĠĠ Ġ} Ċ }