diff options
author | Paul Duffin <paulduffin@google.com> | 2015-01-19 12:46:40 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-01-19 12:46:40 +0000 |
commit | aab56800fcb95e9b1a2d653588b14158080cc6b4 (patch) | |
tree | 7365392c3ea77742021cf187acfd465f9bb774ab /guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java | |
parent | 6fa98dbaae182b511fbeb331e08f5fb827715ea8 (diff) | |
parent | 84fb43aa6a1e752487f2624055ff26b1b6b7c043 (diff) | |
download | android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.tar.gz android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.tar.bz2 android_external_guava-aab56800fcb95e9b1a2d653588b14158080cc6b4.zip |
am 84fb43aa: Merge "Revert "Upgraded Guava to unmodified v14.0.1""
* commit '84fb43aa6a1e752487f2624055ff26b1b6b7c043':
Revert "Upgraded Guava to unmodified v14.0.1"
Diffstat (limited to 'guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java')
-rw-r--r-- | guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java | 159 |
1 files changed, 70 insertions, 89 deletions
diff --git a/guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java b/guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java index fa4b91d..2dd9f54 100644 --- a/guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java +++ b/guava-testlib/src/com/google/common/collect/testing/google/MapGenerators.java @@ -16,26 +16,23 @@ package com.google.common.collect.testing.google; -import static com.google.common.collect.testing.Helpers.mapEntry; +import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.GwtCompatible; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; -import com.google.common.collect.Ordering; -import com.google.common.collect.testing.AnEnum; +import com.google.common.collect.ImmutableMap.Builder; import com.google.common.collect.testing.SampleElements; -import com.google.common.collect.testing.TestEnumMapGenerator; +import com.google.common.collect.testing.TestCollectionGenerator; import com.google.common.collect.testing.TestListGenerator; -import com.google.common.collect.testing.TestStringListGenerator; -import com.google.common.collect.testing.TestStringMapGenerator; +import com.google.common.collect.testing.TestMapEntrySetGenerator; +import com.google.common.collect.testing.TestStringSetGenerator; import com.google.common.collect.testing.TestUnhashableCollectionGenerator; import com.google.common.collect.testing.UnhashableObject; import java.util.Collection; -import java.util.EnumMap; import java.util.List; -import java.util.Map; import java.util.Map.Entry; +import java.util.Set; /** * Generators of different types of map and related collections, such as @@ -45,121 +42,105 @@ import java.util.Map.Entry; */ @GwtCompatible public class MapGenerators { - public static class ImmutableMapGenerator - extends TestStringMapGenerator { - @Override protected Map<String, String> create(Entry<String, String>[] entries) { - ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); - for (Entry<String, String> entry : entries) { - builder.put(entry.getKey(), entry.getValue()); + + public static class ImmutableMapKeySetGenerator + extends TestStringSetGenerator { + @Override protected Set<String> create(String[] elements) { + Builder<String, Integer> builder = ImmutableMap.builder(); + for (String key : elements) { + builder.put(key, 4); } - return builder.build(); + return builder.build().keySet(); } } - public static class ImmutableMapUnhashableValuesGenerator - extends TestUnhashableCollectionGenerator<Collection<UnhashableObject>> { + public static class ImmutableMapValuesGenerator + implements TestCollectionGenerator<String> { - @Override public Collection<UnhashableObject> create( - UnhashableObject[] elements) { - ImmutableMap.Builder<Integer, UnhashableObject> builder = ImmutableMap.builder(); - int key = 1; - for (UnhashableObject value : elements) { - builder.put(key++, value); + @Override + public SampleElements<String> samples() { + return new SampleElements.Strings(); + } + + @Override + public Collection<String> create(Object... elements) { + Builder<Object, String> builder = ImmutableMap.builder(); + for (Object key : elements) { + builder.put(key, String.valueOf(key)); } return builder.build().values(); } - } - public static class ImmutableMapKeyListGenerator extends TestStringListGenerator { @Override - public List<String> create(String[] elements) { - ImmutableMap.Builder<String, Integer> builder = ImmutableMap.builder(); - for (int i = 0; i < elements.length; i++) { - builder.put(elements[i], i); - } - return builder.build().keySet().asList(); + public String[] createArray(int length) { + return new String[length]; } - } - public static class ImmutableMapValueListGenerator extends TestStringListGenerator { @Override - public List<String> create(String[] elements) { - ImmutableMap.Builder<Integer, String> builder = ImmutableMap.builder(); - for (int i = 0; i < elements.length; i++) { - builder.put(i, elements[i]); - } - return builder.build().values().asList(); + public List<String> order(List<String> insertionOrder) { + return insertionOrder; } } - public static class ImmutableMapEntryListGenerator - implements TestListGenerator<Entry<String, Integer>> { + public static class ImmutableMapUnhashableValuesGenerator + extends TestUnhashableCollectionGenerator<Collection<UnhashableObject>> { - @Override - public SampleElements<Entry<String, Integer>> samples() { - return new SampleElements<Entry<String, Integer>>( - mapEntry("foo", 5), - mapEntry("bar", 3), - mapEntry("baz", 17), - mapEntry("quux", 1), - mapEntry("toaster", -2)); + @Override public Collection<UnhashableObject> create( + UnhashableObject[] elements) { + Builder<Integer, UnhashableObject> builder = ImmutableMap.builder(); + int key = 1; + for (UnhashableObject value : elements) { + builder.put(key++, value); + } + return builder.build().values(); } + } - @SuppressWarnings("unchecked") - @Override - public Entry<String, Integer>[] createArray(int length) { - return new Entry[length]; - } + public static class ImmutableMapEntrySetGenerator + extends TestMapEntrySetGenerator<String, String> { - @Override - public Iterable<Entry<String, Integer>> order(List<Entry<String, Integer>> insertionOrder) { - return insertionOrder; + public ImmutableMapEntrySetGenerator() { + super(new SampleElements.Strings(), new SampleElements.Strings()); } - @Override - public List<Entry<String, Integer>> create(Object... elements) { - ImmutableMap.Builder<String, Integer> builder = ImmutableMap.builder(); - for (Object o : elements) { - @SuppressWarnings("unchecked") - Entry<String, Integer> entry = (Entry<String, Integer>) o; - builder.put(entry); + @Override public Set<Entry<String, String>> createFromEntries( + Entry<String, String>[] entries) { + Builder<String, String> builder = ImmutableMap.builder(); + for (Entry<String, String> entry : entries) { + // This null-check forces NPE to be thrown for tests with null + // elements. Those tests aren't useful in testing entry sets + // because entry sets never have null elements. + checkNotNull(entry); + builder.put(entry.getKey(), entry.getValue()); } - return builder.build().entrySet().asList(); + return builder.build().entrySet(); } } - public static class ImmutableEnumMapGenerator extends TestEnumMapGenerator { + public static class ImmutableMapValueListGenerator + implements TestListGenerator<String> { @Override - protected Map<AnEnum, String> create(Entry<AnEnum, String>[] entries) { - Map<AnEnum, String> map = Maps.newHashMap(); - for (Entry<AnEnum, String> entry : entries) { - // checkArgument(!map.containsKey(entry.getKey())); - map.put(entry.getKey(), entry.getValue()); - } - return Maps.immutableEnumMap(map); + public SampleElements<String> samples() { + return new SampleElements.Strings(); } - } - public static class ImmutableMapCopyOfEnumMapGenerator extends TestEnumMapGenerator { @Override - protected Map<AnEnum, String> create(Entry<AnEnum, String>[] entries) { - EnumMap<AnEnum, String> map = new EnumMap<AnEnum, String>(AnEnum.class); - for (Entry<AnEnum, String> entry : entries) { - map.put(entry.getKey(), entry.getValue()); + public List<String> create(Object... elements) { + Builder<Integer, String> builder = ImmutableMap.builder(); + for (int i = 0; i < elements.length; i++) { + builder.put(i, toStringOrNull(elements[i])); } - return ImmutableMap.copyOf(map); + return builder.build().values().asList(); } @Override - public Iterable<Entry<AnEnum, String>> order(List<Entry<AnEnum, String>> insertionOrder) { - return new Ordering<Entry<AnEnum, String>>() { - - @Override - public int compare(Entry<AnEnum, String> left, Entry<AnEnum, String> right) { - return left.getKey().compareTo(right.getKey()); - } + public String[] createArray(int length) { + return new String[length]; + } - }.sortedCopy(insertionOrder); + @Override + public Iterable<String> order(List<String> insertionOrder) { + return insertionOrder; } } |