/* Copyright 2009 by the Oxford University Computing Laboratory This file is part of HermiT. HermiT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. HermiT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with HermiT. If not, see <http://www.gnu.org/licenses/>. */ package org.semanticweb.HermiT.owl_wg_tests; import java.io.File; import org.semanticweb.HermiT.EntailmentChecker; import org.semanticweb.owlapi.model.OWLOntology; import java.util.Collection; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.junit.runner.RunWith; import org.junit.Test; import org.junit.Before; import org.junit.After; @RunWith(Parameterized.class) public class EntailmentTest extends AbstractTest { protected final boolean m_positive; protected OWLOntology m_conclusionOntology; public EntailmentTest(WGTestDescriptor wgTestDescriptor,boolean positive,File dumpTestDataDirectory,boolean useDisjunctionLearning) { super(wgTestDescriptor.identifier+(positive ? "-entailment" : "-nonentailment"),wgTestDescriptor,dumpTestDataDirectory,useDisjunctionLearning); m_positive=positive; } protected void setUp() throws Exception { super.setUp(); m_conclusionOntology=m_wgTestDescriptor.getConclusionOntology(m_ontologyManager,m_positive); } protected void tearDown() { super.tearDown(); m_conclusionOntology=null; } protected void doTest() throws Exception { EntailmentChecker checker=new EntailmentChecker(m_reasoner,m_ontologyManager.getOWLDataFactory()); boolean isEntailed=checker.entails(m_conclusionOntology.getLogicalAxioms()); if (m_positive) assertTrue("Axioms should be entailed.",isEntailed); else assertTrue("At least one axiom should not be entailed by the premise ontology.",!isEntailed); } protected void dumpTestData() throws Exception { super.dumpTestData(); if (m_dumpTestDataDirectory!=null) saveOntology(m_ontologyManager,m_conclusionOntology,new File(m_dumpTestDataDirectory,m_positive ? "conclusion.owl" : "nonconclusion.owl")); } // junit 4 stuff... @Test public void test() throws Throwable{ runTest(); } @Before public void before() throws Exception{ setUp(); } @After public void after() throws Exception{ tearDown(); } @Parameters public static Collection<Object[]> params() throws Exception{ return TstDescriptorForMaven.getEntailmentTestParams(); } }