All pastes #763432 Raw Edit

TestFormula.java

public java v1 · immutable
·published 2007-11-06 13:33 UTC
rendered paste body
package de.fhro.inf.fp;import de.fhro.inf.fp.UnaryPredicate;import junit.framework.TestCase;import org.apache.log4j.BasicConfigurator;import org.apache.log4j.Category;import org.apache.log4j.Logger;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;public class TestFormula extends TestCase {    private static Category logger = null;    static {        logger = Logger.getLogger(TestFormula.class);        BasicConfigurator.configure();    }    public void testFormula() {        Map pred = new HashMap();        pred.put("a", new Odd());        pred.put("b", new GreaterThan5());        pred.put("c", new LessThan20());        pred.put("d", new Formula("a b AND c NOT OR", pred));        boolean b;        UnaryPredicate f = new Formula("d", pred);        b = f.execute(new Integer(2));        logger.info(new Boolean(b));    // false        assertTrue(!b);        b = f.execute(new Integer(3));        logger.info(new Boolean(b));    // false        assertTrue(!b);        b = f.execute(new Integer(7));        logger.info(new Boolean(b));    // true        assertTrue(b);        b = f.execute(new Integer(20));        logger.info(new Boolean(b));    // true        assertTrue(b);        b = f.execute(new Integer(21));        logger.info(new Boolean(b));    // true        assertTrue(b);    }        public void testFP() {    	ArrayList l = new ArrayList();    	ArrayList l2;    	boolean b;    	// 1, 3, 5    	l.add(new Integer(1));    	l.add(new Integer(3));    	l.add(new Integer(5));    	ArrayList n = (ArrayList) FP.filter(new Odd(), l);    	assertEquals(n, l);    	b = FP.some(new Odd(), l);    	assertTrue(b);    	b = FP.every(new Odd(), l);    	assertTrue(b);    	// 1, 3, 5, 2    	l2 = (ArrayList) l.clone();    	l2.add(new Integer(2));    	n = (ArrayList) FP.filter(new Odd(), l2);    	assertEquals(n, l);    	b = FP.some(new Odd(), l2);    	assertTrue(b);    	b = FP.every(new Odd(), l2);    	assertFalse(b);    	    }}