/** * Author: Georg Hofferek <georg.hofferek@iaik.tugraz.at> */ package at.iaik.suraq.test; import org.junit.Assert; import org.junit.Test; import at.iaik.suraq.sexp.SExpression; import at.iaik.suraq.sexp.Token; /** * @author Georg Hofferek <georg.hofferek@iaik.tugraz.at> * */ public class SExpressionTest { /** * Test method for {@link at.iaik.suraq.parser.SExpression#toString()}. */ @Test public void testToString() { SExpression expr = new SExpression(); Token first = Token.generate("first"); Token second = Token.generate("second"); Token third = Token.generate("third"); SExpression secondThird = new SExpression(); secondThird.addChild(second); secondThird.addChild(third); expr.addChild(first); expr.addChild(secondThird); String expected = "(\n first\n (\n second\n third\n )\n)\n"; String actual = expr.toString(); Assert.assertEquals(expected, actual); } /** * Test method for {@link at.iaik.suraq.parser.SExpression#toString()}. */ @Test public void testToStringConstants1() { String expressionString = "(set-logic QF_UF)"; SExpression expr = SExpression.fromString(expressionString); String actual = expr.toString(); Assert.assertEquals(expressionString.replaceAll("\\s", ""), actual.replaceAll("\\s", "")); } /** * Test method for {@link at.iaik.suraq.parser.SExpression#toString()}. */ @Test public void testToStringConstants2() { String expressionString = "(define-fun equiv ((A (Array Value Value))(B (Array Value Value))) Bool ( forall ((i Value)) ( = (select A i) (select B i) )))"; SExpression expr = SExpression.fromString(expressionString); String actual = expr.toString(); Assert.assertEquals(expressionString.replaceAll("\\s", ""), actual.replaceAll("\\s", "")); } /** * Test method for {@link at.iaik.suraq.parser.SExpression#toString()}. */ @Test public void testToStringConstants3() { String expressionString = "(declare-fun REGci_ () (Array Value Value) :no_dependence)"; SExpression expr = SExpression.fromString(expressionString); String actual = expr.toString(); Assert.assertEquals(expressionString.replaceAll("\\s", ""), actual.replaceAll("\\s", "")); } /** * Test method for {@link at.iaik.suraq.parser.SExpression#toString()}. */ @Test public void testToStringConstants4() { String expressionString = "(exit)"; SExpression expr = SExpression.fromString(expressionString); String actual = expr.toString(); Assert.assertEquals(expressionString.replaceAll("\\s", ""), actual.replaceAll("\\s", "")); } /** * Test method for {@link at.iaik.suraq.parser.SExpression#equals()}. */ @Test public void testEquals() { SExpression expr = new SExpression(); Token first = Token.generate("first"); Token second = Token.generate("second"); Token third = Token.generate("third"); SExpression secondThird = new SExpression(); secondThird.addChild(second); secondThird.addChild(third); expr.addChild(first); expr.addChild(secondThird); Assert.assertFalse(second.equals(third)); Assert.assertFalse(third.equals(second)); Assert.assertFalse(first.equals(second)); Assert.assertFalse(expr.equals(secondThird)); Assert.assertTrue(expr.equals(expr.deepCopy())); } }