content: package aima.test.core.unit.logic.propositional.kb;
  
  import org.junit.Assert;
  import org.junit.Before;
  import org.junit.Test;
  
  import aima.core.logic.propositional.kb.KnowledgeBase;
  
  /**
   * @author Ravi Mohan
   * 
   */
  public class KnowledgeBaseTest {
  	private KnowledgeBase kb;
  
  	@Before
  	public void setUp() {
  		kb = new KnowledgeBase();
  	}
  
  	@Test
  	public void testTellInsertsSentence() {
  		kb.tell("(A & B)");
  		Assert.assertEquals(1, kb.size());
  	}
  
  	@Test
  	public void testTellDoesNotInsertSameSentenceTwice() {
  		kb.tell("(A & B)");
  		Assert.assertEquals(1, kb.size());
  		kb.tell("(A & B)");
  		Assert.assertEquals(1, kb.size());
  	}
  
  	@Test
  	public void testEmptyKnowledgeBaseIsAnEmptyString() {
  		Assert.assertEquals("", kb.toString());
  	}
  
  	@Test
  	public void testKnowledgeBaseWithOneSentenceToString() {
  		kb.tell("(A & B)");
  		Assert.assertEquals("A & B", kb.toString());
  	}
  
  	@Test
  	public void testKnowledgeBaseWithTwoSentencesToString() {
  		kb.tell("(A & B)");
  		kb.tell("(C & D)");
  		Assert.assertEquals("A & B & C & D", kb.toString());
  	}
  
  	@Test
  	public void testKnowledgeBaseWithThreeSentencesToString() {
  		kb.tell("(A & B)");
  		kb.tell("(C & D)");
  		kb.tell("(E & F)");
  		Assert.assertEquals(
  				"A & B & C & D & E & F",
  				kb.toString());
  	}
  }
  