package Ġme . ish anj oshi . chart _ accessibility _ module Ċ Ċ import Ġorg . apache . commons . math 3 . stat . de scriptive . Descript ive Statistics Ċ import Ġorg . apache . commons . math 3 . stat . regression . Simple Regression Ċ import Ġkotlin . math . abs ĊĊ Ċ class ĠLine Chart Descriptor Ġ{ ĊĊĠĠĠ Ġfun ĠgetDescription ( title : ĠString , Ġx : ĠList < Float >, Ġy : ĠList < Float >, Ġx Unit : ĠString , Ġy Unit : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Double d Ġ= Ġx . map Ġ{ Ġvalue Ġ-> Ġvalue . toDouble () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġy Double d Ġ= Ġy . map Ġ{ Ġvalue Ġ-> Ġvalue . toDouble () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠLinear Ġregression ĊĠĠĠĠĠĠĠ Ġval Ġsimple Regression Ġ= ĠSimple Regression ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġstats Ġ= ĠDes cript ive Statistics () ĊĊĠĠĠĠĠĠĠ Ġx Double d . forEach Indexed Ġ{ Ġindex , Ġd Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Regression . addData ( d , Ġy Double d [ index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats . add Value ( y Double d [ index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtrend Pos Neg Ġ= Ġget Trend Description ( simple Regression . r ) ĊĠĠĠĠĠĠĠ Ġval Ġri se Or Fall Ġ= Ġif Ġ( simple Regression . r Ġ> Ġ 0 ) Ġ" R ise " Ġelse Ġ" Fall " ĊĠĠĠĠĠĠĠ Ġval Ġri se Fall Value Ġ= Ġsimple Regression . slope ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" This Ġis Ġa Ġline Ġchart !! ĠIt Ġhas Ġ${ x . size } Ġentries . ĠThe Ġtrend Ġis Ġ$ trend Pos Neg . ĠThere Ġis Ġan Ġobserved Ġ$ rise Or Fall Ġin Ġthe Ġdata Ġby Ġ${ String . format ("% . 2 f ", rise Fall Value )} Ġevery Ġ$ x Unit " ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Trend Description ( r : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= Ġ 0 . 5 ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ> Ġthreshold Ġ-> Ġ" Positive " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ< Ġ- 1 Ġ* Ġthreshold Ġ-> Ġ" Negative " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabs ( r ) Ġ< Ġthreshold Ġ-> Ġ" Not Ġcalculated Ġfound " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Invalid Ġentry " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }