173 lines
6.2 KiB
Java
173 lines
6.2 KiB
Java
/*
|
|
* Copyright (C) 2009 The Guava Authors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.google.common.collect;
|
|
|
|
import static com.google.common.truth.Truth.assertThat;
|
|
|
|
import com.google.common.annotations.GwtCompatible;
|
|
import com.google.common.collect.Table.Cell;
|
|
|
|
/** @author Gregory Kick */
|
|
@GwtCompatible
|
|
public class RegularImmutableTableTest extends AbstractImmutableTableTest {
|
|
private static final ImmutableSet<Cell<Character, Integer, String>> CELLS =
|
|
ImmutableSet.of(
|
|
Tables.immutableCell('a', 1, "foo"),
|
|
Tables.immutableCell('b', 1, "bar"),
|
|
Tables.immutableCell('a', 2, "baz"));
|
|
|
|
private static final ImmutableSet<Character> ROW_SPACE = ImmutableSet.of('a', 'b');
|
|
|
|
private static final ImmutableSet<Integer> COLUMN_SPACE = ImmutableSet.of(1, 2);
|
|
|
|
private static final SparseImmutableTable<Character, Integer, String> SPARSE =
|
|
new SparseImmutableTable<>(CELLS.asList(), ROW_SPACE, COLUMN_SPACE);
|
|
|
|
private static final DenseImmutableTable<Character, Integer, String> DENSE =
|
|
new DenseImmutableTable<>(CELLS.asList(), ROW_SPACE, COLUMN_SPACE);
|
|
|
|
@Override
|
|
Iterable<ImmutableTable<Character, Integer, String>> getTestInstances() {
|
|
return ImmutableList.<ImmutableTable<Character, Integer, String>>of(SPARSE, DENSE);
|
|
}
|
|
|
|
public void testCellSet() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(CELLS, testInstance.cellSet());
|
|
}
|
|
}
|
|
|
|
public void testValues() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertThat(testInstance.values()).containsExactly("foo", "bar", "baz").inOrder();
|
|
}
|
|
}
|
|
|
|
public void testSize() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(3, testInstance.size());
|
|
}
|
|
}
|
|
|
|
public void testContainsValue() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertTrue(testInstance.containsValue("foo"));
|
|
assertTrue(testInstance.containsValue("bar"));
|
|
assertTrue(testInstance.containsValue("baz"));
|
|
assertFalse(testInstance.containsValue("blah"));
|
|
}
|
|
}
|
|
|
|
public void testIsEmpty() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertFalse(testInstance.isEmpty());
|
|
}
|
|
}
|
|
|
|
public void testForCells() {
|
|
assertTrue(RegularImmutableTable.forCells(CELLS) instanceof DenseImmutableTable<?, ?, ?>);
|
|
assertTrue(
|
|
RegularImmutableTable.forCells(
|
|
ImmutableSet.of(
|
|
Tables.immutableCell('a', 1, "blah"),
|
|
Tables.immutableCell('b', 2, "blah"),
|
|
Tables.immutableCell('c', 3, "blah")))
|
|
instanceof SparseImmutableTable<?, ?, ?>);
|
|
}
|
|
|
|
public void testGet() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals("foo", testInstance.get('a', 1));
|
|
assertEquals("bar", testInstance.get('b', 1));
|
|
assertEquals("baz", testInstance.get('a', 2));
|
|
assertNull(testInstance.get('b', 2));
|
|
assertNull(testInstance.get('c', 3));
|
|
}
|
|
}
|
|
|
|
public void testColumn() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(ImmutableMap.of('a', "foo", 'b', "bar"), testInstance.column(1));
|
|
assertEquals(ImmutableMap.of('a', "baz"), testInstance.column(2));
|
|
assertEquals(ImmutableMap.of(), testInstance.column(3));
|
|
}
|
|
}
|
|
|
|
public void testColumnKeySet() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(ImmutableSet.of(1, 2), testInstance.columnKeySet());
|
|
}
|
|
}
|
|
|
|
public void testColumnMap() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(
|
|
ImmutableMap.of(
|
|
1, ImmutableMap.of('a', "foo", 'b', "bar"), 2, ImmutableMap.of('a', "baz")),
|
|
testInstance.columnMap());
|
|
}
|
|
}
|
|
|
|
public void testContains() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertTrue(testInstance.contains('a', 1));
|
|
assertTrue(testInstance.contains('b', 1));
|
|
assertTrue(testInstance.contains('a', 2));
|
|
assertFalse(testInstance.contains('b', 2));
|
|
assertFalse(testInstance.contains('c', 3));
|
|
}
|
|
}
|
|
|
|
public void testContainsColumn() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertTrue(testInstance.containsColumn(1));
|
|
assertTrue(testInstance.containsColumn(2));
|
|
assertFalse(testInstance.containsColumn(3));
|
|
}
|
|
}
|
|
|
|
public void testContainsRow() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertTrue(testInstance.containsRow('a'));
|
|
assertTrue(testInstance.containsRow('b'));
|
|
assertFalse(testInstance.containsRow('c'));
|
|
}
|
|
}
|
|
|
|
public void testRow() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(ImmutableMap.of(1, "foo", 2, "baz"), testInstance.row('a'));
|
|
assertEquals(ImmutableMap.of(1, "bar"), testInstance.row('b'));
|
|
assertEquals(ImmutableMap.of(), testInstance.row('c'));
|
|
}
|
|
}
|
|
|
|
public void testRowKeySet() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(ImmutableSet.of('a', 'b'), testInstance.rowKeySet());
|
|
}
|
|
}
|
|
|
|
public void testRowMap() {
|
|
for (ImmutableTable<Character, Integer, String> testInstance : getTestInstances()) {
|
|
assertEquals(
|
|
ImmutableMap.of('a', ImmutableMap.of(1, "foo", 2, "baz"), 'b', ImmutableMap.of(1, "bar")),
|
|
testInstance.rowMap());
|
|
}
|
|
}
|
|
}
|