| 
							- /*
 -   ZynAddSubFX - a software synthesizer
 - 
 -   ControllerTest.h - CxxTest for Params/Controller
 -   Copyright (C) 2009-2011 Mark McCurry
 -   Author: Mark McCurry
 - 
 -   This program is free software; you can redistribute it and/or modify
 -   it under the terms of version 2 of the GNU General Public License
 -   as published by the Free Software Foundation.
 - 
 -   This program is distributed in the hope that it will be useful,
 -   but WITHOUT ANY WARRANTY; without even the implied warranty of
 -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -   GNU General Public License (version 2 or later) for more details.
 - 
 -   You should have received a copy of the GNU General Public License (version 2)
 -   along with this program; if not, write to the Free Software Foundation,
 -   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 - 
 - */
 - #include <cxxtest/TestSuite.h>
 - #include <iostream>
 - #include "../Params/Controller.h"
 - #include "../globals.h"
 - SYNTH_T *synth;
 - 
 - class ControllerTest:public CxxTest::TestSuite
 - {
 -     public:
 -         void setUp() {
 -             synth   = new SYNTH_T;
 -             testCtl = new Controller();
 -         }
 - 
 -         void tearDown() {
 -             delete testCtl;
 -             delete synth;
 -         }
 - 
 - 
 -         void testPortamentoRange() {
 -             //Initialize portamento
 -             testCtl->setportamento(127);
 -             testCtl->portamento.time = 127;
 -             testCtl->initportamento(40.0f, 400.0f, false);
 -             //Bounds Check
 -             while(testCtl->portamento.used) {
 -                 TS_ASSERT((0.0f <= testCtl->portamento.x)
 -                           && (testCtl->portamento.x <= 1.0f));
 -                 TS_ASSERT((0.1f <= testCtl->portamento.freqrap)
 -                           && (testCtl->portamento.freqrap <= 1.0f));
 -                 testCtl->updateportamento();
 -             }
 -             TS_ASSERT((0.0f <= testCtl->portamento.x)
 -                       && (testCtl->portamento.x <= 1.0f));
 -             TS_ASSERT((0.1f <= testCtl->portamento.freqrap)
 -                       && (testCtl->portamento.freqrap <= 1.0f));
 -         }
 - 
 -         void testPortamentoValue() {
 -             testCtl->setportamento(127);
 -             testCtl->portamento.time = 127;
 -             testCtl->initportamento(40.0f, 400.0f, false);
 -             int i;
 -             for(i = 0; i < 10; ++i)
 -                 testCtl->updateportamento();
 -             //Assert that the numbers are the same as they were at release
 -             TS_ASSERT_DELTA(testCtl->portamento.x, 0.0290249f, 0.000001f)
 -             TS_ASSERT_DELTA(testCtl->portamento.freqrap, 0.126122f, 0.000001f)
 -         }
 - 
 -     private:
 -         Controller *testCtl;
 - };
 
 
  |