package org.radargun.stages.cache.background;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
/**
* @author Matej Cimbora
*/
@Test
public class PrivateLogValueTest {
public void testBasicOperations() {
PrivateLogValue value = new PrivateLogValue(0, 0);
assertEquals(value.getThreadId(), 0);
assertEquals(value.getOperationId(0), 0);
// array index out of bounds
// assertEquals(value.getOperationId(1), 0);
assertTrue(value.contains(0));
assertFalse(value.contains(1));
assertTrue(value.size() == 1);
assertFalse(value.equals(new PrivateLogValue(0, 1)));
assertEquals(value, new PrivateLogValue(0, 0));
}
public void testWith() {
PrivateLogValue value = new PrivateLogValue(0, 0);
value = value.with(1);
assertEquals(value.getOperationId(0), 0);
assertEquals(value.getOperationId(1), 1);
value = value.with(2);
assertEquals(value.getOperationId(2), 2);
}
public void testShift() {
PrivateLogValue value = new PrivateLogValue(0, 0);
value = value.shift(0, 1);
assertEquals(value.getOperationId(0), 0);
assertEquals(value.getOperationId(1), 1);
value = value.shift(2, 3);
assertEquals(value.size(), 1);
assertEquals(value.getOperationId(0), 3);
value = value.with(1);
value = value.with(2);
assertEquals(value.size(), 3);
value = value.shift(2, 4);
assertEquals(value.size(), 2);
}
}