KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > parsec > ApiTestCase


1 package tests.jfun.parsec;
2
3 import java.util.HashMap JavaDoc;
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 JavaDoc, String JavaDoc> 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 JavaDoc, String JavaDoc, Boolean JavaDoc> 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 JavaDoc obj){
46     HashMap JavaDoc table = new HashMap JavaDoc();
47     table.put(obj, obj);
48     assertSame(obj, table.get(obj));
49   }
50 }
51
Popular Tags