package org.apache.commons.collections4.iterators; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; import org.apache.commons.collections4.OrderedMapIterator; import java.util.Set; import org.junit.Test; /** * Abstract class for testing the OrderedMapIterator interface. * <p/> * This class provides a framework for testing an implementation of MapIterator. * Concrete subclasses must provide the list iterator to be tested. * They must also specify certain details of how the list iterator operates by * overriding the supportsXxx() methods if necessary. * * @version $Id$ * @since 3.0 */ public abstract class AbstractOrderedMapIteratorTest<K, V> extends AbstractMapIteratorTest<K, V> { /** * JUnit constructor. * * @param testName the test class name */ public AbstractOrderedMapIteratorTest(final String testName) { super(testName); } @Override public abstract OrderedMapIterator<K, V> makeEmptyIterator(); @Override public abstract OrderedMapIterator<K, V> makeObject(); /** * Test that the empty list iterator contract is correct. */ @Override public void testEmptyMapIterator() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEmptyMapIterator"); if (!(supportsEmptyIterator())) { return ; } super.testEmptyMapIterator(); final OrderedMapIterator<K, V> it = makeEmptyIterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2694,it,2693,it.hasPrevious()); try { it.previous(); } catch (final NoSuchElementException ex) { } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the empty list iterator contract is correct. */ @Test(timeout = 1000) public void testEmptyMapIterator_add949() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEmptyMapIterator_add949"); if (!(supportsEmptyIterator())) { return ; } super.testEmptyMapIterator(); super.testEmptyMapIterator(); final OrderedMapIterator<K, V> it = makeEmptyIterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2694,it,2693,it.hasPrevious()); try { it.previous(); } catch (final NoSuchElementException ex) { } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the empty list iterator contract is correct. */ @Test(timeout = 1000) public void testEmptyMapIterator_add950() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEmptyMapIterator_add950"); if (!(supportsEmptyIterator())) { return ; } super.testEmptyMapIterator(); final OrderedMapIterator<K, V> it = makeEmptyIterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2694,it,2693,it.hasPrevious()); try { it.previous(); it.previous(); } catch (final NoSuchElementException ex) { } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the empty list iterator contract is correct. */ @Test(timeout = 1000) public void testEmptyMapIterator_remove721() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testEmptyMapIterator_remove721"); if (!(supportsEmptyIterator())) { return ; } final OrderedMapIterator<K, V> it = makeEmptyIterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2694,it,2693,it.hasPrevious()); try { it.previous(); } catch (final NoSuchElementException ex) { } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the full list iterator contract is correct. */ @Override public void testFullMapIterator() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testFullMapIterator"); if (!(supportsFullIterator())) { return ; } super.testFullMapIterator(); final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2696,it,2695,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2698,it,2697,it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2699,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2701,it,2700,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2703,map,2702,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2705,set,2704,set.add(key)); final V value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2707,map,2706,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2708,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2710,map,2709,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2712,it,2711,it.hasPrevious()); verify(); } while (it.hasPrevious()) { final Object key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2713,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2715,it,2714,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2717,map,2716,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2719,set,2718,set.remove(key)); final Object value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2721,map,2720,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2722,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2724,map,2723,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2726,it,2725,it.hasNext()); verify(); } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the full list iterator contract is correct. */ @Test(timeout = 1000) public void testFullMapIterator_add951() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testFullMapIterator_add951"); if (!(supportsFullIterator())) { return ; } super.testFullMapIterator(); super.testFullMapIterator(); final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2696,it,2695,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2698,it,2697,it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2699,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2701,it,2700,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2703,map,2702,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2705,set,2704,set.add(key)); final V value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2707,map,2706,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2708,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2710,map,2709,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2712,it,2711,it.hasPrevious()); verify(); } while (it.hasPrevious()) { final Object key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2713,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2715,it,2714,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2717,map,2716,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2719,set,2718,set.remove(key)); final Object value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2721,map,2720,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2722,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2724,map,2723,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2726,it,2725,it.hasNext()); verify(); } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the full list iterator contract is correct. */ @Test(timeout = 1000) public void testFullMapIterator_add952() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testFullMapIterator_add952"); if (!(supportsFullIterator())) { return ; } super.testFullMapIterator(); final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2696,it,2695,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2698,it,2697,it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2699,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2701,it,2700,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2703,map,2702,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2705,set,2704,set.add(key)); final V value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2707,map,2706,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2708,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2710,map,2709,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2712,it,2711,it.hasPrevious()); verify(); verify(); } while (it.hasPrevious()) { final Object key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2713,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2715,it,2714,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2717,map,2716,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2719,set,2718,set.remove(key)); final Object value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2721,map,2720,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2722,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2724,map,2723,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2726,it,2725,it.hasNext()); verify(); } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the full list iterator contract is correct. */ @Test(timeout = 1000) public void testFullMapIterator_add953() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testFullMapIterator_add953"); if (!(supportsFullIterator())) { return ; } super.testFullMapIterator(); final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2696,it,2695,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2698,it,2697,it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2699,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2701,it,2700,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2703,map,2702,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2705,set,2704,set.add(key)); final V value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2707,map,2706,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2708,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2710,map,2709,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2712,it,2711,it.hasPrevious()); verify(); } while (it.hasPrevious()) { final Object key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2713,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2715,it,2714,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2717,map,2716,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2719,set,2718,set.remove(key)); final Object value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2721,map,2720,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2722,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2724,map,2723,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2726,it,2725,it.hasNext()); verify(); verify(); } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the full list iterator contract is correct. */ @Test(timeout = 1000) public void testFullMapIterator_remove722() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testFullMapIterator_remove722"); if (!(supportsFullIterator())) { return ; } final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2696,it,2695,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2698,it,2697,it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2699,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2701,it,2700,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2703,map,2702,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2705,set,2704,set.add(key)); final V value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2707,map,2706,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2708,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2710,map,2709,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2712,it,2711,it.hasPrevious()); verify(); } while (it.hasPrevious()) { final Object key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2713,key); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2715,it,2714,it.getKey()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2717,map,2716,map.containsKey(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2719,set,2718,set.remove(key)); final Object value = it.getValue(); if (!(isGetStructuralModify())) { fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2721,map,2720,map.get(key)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2722,value); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2724,map,2723,map.containsValue(value)); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2726,it,2725,it.hasNext()); verify(); } fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the iterator order matches the keySet order. */ @Test(timeout = 1000) public void testMapIteratorOrder_add954() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapIteratorOrder_add954"); if (!(supportsFullIterator())) { return ; } final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); final Iterator<K> it2 = map.keySet().iterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2632,it,2631,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2729,it2,2728,it2.hasNext()); final List<K> list = new ArrayList<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2731,it2,2730,it2.next()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2732,key); list.add(key); list.add(key); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2734,map,2733,map.size()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2736,list,2735,list.size()); while (it.hasPrevious()) { final K key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2738,list,2737,list.get(((list.size()) - 1))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2739,key); list.remove(((list.size()) - 1)); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2741,list,2740,list.size()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the iterator order matches the keySet order. */ @Test(timeout = 1000) public void testMapIteratorOrder_add955() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapIteratorOrder_add955"); if (!(supportsFullIterator())) { return ; } final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); final Iterator<K> it2 = map.keySet().iterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2632,it,2631,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2729,it2,2728,it2.hasNext()); final List<K> list = new ArrayList<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2731,it2,2730,it2.next()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2732,key); list.add(key); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2734,map,2733,map.size()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2736,list,2735,list.size()); while (it.hasPrevious()) { final K key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2738,list,2737,list.get(((list.size()) - 1))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2739,key); list.remove(((list.size()) - 1)); list.remove(((list.size()) - 1)); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2741,list,2740,list.size()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Test that the iterator order matches the keySet order. */ public void testMapIteratorOrder() { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testMapIteratorOrder"); if (!(supportsFullIterator())) { return ; } final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2727,new java.util.ArrayList<K>(map.keySet())); final Iterator<K> it2 = map.keySet().iterator(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2632,it,2631,it.hasNext()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2729,it2,2728,it2.hasNext()); final List<K> list = new ArrayList<K>(); while (it.hasNext()) { final K key = it.next(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2731,it2,2730,it2.next()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2732,key); list.add(key); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2734,map,2733,map.size()); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2736,list,2735,list.size()); while (it.hasPrevious()) { final K key = it.previous(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2738,list,2737,list.get(((list.size()) - 1))); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2739,key); list.remove(((list.size()) - 2)); } fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),2741,list,2740,list.size()); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } }