/** */ package jp.ac.fit.asura.nao.misc; import junit.framework.TestCase; /** * @author $Author: sey $ * * @version $Id: $ * */ public class IntegralFilterTest extends TestCase { public void testEval() { IntegralFilter.Float f = new IntegralFilter.Float(); // f(x) = 5x, F(x) = 5*2*x^2 // assertTrue(Float.isNaN(f.eval(0))); // assertTrue(Float.isNaN(f.eval(5*1))); // assertTrue(Float.isNaN(f.eval(5*2))); // assertEquals(5.0f/2*0*0, f.eval(5*0), 0.0001f); assertEquals(5.0f / 2 * 0 * 0, f.eval(5 * 0), 0.0001f); assertEquals(5.0f / 2 * 1 * 1, f.eval(5 * 1), 0.0001f); // f.eval(5*1); assertEquals(5.0f / 2 * 2 * 2, f.eval(5 * 2), 0.0001f); assertEquals(5.0f / 2 * 3 * 3, f.eval(5 * 3), 0.0001f); // f.eval(5*3); assertEquals(5.0f / 2 * 4 * 4, f.eval(5 * 4), 0.0001f); f.clear(); // f(x) = -3x, F(x) = -3*2*x^2 // f.eval(-3*0); // f.eval(-3*1); // f.eval(-3*2); assertEquals(-3.0f * 0 * 0 / 2, f.eval(-3 * 0), 0.0001f); assertEquals(-3.0f * 1 * 1 / 2, f.eval(-3 * 1), 0.0001f); assertEquals(-3.0f * 2 * 2 / 2, f.eval(-3 * 2), 0.0001f); assertEquals(-3.0f * 3 * 3 / 2, f.eval(-3 * 3), 0.0001f); f.clear(); // f(x) = e^x, F(x) = e^x f.eval((float) Math.exp(0)); f.eval((float) Math.exp(1)); f.eval((float) Math.exp(2)); f.eval((float) Math.exp(3)); // assertEquals(Math.exp(2), f.eval((float) Math.exp(2)), 0.0001f); // assertEquals(Math.exp(3), f.eval((float) Math.exp(3)), 0.0001f); assertEquals(Math.exp(4), f.eval((float) Math.exp(4)), 10); assertEquals(Math.exp(5), f.eval((float) Math.exp(5)), 10); assertEquals(Math.exp(6), f.eval((float) Math.exp(6)), 10); f.clear(); // f(x) = 3x^2, F(x) = 3/3*x^3 // assertEquals(-1 * -1 * -1, f.eval(3 * -1 * -1), 0.0001f); f.eval(0); // assertEquals(0 * 0 * 0, f.eval(3 * 0 * 0), 0.0001f); f.eval(3 * 1 * 1); // assertEquals(1 * 1 * 1, f.eval(3 * 1 * 1), 0.0001f); assertEquals(2 * 2 * 2, f.eval(3 * 2 * 2), 0.01f); assertEquals(3 * 3 * 3, f.eval(3 * 3 * 3), 1.0f); assertEquals(4 * 4 * 4, f.eval(3 * 4 * 4), 0.01f); } }