content: package aima.test.core.unit.learning.inductive;
  
  import java.util.List;
  
  import org.junit.Assert;
  import org.junit.Test;
  
  import aima.core.learning.framework.DataSet;
  import aima.core.learning.framework.DataSetFactory;
  import aima.core.learning.framework.Example;
  import aima.core.learning.inductive.DLTest;
  import aima.core.learning.inductive.DLTestFactory;
  
  /**
   * @author Ravi Mohan
   * 
   */
  public class DLTestTest {
  
  	@Test
  	public void testDecisionList() throws Exception {
  		DataSet ds = DataSetFactory.getRestaurantDataSet();
  		List<DLTest> dlTests = new DLTestFactory()
  				.createDLTestsWithAttributeCount(ds, 1);
  		Assert.assertEquals(26, dlTests.size());
  	}
  
  	@Test
  	public void testDLTestMatchSucceedsWithMatchedExample() throws Exception {
  		DataSet ds = DataSetFactory.getRestaurantDataSet();
  		Example e = ds.getExample(0);
  		DLTest test = new DLTest();
  		test.add("type", "French");
  		Assert.assertTrue(test.matches(e));
  	}
  
  	@Test
  	public void testDLTestMatchFailsOnMismatchedExample() throws Exception {
  		DataSet ds = DataSetFactory.getRestaurantDataSet();
  		Example e = ds.getExample(0);
  		DLTest test = new DLTest();
  		test.add("type", "Thai");
  		Assert.assertFalse(test.matches(e));
  	}
  
  	@Test
  	public void testDLTestMatchesEvenOnMismatchedTargetAttributeValue()
  			throws Exception {
  		DataSet ds = DataSetFactory.getRestaurantDataSet();
  		Example e = ds.getExample(0);
  		DLTest test = new DLTest();
  		test.add("type", "French");
  		Assert.assertTrue(test.matches(e));
  	}
  
  	@Test
  	public void testDLTestReturnsMatchedAndUnmatchedExamplesCorrectly()
  			throws Exception {
  		DataSet ds = DataSetFactory.getRestaurantDataSet();
  		DLTest test = new DLTest();
  		test.add("type", "Burger");
  
  		DataSet matched = test.matchedExamples(ds);
  		Assert.assertEquals(4, matched.size());
  
  		DataSet unmatched = test.unmatchedExamples(ds);
  		Assert.assertEquals(8, unmatched.size());
  	}
  }
  