private DebugLocalsChange createLocalsChange( Int2ReferenceMap<DebugLocalInfo> ending, Int2ReferenceMap<DebugLocalInfo> starting) { if (ending.isEmpty() && starting.isEmpty()) { return null; } if (ending.isEmpty() || starting.isEmpty()) { return new DebugLocalsChange(ending, starting); } IntSet unneeded = new IntArraySet(Math.min(ending.size(), starting.size())); for (Entry<DebugLocalInfo> entry : ending.int2ReferenceEntrySet()) { if (starting.get(entry.getIntKey()) == entry.getValue()) { unneeded.add(entry.getIntKey()); } } if (unneeded.size() == ending.size() && unneeded.size() == starting.size()) { return null; } IntIterator iterator = unneeded.iterator(); while (iterator.hasNext()) { int key = iterator.nextInt(); ending.remove(key); starting.remove(key); } return new DebugLocalsChange(ending, starting); }
@Test public void testSerialisation() throws IOException, ClassNotFoundException { IntArraySet s = new IntArraySet(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream( baos ); oos.writeObject( s ); oos.close(); assertEquals( s, BinIO.loadObject( new ByteArrayInputStream( baos.toByteArray() ) ) ); s.add( 0 ); s.add( 1 ); baos.reset(); oos = new ObjectOutputStream( baos ); oos.writeObject( s ); oos.close(); assertEquals( s, BinIO.loadObject( new ByteArrayInputStream( baos.toByteArray() ) ) ); }
@Test public void testSet() { for( int i = 1; i <= 1; i++ ) { final IntArraySet s = i == 0 ? new IntArraySet() : new IntArraySet( new int[ i ] ); assertTrue( s.add( 1 ) ); assertEquals( 1 + i, s.size() ); assertTrue( s.contains( 1 ) ); assertTrue( s.add( 2 ) ); assertTrue( s.contains( 2 ) ); assertEquals( 2 + i, s.size() ); assertFalse( s.add( 1 ) ); assertFalse( s.remove( 3 ) ); assertTrue( s.add( 3 ) ); assertEquals( 3 + i, s.size() ); assertTrue( s.contains( 1 ) ); assertTrue( s.contains( 2 ) ); assertTrue( s.contains( 2 ) ); assertEquals( new IntOpenHashSet( i == 0 ? new int[] { 1, 2, 3 } : new int[] { 0, 1, 2, 3 } ), new IntOpenHashSet( s.iterator() ) ); assertTrue( s.remove( 3 ) ); assertEquals( 2 + i, s.size() ); assertTrue( s.remove( 1 ) ); assertEquals( 1 + i, s.size() ); assertFalse( s.contains( 1 ) ); assertTrue( s.remove( 2 ) ); assertEquals( 0 + i, s.size() ); assertFalse( s.contains( 1 ) ); } }
@Test public void testClone() { IntArraySet s = new IntArraySet(); assertEquals( s, s.clone() ); s.add( 0 ); assertEquals( s, s.clone() ); s.add( 0 ); assertEquals( s, s.clone() ); s.add( 1 ); assertEquals( s, s.clone() ); s.add( 2 ); assertEquals( s, s.clone() ); s.remove( 0 ); assertEquals( s, s.clone() ); }
public static IntSet getNodeSet() { return new IntArraySet(new int[]{0,1,2,3,4,5}); }
public static IntSet getEdgeSet() { return new IntArraySet(new int[]{0,1,2,3,4,5,6}); }