package Ġit . kr zem in ski . fs yn th . types Ċ Ċ import Ġit . kr zem in ski . fs yn th . square Wave Ċ import Ġit . kr zem in ski . vis assert . assert Function Con forms To Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ /* Ġk tl int - disable Ġno - multi - spaces Ġp aren - spacing Ġ*/ Ċ Ċ class ĠWave form Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġadding Two Wave forms () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwave form 1 Ġ= Ġsquare Wave ( 2 . 0 f ) ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( wave form 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 1 . 0 f , Ġ Ġ" ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwave form 2 Ġ= Ġsquare Wave ( 4 . 0 f ) ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( wave form 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" XXX i ĠĠ Ġi XXX i ĠĠ Ġi XXX i ĠĠ Ġi XXX i ĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 1 . 0 f , Ġ Ġ" ĠĠ Ġi XXX i ĠĠ Ġi XXX i ĠĠ Ġi XXX i ĠĠ Ġi XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġabove Wave forms Added Ġ= Ġwave form 1 Ġ+ Ġwave form 2 ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( above Wave forms Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 2 . 0 f , ĠĠ Ġ" XXX i ĠĠĠĠĠĠĠĠĠĠ Ġi XXX i ĠĠĠĠĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 0 . 0 f , ĠĠ Ġ" ĠĠ Ġi XXXX XXX i ĠĠ Ġi ĠĠ Ġi XXXX XXX i ĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 2 . 0 f , Ġ Ġ" ĠĠĠĠĠĠĠĠĠĠ Ġi XXX i ĠĠĠĠĠĠĠĠĠĠ Ġi XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmultiply ing Wave form By Constant () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwave form Ġ= Ġsquare Wave ( 2 . 0 f ) ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( wave form ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 1 . 0 f , Ġ Ġ" ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġabove Wave form Multip lied Ġ= Ġ 3 . 0 Ġ* Ġwave form ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( above Wave form Multip lied ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 3 . 0 f , ĠĠ Ġ" XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 3 . 0 f , Ġ Ġ" ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmultiply ing Wave form By Bounded Wave form () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwave form Ġ= Ġsquare Wave ( 2 . 0 f ) ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( wave form ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 0 . 0 f , ĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġi ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 1 . 0 f , Ġ Ġ" ĠĠĠĠĠĠ Ġi XXXX XXX i ĠĠĠĠĠĠ Ġi XXXX XXX i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠ 0 . 5 f , ĠĠĠĠĠĠĠĠĠĠĠ 1 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwave form For Bounded Wave form Ġ= Ġ{ Ġx : ĠFloat Ġ-> Ġ- 2 . 0 f Ġ* Ġx Ġ+ Ġ 1 . 0 f Ġ} ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( wave form For Bounded Wave form ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" X ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠII ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠ ĠII ĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠ ĠII ĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠ ĠII ĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠĠ ĠII ĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠĠĠĠ ĠII ĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠĠĠĠĠĠ ĠII Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 0 . 0 f , ĠĠ Ġ" ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbounded Wave form Ġ= ĠBo unded Wave form ( wave form For Bounded Wave form , Ġ 0 . 5 f ) ĊĊĠĠĠĠĠĠĠ Ġval Ġabove Wave form Multip lied By Bounded Wave form Ġ= Ġwave form Ġ* Ġbounded Wave form ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 . 5 f , Ġabove Wave form Multip lied By Bounded Wave form . duration ) ĊĠĠĠĠĠĠĠ Ġassert Function Con forms To ( above Wave form Multip lied By Bounded Wave form . wave form ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 . 0 f , ĠĠ Ġ" XI ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" Ġ ĠI III ĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ ĠII i ĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġi ĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 0 . 0 f , ĠĠ Ġ" ĠĠĠĠĠĠĠ Ġi ĠĠĠĠ ĠIX ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġi ĠI III Ġ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġi I ĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( ĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (- 1 . 0 f , Ġ Ġ" ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkers ("| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ( Ġ 0 . 0 f , ĠĠĠĠĠĠĠĠĠĠ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* Ġk tl int - disable Ġno - multi - spaces Ġp aren - spacing Ġ*/ Ċ