package com.lastcalc.parsers.math; import junit.framework.Assert; import org.jscience.mathematics.number.LargeInteger; import org.junit.Test; import com.lastcalc.SequentialParser; import com.lastcalc.TokenList; import com.lastcalc.parsers.Parser; import com.lastcalc.parsers.Parser.ParseResult; public class FactorialParserTest { @Test public void successfulParseTest(){ final FactorialParser fp = new FactorialParser(); ParseResult pr=fp.parse(TokenList.createD("blah","factorial",LargeInteger.valueOf(3),"blah"),1); Assert.assertTrue("Ensure parse was succcesful", pr.isSuccess()); Assert.assertEquals("Ensure parse result is what it's supposed to be",TokenList.createD("blah",LargeInteger.valueOf(6),"blah"), pr.output); } @Test public void tooBigOrSmallTest(){ final FactorialParser fp = new FactorialParser(); ParseResult pr=fp.parse(TokenList.createD("blah","factorial",LargeInteger.valueOf(-1),"blah"),1); Assert.assertFalse("Ensure parse failed b/c it's a negative num", pr.isSuccess()); ParseResult pr2=fp.parse(TokenList.createD("blah","factorial",LargeInteger.valueOf(20),"blah"),1); Assert.assertFalse("Ensure parse failed b/c it's a too big", pr2.isSuccess()); } public void hookedUpProperly(){ final SequentialParser sp=SequentialParser.create(); TokenList pr=sp.parseNext(TokenList.createD("6","!")); Assert.assertEquals(1,pr.size()); Assert.assertEquals(LargeInteger.valueOf(720), pr.get(0)); } }