package Ġcom . k yle cor ry . sol . math . calcul us Ċ Ċ import Ġcom . k yle cor ry . sol . math . Sol Math Ċ import Ġcom . k yle cor ry . sol . math . Sol Math . cube Ċ import Ġcom . k yle cor ry . sol . math . Sol Math . square Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠCalcul us Service Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġservice Ġ= ĠCalcul us Service () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġderivative 1 Var () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfn 1 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġx Ġ* Ġx Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgrad Fn 1 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġ 2 Ġ* Ġx Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfn 2 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġcube ( x ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgrad Fn 2 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġ 3 Ġ* Ġsquare ( x ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 1 ( 1 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 1 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 2 ( 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 4 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġderivative 2 Var () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfn 1 Ġ= Ġ{ Ġx : ĠDouble , Ġy : ĠDouble Ġ-> Ġx Ġ* Ġx Ġ+ Ġy Ġ* Ġy Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgrad Fn 1 Ġ= Ġ{ Ġx : ĠDouble , Ġy : ĠDouble Ġ-> Ġ 2 Ġ* Ġx Ġto Ġ 2 Ġ* Ġy Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfn 2 Ġ= Ġ{ Ġx : ĠDouble , Ġy : ĠDouble Ġ-> Ġcube ( x ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgrad Fn 2 Ġ= Ġ{ Ġx : ĠDouble , Ġy : ĠDouble Ġ-> Ġ 3 Ġ* Ġsquare ( x ) Ġto Ġ 0 . 0 Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 1 ( 1 . 0 , Ġ 3 . 0 ). first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 1 . 0 , Ġ 3 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 1 ). first , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 1 ( 1 . 0 , Ġ 3 . 0 ). second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 1 . 0 , Ġ 3 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 1 ). second , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 2 ( 4 . 0 , Ġ 3 . 0 ). first , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 4 . 0 , Ġ 3 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 2 ). first , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad Fn 2 ( 4 . 0 , Ġ 3 . 0 ). second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . deriv ative ( 4 . 0 , Ġ 3 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 2 ). second , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġintegral 1 Var (){ ĊĠĠĠĠĠĠĠ Ġval Ġfn 1 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġsquare ( x ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġintegral Fn 1 Ġ= Ġ{ Ġx : ĠDouble Ġ-> Ġcube ( x ) Ġ/ Ġ 3 Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintegral Fn 1 ( 5 . 0 ) Ġ- Ġintegral Fn 1 ( 1 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . integral ( 1 . 0 , Ġ 5 . 0 , Ġstep Ġ= Ġ 0 . 0 0 0 0 0 1 , Ġfn Ġ= Ġfn 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ }