1   /*
2    * ====================================================================
3    * 
4    * The Apache Software License, Version 1.1
5    *
6    * Copyright (c) 2003 Nick Lothian. All rights reserved.
7    *
8    * Redistribution and use in source and binary forms, with or without
9    * modification, are permitted provided that the following conditions
10   * are met:
11   *
12   * 1. Redistributions of source code must retain the above copyright
13   *    notice, this list of conditions and the following disclaimer. 
14   *
15   * 2. Redistributions in binary form must reproduce the above copyright
16   *    notice, this list of conditions and the following disclaimer in
17   *    the documentation and/or other materials provided with the
18   *    distribution.
19   *
20   * 3. The end-user documentation included with the redistribution, if
21   *    any, must include the following acknowlegement:  
22   *       "This product includes software developed by the 
23   *        developers of Classifier4J (http://classifier4j.sf.net/)."
24   *    Alternately, this acknowlegement may appear in the software itself,
25   *    if and wherever such third-party acknowlegements normally appear.
26   *
27   * 4. The name "Classifier4J" must not be used to endorse or promote 
28   *    products derived from this software without prior written 
29   *    permission. For written permission, please contact   
30   *    http://sourceforge.net/users/nicklothian/.
31   *
32   * 5. Products derived from this software may not be called 
33   *    "Classifier4J", nor may "Classifier4J" appear in their names 
34   *    without prior written permission. For written permission, please 
35   *    contact http://sourceforge.net/users/nicklothian/.
36   *
37   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48   * SUCH DAMAGE.
49   * ====================================================================
50   */
51  
52  
53  package net.sf.classifier4J;
54  
55  import junit.framework.TestCase;
56  
57  
58  public class SimpleClassifierTest extends TestCase {
59  
60  	private SimpleClassifier classifier = null;
61  
62  	/***
63  	 * Constructor for SimpleClassifierTest.
64  	 * @param arg0
65  	 */
66  	public SimpleClassifierTest(String arg0) {
67  		super(arg0);
68  	}
69  
70  	/***
71  	 * @see junit.framework.TestCase#setUp()
72  	 */
73  	protected void setUp() throws Exception {		
74  		classifier = new SimpleClassifier();
75  	}
76  
77  	/***
78  	 * @see junit.framework.TestCase#tearDown()
79  	 */
80  	protected void tearDown() throws Exception {
81  		classifier = null;
82  	}
83  
84  
85  	public void testGetSearchWord() {
86  		String word = "java";
87  		classifier.setSearchWord( word );
88  		assertEquals( word, classifier.getSearchWord() );
89  	}
90  
91  	public void testSetSearchWord() {
92  		String word = "java";
93  		classifier.setSearchWord( word );
94  		assertEquals( word, classifier.getSearchWord() );		
95  	}
96  
97  	public void testClassify() {
98  		String word = "java";
99  		classifier.setSearchWord( word );
100 
101 		String sentance = "This is a sentance about java";				
102 		assertEquals( 1d, classifier.classify(sentance), 0d);	
103 		
104 		sentance = "This is not";				
105 		assertEquals( 0d, classifier.classify(sentance), 0d);			
106 	}
107 
108 	public void testMatch() throws Exception {
109 		String word = "java";
110 		classifier.setSearchWord( word );
111 
112 		String sentance = "This is a sentance about java";				
113 		assertTrue( classifier.isMatch(sentance) );
114 		
115 	}
116 	
117 	public void testIsMatchDouble() throws Exception {
118 		assertTrue(classifier.isMatch(IClassifier.DEFAULT_CUTOFF));		
119 		assertTrue(classifier.isMatch(IClassifier.DEFAULT_CUTOFF + 0.01d));
120 		assertFalse(classifier.isMatch(IClassifier.DEFAULT_CUTOFF - 0.01d));
121 	}
122 
123 }