@Override public Iterator<E> iterator() { final Iterator<Entry<E,Integer>> i = map.entrySet().iterator(); return new Iterator<E>() { private E e; private int n=0; public boolean hasNext() { return n>0 || i.hasNext(); } public E next() { if(n==0) { // finished with current element Entry<E,Integer> entry = i.next(); e = entry.getKey(); n = entry.getValue(); } n--; return e; } public void remove() { throw new UnsupportedOperationException(); } }; }
@Override public Iterator<E> iterator() { final Iterator<Entry<E,Integer>> i = map.entrySet().iterator(); return new Iterator<E>() { private E e; private int n=0; public boolean hasNext() { return n>0 || i.hasNext(); } public E next() { if(n==0) { // finished with current element Entry<E,Integer> entry = i.next(); e = entry.getKey(); n = entry.getValue(); } n--; return e; } public void remove() { throw new UnsupportedOperationException(); } }; }
/** * @return * @see java.util.Map#entrySet() */ @Override public Set<java.util.Map.Entry<K, V>> entrySet() { return map.entrySet(); }
public void testEmpty() { PMap<?,?> empty = HashTreePMap.empty(); UtilityTest.assertEqualsAndHash(new HashMap<Object,Object>(), empty); assertEquals(0, empty.size()); assertTrue(empty.isEmpty()); for(@SuppressWarnings("unused") Object e : empty.entrySet()) fail(); }
public void testEmpty() { PMap<?,?> empty = IntTreePMap.empty(); UtilityTest.assertEqualsAndHash(new HashMap<Object,Object>(), empty); assertEquals(0, empty.size()); assertTrue(empty.isEmpty()); for(@SuppressWarnings("unused") Object e : empty.entrySet()) fail(); }
} else { // remove a random key int j = r.nextInt(pmap.size()); for(Entry<Integer,Integer> e : pmap.entrySet()) { int k = e.getKey(); assertEquals(map.get(k), pmap.get(k)); assertTrue(map.entrySet().contains(e)); assertTrue(pmap.entrySet().contains(e)); UtilityTest.assertEqualsAndHash( pmap, pmap.plus(k,e.getValue()) ); map.remove(k); pmap = pmap.minus(k); assertFalse(pmap.entrySet().contains(e)); assertFalse( pmap.containsKey(s) ); assertEquals(null, pmap.get(s)); assertFalse( pmap.entrySet().contains(s) ); pmap = pmap.minus(s); UtilityTest.assertEqualsAndHash(map.entrySet(), pmap.entrySet());
} else { // remove a random key int j = r.nextInt(pmap.size()); for(Entry<Integer,Integer> e : pmap.entrySet()) { int k = e.getKey(); assertEquals(map.get(k), pmap.get(k)); assertTrue(map.entrySet().contains(e)); assertTrue(pmap.entrySet().contains(e)); UtilityTest.assertEqualsAndHash( pmap, pmap.plus(k,e.getValue()) ); map.remove(k); pmap = pmap.minus(k); assertFalse(pmap.entrySet().contains(e)); assertFalse( pmap.containsKey(s) ); assertEquals(null, pmap.get(s)); assertFalse( pmap.entrySet().contains(s) ); pmap = pmap.minus(s); UtilityTest.assertEqualsAndHash(map.entrySet(), pmap.entrySet());
@Override public Iterator<E> iterator() { final Iterator<Entry<E,Integer>> i = map.entrySet().iterator(); return new Iterator<E>() { private E e; private int n=0; public boolean hasNext() { return n>0 || i.hasNext(); } public E next() { if(n==0) { // finished with current element Entry<E,Integer> entry = i.next(); e = entry.getKey(); n = entry.getValue(); } n--; return e; } public void remove() { throw new UnsupportedOperationException(); } }; }
@Override public Iterator<E> iterator() { final Iterator<Entry<E, Integer>> i = map.entrySet().iterator(); return new Iterator<E>() { private E e; private int n = 0; public boolean hasNext() { return n > 0 || i.hasNext(); } public E next() { if (n == 0) { // finished with current element Entry<E, Integer> entry = i.next(); e = entry.getKey(); n = entry.getValue(); } n--; return e; } public void remove() { throw new UnsupportedOperationException(); } }; }
public boolean isEmpty() { int count = 0; for (Map.Entry<?, PMap<UUID, EventRecord>> e : events.entrySet()) { count += e.getValue().size(); } return count == 0; }
public Map<UUID, Map<UUID, EventRecord>> values() { Map<UUID, Map<UUID, EventRecord>> result = new HashMap<>(events.size()); for (Map.Entry<UUID, PMap<UUID, EventRecord>> e : events.entrySet()) { UUID k = e.getKey(); PMap<UUID, EventRecord> v = e.getValue(); result.put(k, v); } return result; }
@Override public String toString() { Stream<String> descriptions = values.entrySet() .stream() .map(e -> String.format("%s: %s", e.getKey().name(), e.getValue())); return "{" + String.join(", ", descriptions.collect(Collectors.toList())) + "}"; }
@Override protected boolean matchesSafely(FixedRekord<T> actualRekord, Description mismatchDescription) { mismatchDescription.appendText("a rekord that looks like ").appendValue(actualRekord); if (!expectedProperties.keySet().equals(actualRekord.keys().toSet())) { return false; } for (Map.Entry<Key<T, ?>, Matcher<?>> property : expectedProperties.entrySet()) { Key<T, ?> expectedKey = property.getKey(); Matcher<?> expectedValue = property.getValue(); if (!expectedValue.matches(actualRekord.get(expectedKey))) { return false; } } return true; } }