package org.basex.util;
import static org.junit.Assert.*;
import org.basex.util.hash.*;
import org.basex.util.list.*;
import org.junit.*;
/**
* Token set tests.
*
* @author BaseX Team 2005-17, BSD License
* @author Christian Gruen
*/
public class TokenSetTest {
/** Number of tests. */
private static final int SIZE = 100000;
/** Token list. */
private static final TokenList LIST = new TokenList(SIZE);
/** Token set. */
private final TokenSet set = new TokenSet();
/** Initializes the tests. */
@BeforeClass
public static void init() {
for(int i = 0; i < SIZE; i++) LIST.add(new byte[] {
(byte) (i >>> 24), (byte) (i >> 16), (byte) (i >> 8), (byte) i });
}
/** Initializes a single test. */
@Before
public void initTest() {
for(final byte[] t : LIST) set.add(t);
}
/** Tests added tokens. */
@Test
public void add() {
assertEquals(SIZE, set.size());
for(final byte[] t : LIST) assertTrue("Token is missing.", set.contains(t));
}
/** Tests removed tokens. */
@Test
public void delete() {
for(final byte[] t : LIST) set.delete(t);
for(final byte[] t : LIST) assertFalse("Token exists.", set.contains(t));
}
/** Tests removed tokens. */
@Test
public void addDelete() {
for(final byte[] t : LIST) set.add(t);
for(final byte[] t : LIST) assertTrue("Token is missing.", set.contains(t));
for(final byte[] t : LIST) set.delete(t);
for(final byte[] t : LIST) assertFalse("Token exists.", set.contains(t));
for(final byte[] t : LIST) set.add(t);
for(final byte[] t : LIST) assertTrue("Token is missing.", set.contains(t));
for(final byte[] t : LIST) set.delete(t);
for(final byte[] t : LIST) assertFalse("Token exists.", set.contains(t));
}
}