You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
80 lines
2.5 KiB
9 years ago
|
package net.yacy.search.index;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.IOException;
|
||
|
import java.net.MalformedURLException;
|
||
|
import net.yacy.cora.document.encoding.UTF8;
|
||
|
import net.yacy.cora.document.id.DigestURL;
|
||
|
import net.yacy.cora.document.id.MultiProtocolURL;
|
||
|
import net.yacy.cora.util.ConcurrentLog;
|
||
|
import net.yacy.cora.util.SpaceExceededException;
|
||
|
import net.yacy.crawler.retrieval.Response;
|
||
|
import net.yacy.kelondro.data.word.Word;
|
||
|
import net.yacy.kelondro.data.word.WordReferenceRow;
|
||
|
import net.yacy.kelondro.util.Bitfield;
|
||
|
import org.junit.AfterClass;
|
||
|
import static org.junit.Assert.assertTrue;
|
||
|
import org.junit.BeforeClass;
|
||
|
import org.junit.Test;
|
||
|
|
||
|
public class SegmentTest {
|
||
|
|
||
|
static Segment index;
|
||
|
|
||
|
/**
|
||
|
* Setup RWI index
|
||
|
* @throws IOException
|
||
|
*/
|
||
|
@BeforeClass
|
||
|
public static void setUpClass() throws IOException {
|
||
|
// setup a index segment
|
||
|
index = new Segment(new ConcurrentLog("SegmentTest"),
|
||
|
new File("test/DATA/INDEX/webportal/SEGMENTS"),
|
||
|
new File("test/DATA/INDEX/webportal/ARCHIVE"),
|
||
|
null, null);
|
||
|
|
||
|
// connect RWI index
|
||
|
index.connectRWI(10, 1024);
|
||
|
}
|
||
|
|
||
|
@AfterClass
|
||
|
public static void tearDownClass() {
|
||
|
index.close();
|
||
|
ConcurrentLog.shutdown();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Test of clear method (for RWI), of class Segment.
|
||
|
*/
|
||
|
@Test
|
||
|
public void testClear() throws MalformedURLException, IOException, SpaceExceededException {
|
||
|
DigestURL url = new DigestURL("http://test.org/test.html");
|
||
|
int urlComps = MultiProtocolURL.urlComps(url.toNormalform(true)).length;
|
||
|
int urlLength = url.toNormalform(true).length();
|
||
|
|
||
|
byte[] termHash = Word.word2hash("test");
|
||
|
Word word = new Word(1, 1, 1);
|
||
|
word.flags = new Bitfield(4); // flags must not be null
|
||
|
|
||
|
WordReferenceRow ientry = new WordReferenceRow(
|
||
|
url.hash(), urlLength, urlComps, 0, 1, 1,
|
||
|
System.currentTimeMillis(), System.currentTimeMillis(),
|
||
|
UTF8.getBytes("en"), Response.DT_TEXT, 0, 0);
|
||
|
ientry.setWord(word);
|
||
|
|
||
|
// add a dummy Word and WordReference
|
||
|
index.termIndex.add(termHash, ientry);
|
||
|
|
||
|
// check index count
|
||
|
long cnt = index.RWICount();
|
||
|
assertTrue(cnt > 0);
|
||
|
|
||
|
index.clear();
|
||
|
|
||
|
// check index count after clear
|
||
|
cnt = index.RWICount();
|
||
|
assertTrue(cnt == 0);
|
||
|
}
|
||
|
|
||
|
}
|