aboutsummaryrefslogtreecommitdiffstats
path: root/guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java')
-rw-r--r--guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java88
1 files changed, 82 insertions, 6 deletions
diff --git a/guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java b/guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java
index db19baa..987ae9c 100644
--- a/guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java
+++ b/guava-testlib/src/com/google/common/collect/testing/google/BiMapGenerators.java
@@ -16,11 +16,18 @@
package com.google.common.collect.testing.google;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.annotations.GwtCompatible;
-import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
+import com.google.common.collect.Maps;
+import com.google.common.collect.testing.SampleElements;
+import com.google.common.collect.testing.TestMapEntrySetGenerator;
+import com.google.common.collect.testing.TestStringSetGenerator;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
/**
* Generators of various {@link com.google.common.collect.BiMap}s and derived
@@ -31,13 +38,82 @@ import java.util.Map.Entry;
*/
@GwtCompatible
public class BiMapGenerators {
- public static class ImmutableBiMapGenerator extends TestStringBiMapGenerator {
- @Override protected BiMap<String, String> create(Entry<String, String>[] entries) {
- ImmutableBiMap.Builder<String, String> builder = ImmutableBiMap.builder();
+
+ public static class ImmutableBiMapKeySetGenerator
+ extends TestStringSetGenerator {
+ @Override protected Set<String> create(String[] elements) {
+ Map<String, Integer> map = Maps.newLinkedHashMap();
+ for (int i = 0; i < elements.length; i++) {
+ map.put(elements[i], i);
+ }
+ return ImmutableBiMap.copyOf(map).keySet();
+ }
+ }
+
+ public static class ImmutableBiMapValuesGenerator
+ extends TestStringSetGenerator {
+ @Override protected Set<String> create(String[] elements) {
+ Map<Integer, String> map = Maps.newLinkedHashMap();
+ for (int i = 0; i < elements.length; i++) {
+ map.put(i, elements[i]);
+ }
+ return ImmutableBiMap.copyOf(map).values();
+ }
+ }
+
+ public static class ImmutableBiMapInverseEntrySetGenerator
+ extends TestMapEntrySetGenerator<String, String> {
+
+ public ImmutableBiMapInverseEntrySetGenerator() {
+ super(new SampleElements.Strings(), new SampleElements.Strings());
+ }
+ @Override public Set<Entry<String, String>> createFromEntries(
+ Entry<String, String>[] entries) {
+ Map<String, String> map = Maps.newLinkedHashMap();
+ for (Entry<String, String> entry : entries) {
+ checkNotNull(entry);
+ map.put(entry.getValue(), entry.getKey());
+ }
+ return ImmutableBiMap.copyOf(map).inverse().entrySet();
+ }
+ }
+
+ public static class ImmutableBiMapInverseKeySetGenerator
+ extends TestStringSetGenerator {
+ @Override protected Set<String> create(String[] elements) {
+ Map<Integer, String> map = Maps.newLinkedHashMap();
+ for (int i = 0; i < elements.length; i++) {
+ map.put(i, elements[i]);
+ }
+ return ImmutableBiMap.copyOf(map).inverse().keySet();
+ }
+ }
+
+ public static class ImmutableBiMapInverseValuesGenerator
+ extends TestStringSetGenerator {
+ @Override protected Set<String> create(String[] elements) {
+ Map<String, Integer> map = Maps.newLinkedHashMap();
+ for (int i = 0; i < elements.length; i++) {
+ map.put(elements[i], i);
+ }
+ return ImmutableBiMap.copyOf(map).inverse().values();
+ }
+ }
+
+ public static class ImmutableBiMapEntrySetGenerator
+ extends TestMapEntrySetGenerator<String, String> {
+
+ public ImmutableBiMapEntrySetGenerator() {
+ super(new SampleElements.Strings(), new SampleElements.Strings());
+ }
+ @Override public Set<Entry<String, String>> createFromEntries(
+ Entry<String, String>[] entries) {
+ Map<String, String> map = Maps.newLinkedHashMap();
for (Entry<String, String> entry : entries) {
- builder.put(entry.getKey(), entry.getValue());
+ checkNotNull(entry);
+ map.put(entry.getKey(), entry.getValue());
}
- return builder.build();
+ return ImmutableBiMap.copyOf(map).entrySet();
}
}
}