package jetbrains.mps.internal.collections.trove.test; /*Generated by MPS */ import junit.framework.TestCase; import java.util.List; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.baseLanguage.collections.trove.runtime.TByteArrayListDecorator; import gnu.trove.TByteArrayList; import jetbrains.mps.baseLanguage.collections.trove.runtime.TDoubleArrayListDecorator; import gnu.trove.TDoubleArrayList; import jetbrains.mps.baseLanguage.collections.trove.runtime.TFloatArrayListDecorator; import gnu.trove.TFloatArrayList; import jetbrains.mps.baseLanguage.collections.trove.runtime.TIntArrayListDecorator; import gnu.trove.TIntArrayList; import jetbrains.mps.baseLanguage.collections.trove.runtime.TLongArrayListDecorator; import gnu.trove.TLongArrayList; import jetbrains.mps.baseLanguage.collections.trove.runtime.TShortArrayListDecorator; import gnu.trove.TShortArrayList; import junit.framework.Assert; import java.util.ArrayList; import java.lang.management.MemoryMXBean; import java.lang.management.ManagementFactory; public class PrimList_Test extends TestCase { public void test_primLists() throws Exception { List<Byte> lb = ListSequence.fromListAndArray(new TByteArrayListDecorator(new TByteArrayList()), (byte) 13); List<Double> ld = ListSequence.fromList(new TDoubleArrayListDecorator(new TDoubleArrayList())); List<Float> lf = ListSequence.fromList(new TFloatArrayListDecorator(new TFloatArrayList())); List<Integer> li = ListSequence.fromList(new TIntArrayListDecorator(new TIntArrayList())); List<Long> ll = ListSequence.fromList(new TLongArrayListDecorator(new TLongArrayList())); List<Short> ls = ListSequence.fromList(new TShortArrayListDecorator(new TShortArrayList())); Assert.assertNotNull(lb); Assert.assertNotNull(ld); Assert.assertNotNull(lf); Assert.assertNotNull(li); Assert.assertNotNull(ll); Assert.assertNotNull(ls); } public void test_byteList() throws Exception { List<Byte> lb = ListSequence.fromList(new TByteArrayListDecorator(new TByteArrayList())); ListSequence.fromList(lb).addElement((byte) 0); ListSequence.fromList(lb).addElement((byte) -1); ListSequence.fromList(lb).addElement((byte) 256); Assert.assertSame(3, ListSequence.fromList(lb).count()); Assert.assertSame(ListSequence.fromList(lb).getElement(0), ListSequence.fromList(lb).getElement(2)); } public void test_intList() throws Exception { List<Integer> liPrim = ListSequence.fromList(new TIntArrayListDecorator(new TIntArrayList())); List<Integer> liBox = ListSequence.fromList(new ArrayList<Integer>()); long mem1 = this.getUsedMem(); for (int i = 100000; i < 200000; i++) { ListSequence.fromList(liPrim).addElement(i); } long mem2 = this.getUsedMem(); Assert.assertEquals((int) 100000, (int) ListSequence.fromList(liPrim).count()); ListSequence.fromList(liPrim).clear(); long mem3 = this.getUsedMem(); for (int i = 200000; i < 300000; i++) { ListSequence.fromList(liBox).addElement(i); } long mem4 = this.getUsedMem(); Assert.assertTrue(2.5 * (mem2 - mem1) < (mem4 - mem3)); Assert.assertEquals((int) 100000, (int) ListSequence.fromList(liBox).count()); } public PrimList_Test() { } private long getUsedMem() { System.gc(); System.gc(); try { Thread.sleep(1000); } catch (InterruptedException e) { } System.gc(); MemoryMXBean bean = ManagementFactory.getMemoryMXBean(); return bean.getHeapMemoryUsage().getUsed(); } }