packages feed

Yampa-0.9.2: tests/AFRPTestsDer.hs

{- $Id: AFRPTestsDer.hs,v 1.2 2003/11/10 21:28:58 antony Exp $
******************************************************************************
*                                  A F R P                                   *
*                                                                            *
*       Module:         AFRPTestsDer					     *
*       Purpose:        Test cases for derivative			     *
*	Authors:	Antony Courtney and Henrik Nilsson		     *
*                                                                            *
*             Copyright (c) Yale University, 2003                            *
*                                                                            *
******************************************************************************
-}

module AFRPTestsDer (der_tr, der_trs) where

import FRP.Yampa

import AFRPTestsCommon

------------------------------------------------------------------------------
-- Test cases for derivative
------------------------------------------------------------------------------

der_step = 0.001
der_N = 1000

der_t0 :: [Double]
der_t0 = take der_N $	-- First value is always 0
         embed derivative
               (deltaEncode der_step
			    [sin(2 * pi * t) | t <- [0.0, der_step ..]])
{-
-- For stepsize 0.1
der_t0r :: [Double]
der_t0r =
    [ 0.0000,  5.8779,  3.6327, 0.0000, -3.6327,
     -5.8779, -5.8779, -3.6327, 0.0000,  3.6327,
      5.8779,  5.8779,  3.6327, 0.0000, -3.6327,
     -5.8779, -5.8779, -3.6327, 0.0000,  3.6327]
-}

der_t0r :: [Double]
der_t0r = take der_N $ 
          [2 * pi * cos (2 * pi * t) | t <- [0.0, der_step ..]]

-- We're happy if we are in the right ball park.
der_t0_max_diff = (maximum (zipWith (\x y -> abs (x - y))
                                    (tail der_t0)
                                    (tail der_t0r)))

der_trs =
    [ der_t0_max_diff < 0.05
    ]

der_tr = and der_trs