package edu.stanford.nlp.sempre.test;
import edu.stanford.nlp.sempre.Formula;
import edu.stanford.nlp.sempre.Formulas;
import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertEquals;
/**
* Test Formulas.
* @author Percy Liang
*/
public class FormulaTest {
private static Formula F(String s) { return Formula.fromString(s); }
@Test
public void simpleFormula() {
assertEquals(F("(f a)"),
Formulas.betaReduction(F("((lambda x (f (var x))) a)")));
// Bound, shouldn't replace x
assertEquals(F("((lambda x (f (var x))) (var y))"),
Formulas.substituteVar(F("((lambda x (f (var x))) (var y))"), "x", F("a")));
// Free, should replace y
assertEquals(F("((lambda x (f (var x))) a)"),
Formulas.substituteVar(F("((lambda x (f (var x))) (var y))"), "y", F("a")));
}
}