blob: a4dcab25f5a134958a37f9075eea19abf64fb2e8 [file] [log] [blame]
package groovy
class UniqueOnCollectionTest extends GroovyTestCase {
void testUnique() {
def list = [-1, 0, 1, 1, 0, -1]
assert list.unique() == [-1, 0, 1]
}
void testUniqueOnListNoDupls() {
assert [].unique() == []
assert [1].unique() == [1]
assert [1,2].unique() == [1,2]
def a = [1,2]
assert a.is(a.unique())
}
void testUniqueOnListOneDupl() {
assert [1,1].unique() == [1]
def a = [1,1]
assert a.is(a.unique())
assert [1,2,1].unique() == [1,2]
assert [1,2,1,1].unique() == [1,2]
assert [1,1,2].unique() == [1,2]
assert [1,1,2,1].unique() == [1,2]
assert [1,1,2,1,1].unique() == [1,2]
}
void testUniqueOnListTwoDupls() {
assert [1,1,2,2].unique() == [1,2]
def a = [1,1,2,2]
assert a.is(a.unique())
assert [1,2,1,2].unique() == [1,2]
assert [1,2,1,1,2].unique() == [1,2]
assert [1,1,2,2].unique() == [1,2]
assert [1,1,2,1,2].unique() == [1,2]
assert [1,1,2,2,1,1,2,2].unique() == [1,2]
}
void testUniqueOnOtherCollections() {
def a = new HashSet([1,1])
assert a.is(a.unique())
assert 1 == a.size()
a = new TreeSet([1,1])
assert a.is(a.unique())
assert 1 == a.size()
a = new Vector([1,1])
assert a.is(a.unique())
assert 1 == a.size()
a = new LinkedList([1,1])
assert a.is(a.unique())
assert 1 == a.size()
}
// GROOVY-1006
void testUniqueOnDifferentTypes() {
def a = [1, 2, (short)1, 2L, 2.0]
def b = a.unique()
assert (b == a && a == [1, 2])
a = [Math.PI, "foo", 1.0, 2L, (short)2, 2.0F]
b = a.unique()
assert (b == a && a == [Math.PI, "foo", 1.0, 2L])
}
// GROOVY-1956
void testUniqueOnListWithNulls() {
def x = [1, 2, 3, 1, 2, 3, null, 'a', null]
x.unique()
assert x == [1, 2, 3, null, 'a']
}
}