001: /*
002: * Copyright 2004-2006 the original author or authors.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.compass.core.test.termfreqs.simple;
018:
019: import org.compass.core.CompassSession;
020: import org.compass.core.CompassTermFreq;
021: import org.compass.core.CompassTermFreqsBuilder;
022: import org.compass.core.CompassTransaction;
023: import org.compass.core.test.AbstractTestCase;
024:
025: /**
026: * @author kimchy
027: */
028: public class SimpleTermFreqsTests extends AbstractTestCase {
029:
030: protected String[] getMappings() {
031: return new String[] { "termfreqs/simple/mapping.cpm.xml" };
032: }
033:
034: public void testNoFreqs() {
035: CompassSession session = openSession();
036: CompassTransaction tr = session.beginTransaction();
037:
038: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
039: new String[] { "value2" }).toTermFreqs();
040: assertEquals(0, termFreqs.length);
041:
042: session.save(new A(1, "test"));
043: termFreqs = session.termFreqsBuilder(new String[] { "value2" })
044: .toTermFreqs();
045: assertEquals(0, termFreqs.length);
046:
047: tr.commit();
048: session.close();
049: }
050:
051: public void testSimpleFreqs() {
052: CompassSession session = openSession();
053: CompassTransaction tr = session.beginTransaction();
054:
055: session.save(new A(1, "bbb"));
056: session.save(new A(2, "aaa"));
057: session.save(new A(3, "bbb"));
058:
059: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
060: new String[] { "value" }).toTermFreqs();
061: assertEquals(2, termFreqs.length);
062: assertEquals("bbb", termFreqs[0].getTerm());
063: assertEquals("value", termFreqs[0].getPropertyName());
064: assertEquals(2, (int) termFreqs[0].getFreq());
065: assertEquals("aaa", termFreqs[1].getTerm());
066: assertEquals(1, (int) termFreqs[1].getFreq());
067: assertEquals("value", termFreqs[1].getPropertyName());
068:
069: tr.commit();
070: session.close();
071: }
072:
073: public void testSimpleFreqsSortTerm() {
074: CompassSession session = openSession();
075: CompassTransaction tr = session.beginTransaction();
076:
077: session.save(new A(1, "bbb"));
078: session.save(new A(2, "aaa"));
079: session.save(new A(3, "bbb"));
080:
081: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
082: new String[] { "value" }).setSort(
083: CompassTermFreqsBuilder.Sort.TERM).toTermFreqs();
084: assertEquals(2, termFreqs.length);
085: assertEquals("aaa", termFreqs[0].getTerm());
086: assertEquals(1, (int) termFreqs[0].getFreq());
087: assertEquals("bbb", termFreqs[1].getTerm());
088: assertEquals(2, (int) termFreqs[1].getFreq());
089:
090: tr.commit();
091: session.close();
092: }
093:
094: public void testSimpleFreqsWithSize() {
095: CompassSession session = openSession();
096: CompassTransaction tr = session.beginTransaction();
097:
098: session.save(new A(1, "test"));
099: session.save(new A(2, "test1"));
100: session.save(new A(3, "test"));
101:
102: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
103: new String[] { "value" }).setSize(1).toTermFreqs();
104: assertEquals(1, termFreqs.length);
105: assertEquals("test", termFreqs[0].getTerm());
106: assertEquals(2, (int) termFreqs[0].getFreq());
107:
108: tr.commit();
109: session.close();
110: }
111:
112: public void testSimpleFreqsWithNormalize() {
113: CompassSession session = openSession();
114: CompassTransaction tr = session.beginTransaction();
115:
116: session.save(new A(1, "test"));
117: session.save(new A(2, "test1"));
118: session.save(new A(3, "test"));
119: session.save(new A(4, "test"));
120: session.save(new A(5, "test"));
121: session.save(new A(6, "test"));
122: session.save(new A(7, "test2"));
123: session.save(new A(8, "test2"));
124:
125: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
126: new String[] { "value" }).normalize(0, 1).toTermFreqs();
127: assertEquals(3, termFreqs.length);
128: assertEquals("test", termFreqs[0].getTerm());
129: assertEquals(1.0, termFreqs[0].getFreq(), 0.001);
130: assertEquals("test2", termFreqs[1].getTerm());
131: assertEquals(0.25, termFreqs[1].getFreq(), 0.001);
132: assertEquals("test1", termFreqs[2].getTerm());
133: assertEquals(0.0, termFreqs[2].getFreq(), 0.001);
134:
135: termFreqs = session.termFreqsBuilder(new String[] { "value" })
136: .normalize(1, 10).toTermFreqs();
137: assertEquals(3, termFreqs.length);
138: assertEquals("test", termFreqs[0].getTerm());
139: assertEquals(10.0, termFreqs[0].getFreq(), 0.001);
140: assertEquals("test2", termFreqs[1].getTerm());
141: assertEquals(3.25, termFreqs[1].getFreq(), 0.001);
142: assertEquals("test1", termFreqs[2].getTerm());
143: assertEquals(1.0, (int) termFreqs[2].getFreq(), 0.001);
144:
145: tr.commit();
146: session.close();
147: }
148:
149: public void testSimpleFreqsWithMultiplePropertyNames() {
150: CompassSession session = openSession();
151: CompassTransaction tr = session.beginTransaction();
152:
153: session.save(new A(1, "test", "name1"));
154: session.save(new A(2, "test1", "name2"));
155: session.save(new A(3, "test", "name2"));
156:
157: CompassTermFreq[] termFreqs = session.termFreqsBuilder(
158: new String[] { "value", "name" }).toTermFreqs();
159: assertEquals(4, termFreqs.length);
160: assertEquals("test", termFreqs[0].getTerm());
161: assertEquals(2, (int) termFreqs[0].getFreq());
162: assertEquals("value", termFreqs[0].getPropertyName());
163: assertEquals("name2", termFreqs[1].getTerm());
164: assertEquals(2, (int) termFreqs[1].getFreq());
165: assertEquals("name", termFreqs[1].getPropertyName());
166: assertEquals("name1", termFreqs[2].getTerm());
167: assertEquals(1, (int) termFreqs[2].getFreq());
168: assertEquals("name", termFreqs[2].getPropertyName());
169: assertEquals("test1", termFreqs[3].getTerm());
170: assertEquals(1, (int) termFreqs[3].getFreq());
171: assertEquals("value", termFreqs[3].getPropertyName());
172:
173: tr.commit();
174: session.close();
175: }
176: }
|