You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
package cn.nextop.gadget.fma;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.junit.Assert;
import org.junit.Test;
import com.yahoo.oak.OakMap;
import com.yahoo.oak.OakMapBuilder;
import com.yahoo.oak.common.integer.OakIntComparator;
import com.yahoo.oak.common.integer.OakIntSerializer;
import com.yahoo.oak.common.string.OakStringSerializer;
import io.netty.util.internal.ThreadLocalRandom;
/**
*
* @author Jingqi Xu
*/
public class XOakMapTest {
/**
*
*/
@Test
public void test1() {
//
final int size = 1024;
final Random random = ThreadLocalRandom.current();
final OakMap<Integer, String> m1 = oakmap3(size);
final Map<Integer, String> m2 = new HashMap<>(size);
//
for(int i = 0; i < 100000; i++) {
final int k = random.nextInt(size);
final String v = String.valueOf(k);
switch (random.nextInt(12)) {
case 0:
Assert.assertEquals(m2.get(k), m1.get(k)); break;
case 2:
final String w2 = m2.put (k, v);
Assert.assertEquals (w2, m1.put(k, v));
Assert.assertEquals(m2.size(), m1.size()); break;
case 3:
m2.put(k, v); m1.zc().put(k, v);
Assert.assertEquals(m2.size(), m1.size()); break;
case 4:
final String w4 = m2.putIfAbsent(k, v);
assertEquals(w4, m1.putIfAbsent(k, v));
Assert.assertEquals(m2.size(), m1.size()); break;
case 5:
boolean w5 = m2.putIfAbsent(k, v) == null;
assertEquals(w5, m1.zc().putIfAbsent(k, v));
Assert.assertEquals(m2.size(), m1.size()); break;
case 6:
final String w6 = m2.remove(k);
Assert.assertEquals (w6, m1.remove(k));
Assert.assertEquals(m2.size(), m1.size()); break;
case 7:
final boolean w7 = m2.remove(k) != null;
Assert.assertEquals(w7, m1.zc().remove(k));
Assert.assertEquals(m2.size(), m1.size()); break;
case 8:
final String w8 = m1.replace(k, v);
assertEquals(w8, m2.replace(k, v));
Assert.assertEquals(m2.size(), m1.size()); break;
}
}
m1.close();
}
private static OakMap<Integer, String> oakmap3(int n) {
final int block = 1024 * 1024;
final OakMapBuilder<Integer, String> builder;
final OakIntComparator c = new OakIntComparator();
final OakIntSerializer ks = new OakIntSerializer();
final OakStringSerializer vs = new OakStringSerializer();
builder = new OakMapBuilder<>(c, ks, vs, Integer.MIN_VALUE);
return builder.setPreferredBlockSize(block).build();
}
}
exception stack
java.lang.AssertionError
at com.yahoo.oak.ValueUtilsImpl.lockWrite(ValueUtilsImpl.java:249)
at com.yahoo.oak.ValueUtilsImpl.exchange(ValueUtilsImpl.java:156)
at com.yahoo.oak.InternalOakMap.replace(InternalOakMap.java:939)
at com.yahoo.oak.OakMap.replace(OakMap.java:230)
at cn.nextop.gadget.fma.XOakMapTest.test1(XOakMapTest.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
The text was updated successfully, but these errors were encountered:
java version
oak version
reproduce code
exception stack
The text was updated successfully, but these errors were encountered: