1 package tests.jfun.parsec; 2 3 import java.util.HashMap ; 4 5 import jfun.parsec.Pair; 6 import jfun.parsec.Parser; 7 import jfun.parsec.Parsers; 8 import jfun.parsec.Tuple3; 9 import jfun.parsec.Tuples; 10 11 import junit.framework.TestCase; 12 13 public class ApiTestCase extends TestCase { 14 public void testPair(){ 15 Pair<Integer , String > p = 16 testParser(Parsers.pair(Parsers.retn(1), Parsers.retn("hello"))); 17 assertEquals(1, p.getValue1().intValue()); 18 assertEquals("hello", p.getValue2()); 19 assertEquals(Tuples.pair(1, "hello"), p); 20 } 21 public void testTuple3(){ 22 Tuple3<Integer , String , Boolean > p = 23 testParser(Parsers.tuple(Parsers.retn(1), Parsers.retn("hello"), Parsers.retn(true))); 24 assertEquals(1, p.getValue1().intValue()); 25 assertEquals("hello", p.getValue2()); 26 assertEquals(true, p.getValue3().booleanValue()); 27 assertEquals(Tuples.tuple(1, "hello", true), p); 28 } 29 public void testTuple4(){ 30 assertEquals(Tuples.tuple(null, null, 1, true), 31 testParser(Parsers.tuple(Parsers.retn(null), Parsers.retn(null), Parsers.retn(1), Parsers.retn(true)))); 32 super.assertFalse(Tuples.tuple("a", null, 1, true).equals( 33 testParser(Parsers.tuple(Parsers.retn(null), Parsers.retn(null), Parsers.retn(1), Parsers.retn(true))))); 34 35 } 36 public void testTuple5(){ 37 assertEquals(Tuples.tuple(null, null, 1, true), 38 testParser(Parsers.tuple(Parsers.retn(null), Parsers.retn(null), Parsers.retn(1), Parsers.retn(true)))); 39 } 40 private static <T> T testParser(Parser<T> p){ 41 T v = Parsers.runParser("", p, "test"); 42 testHash(v); 43 return v; 44 } 45 private static void testHash(Object obj){ 46 HashMap table = new HashMap (); 47 table.put(obj, obj); 48 assertSame(obj, table.get(obj)); 49 } 50 } 51 | Popular Tags |