package com.moseph.mra.test;
import com.moseph.mra.*;
import junit.framework.TestCase;
public class CurveContainerTest extends TestCase
{
CurveContainer c = new CurveContainer( 1.0 );
CurveContainer d = new CurveContainer( 1.0 );
CurveContainer e = new CurveContainer( 1.0 );
CurveContainer f = new CurveContainer( 1.0 );
CurveContainer g = new CurveContainer( 1.0 );
Curve linear = new Curve( 0.0, 1.0, 0.0, 1.0 );
Curve halfXPlus1 = new Curve( 0.0, 1.0, 1.0, 1.5 );
Curve linearOffset = new Curve( 1.0, 2.0, 0.0, 1.0 );
public void setUp()
{
c.addEvent( linear );
d.addEvent( halfXPlus1 );
e.addEvent( linear );
e.addEvent( halfXPlus1 );
f.addEvent( linearOffset );
g.addEvent( linear );
g.addEvent( linear.clone() );
}
public void testBasic()
{
assertEquals( 0.0, c.sample( 0.0 ));
assertEquals( 0.5, c.sample( 0.5 ));
assertEquals( 1.0, c.sample( 1.0 ));
assertEquals( 1.0, d.sample( 0.0 ));
assertEquals( 1.25, d.sample( 0.5 ));
assertEquals( 1.5, d.sample( 1.0 ));
}
public void testAdditive()
{
assertEquals( 1.0, e.sample( 0.0 ));
assertEquals( 1.75, e.sample( 0.5 ));
assertEquals( 2.5, e.sample( 1.0 ));
assertEquals( 0.0, g.sample( 0.0 ));
assertEquals( 1.0, g.sample( 0.5 ));
assertEquals( 2.0, g.sample( 1.0 ));
}
public void testRanges()
{
assertEquals( 0.0, f.sample( 0.0 ));
assertEquals( 0.0, f.sample( 0.5 ));
assertEquals( 0.0, f.sample( 1.0 ));
assertEquals( 0.5, f.sample( 1.5 ));
assertEquals( 1.0, f.sample( 2.0 ));
assertEquals( 0.0, f.sample( 2.5 ));
}
}