Package aima.test.core.unit.logic.fol.inference

Source Code of aima.test.core.unit.logic.fol.inference.FOLModelEliminationTest

package aima.test.core.unit.logic.fol.inference;

import org.junit.Test;

import aima.core.logic.fol.inference.FOLModelElimination;
import aima.test.core.unit.logic.fol.CommonFOLInferenceProcedureTests;

/**
* @author Ciaran O'Reilly
*
*/
public class FOLModelEliminationTest extends CommonFOLInferenceProcedureTests {

  @Test
  public void testDefiniteClauseKBKingsQueryCriminalXFalse() {
    testDefiniteClauseKBKingsQueryCriminalXFalse(new FOLModelElimination());
  }

  @Test
  public void testDefiniteClauseKBKingsQueryRichardEvilFalse() {
    testDefiniteClauseKBKingsQueryRichardEvilFalse(new FOLModelElimination());
  }

  @Test
  public void testDefiniteClauseKBKingsQueryJohnEvilSucceeds() {
    testDefiniteClauseKBKingsQueryJohnEvilSucceeds(new FOLModelElimination());
  }

  @Test
  public void testDefiniteClauseKBKingsQueryEvilXReturnsJohnSucceeds() {
    testDefiniteClauseKBKingsQueryEvilXReturnsJohnSucceeds(new FOLModelElimination());
  }

  @Test
  public void testDefiniteClauseKBKingsQueryKingXReturnsJohnAndRichardSucceeds() {
    testDefiniteClauseKBKingsQueryKingXReturnsJohnAndRichardSucceeds(new FOLModelElimination());
  }

  @Test
  public void testDefiniteClauseKBWeaponsQueryCriminalXReturnsWestSucceeds() {
    testDefiniteClauseKBWeaponsQueryCriminalXReturnsWestSucceeds(new FOLModelElimination());
  }

  @Test
  public void testHornClauseKBRingOfThievesQuerySkisXReturnsNancyRedBertDrew() {
    // This KB ends up being infinite when resolving, however 2
    // seconds is more than enough to extract the 4 answers
    // that are expected
    testHornClauseKBRingOfThievesQuerySkisXReturnsNancyRedBertDrew(new FOLModelElimination(
        2 * 1000));
  }

  @Test
  public void testFullFOLKBLovesAnimalQueryKillsCuriosityTunaSucceeds() {
    testFullFOLKBLovesAnimalQueryKillsCuriosityTunaSucceeds(
        new FOLModelElimination(), false);
  }

  @Test
  public void testFullFOLKBLovesAnimalQueryNotKillsJackTunaSucceeds() {
    testFullFOLKBLovesAnimalQueryNotKillsJackTunaSucceeds(
        new FOLModelElimination(), false);
  }

  @Test
  public void testFullFOLKBLovesAnimalQueryKillsJackTunaFalse() {
    // Note: While the KB expands infinitely, the answer
    // search for this bottoms out indicating the
    // KB does not entail the fact.
    testFullFOLKBLovesAnimalQueryKillsJackTunaFalse(
        new FOLModelElimination(), false);
  }

  @Test
  public void testEqualityAxiomsKBabcAEqualsCSucceeds() {
    testEqualityAxiomsKBabcAEqualsCSucceeds(new FOLModelElimination());
  }

  @Test
  public void testEqualityAndSubstitutionAxiomsKBabcdFFASucceeds() {
    testEqualityAndSubstitutionAxiomsKBabcdFFASucceeds(new FOLModelElimination());
  }

  @Test
  public void testEqualityAndSubstitutionAxiomsKBabcdPDSucceeds() {
    testEqualityAndSubstitutionAxiomsKBabcdPDSucceeds(new FOLModelElimination());
  }

  @Test
  public void testEqualityAndSubstitutionAxiomsKBabcdPFFASucceeds() {
    testEqualityAndSubstitutionAxiomsKBabcdPFFASucceeds(
        new FOLModelElimination(), false);
  }

  @Test
  public void testEqualityNoAxiomsKBabcAEqualsCSucceeds() {
    testEqualityNoAxiomsKBabcAEqualsCSucceeds(new FOLModelElimination(),
        true);
  }

  @Test
  public void testEqualityAndSubstitutionNoAxiomsKBabcdFFASucceeds() {
    testEqualityAndSubstitutionNoAxiomsKBabcdFFASucceeds(
        new FOLModelElimination(), true);
  }

  @Test
  public void testEqualityAndSubstitutionNoAxiomsKBabcdPDSucceeds() {
    testEqualityAndSubstitutionNoAxiomsKBabcdPDSucceeds(
        new FOLModelElimination(), true);
  }

  @Test
  public void testEqualityAndSubstitutionNoAxiomsKBabcdPFFASucceeds() {
    testEqualityAndSubstitutionNoAxiomsKBabcdPFFASucceeds(
        new FOLModelElimination(), true);
  }
}
TOP

Related Classes of aima.test.core.unit.logic.fol.inference.FOLModelEliminationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.