1 package org.hanseltest.stack; 2 3 4 import junit.framework.Test; 5 import junit.framework.TestCase; 6 7 import org.hansel.CoverageDecorator; 8 import org.hansel.stack.BinaryOperatorEntry; 9 import org.hansel.stack.HanselValue; 10 import org.hansel.stack.OperatorEntry; 11 12 16 public class BinaryOperatorEntryTest extends TestCase { 17 18 22 public BinaryOperatorEntryTest(String name) { 23 super(name); 24 } 25 26 35 private HanselValue getOperatorEntry(String operator, 36 int precedence, 37 String arg1, 38 String arg2) { 39 HanselValue se1 = new HanselValue(arg1, false, 1); 40 HanselValue se2 = new HanselValue(arg2, false, 1); 41 42 return new BinaryOperatorEntry(operator, precedence, se1, se2); 43 } 44 45 48 public void testSimple() { 49 assertEquals("arg1 + arg2", 50 getOperatorEntry("+", 3, 51 "arg1", "arg2").toString()); 52 } 53 54 55 public void testGetOperator() { 56 HanselValue se1 = new HanselValue("arg1", false, 1); 57 HanselValue se2 = new HanselValue("arg2", false, 1); 58 BinaryOperatorEntry boe = new BinaryOperatorEntry("+", 3, se1, se2); 59 60 assertSame(se1, boe.getOperator1()); 61 assertSame(se2, boe.getOperator2()); 62 } 63 64 65 public void testCompress() { 66 HanselValue se1 = new HanselValue("arg1", false, 1); 67 HanselValue se2 = new HanselValue("arg2", false, 1); 68 BinaryOperatorEntry boe = new BinaryOperatorEntry("+", 3, se1, se2); 69 70 assertSame(boe, boe.compress()); 71 } 72 73 76 public void testPrecedence1() { 77 HanselValue entry1 = new HanselValue("arg1", false, 1); 78 HanselValue entry2 = getOperatorEntry("*", 2, 79 "arg2", "arg3"); 80 assertEquals("arg1 + arg2 * arg3", 81 new BinaryOperatorEntry("+", 3, 82 entry1, entry2).toString()); 83 } 84 85 88 public void testPrecedence2() { 89 HanselValue entry1 = new HanselValue("arg1", false, 1); 90 HanselValue entry2 = getOperatorEntry("+", 3, 91 "arg2", "arg3"); 92 assertEquals("arg1 * (arg2 + arg3)", 93 new BinaryOperatorEntry("*", 2, 94 entry1, entry2).toString()); 95 } 96 97 100 public void testPrecedence3() { 101 HanselValue entry1 = new HanselValue("arg1", false, 1); 102 HanselValue entry2 = getOperatorEntry("+", 3, 103 "arg2", "arg3"); 104 assertEquals("arg1 + arg2 + arg3", 105 new BinaryOperatorEntry("+", 3, 106 entry1, entry2).toString()); 107 } 108 109 112 public void testPrecedence4() { 113 HanselValue entry1 = getOperatorEntry("+", 3, 114 "arg1", "arg2"); 115 HanselValue entry2 = getOperatorEntry("+", 3, 116 "arg3", "arg4"); 117 assertEquals("(arg1 + arg2) * (arg3 + arg4)", 118 new BinaryOperatorEntry("*", 2, 119 entry1, entry2).toString()); 120 } 121 122 126 public static Test suite() { 127 return new CoverageDecorator(BinaryOperatorEntryTest.class, 128 new Class [] {OperatorEntry.class, 129 BinaryOperatorEntry.class}); 130 } 131 } 132
| Popular Tags
|