collectiontest.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 60 行

GROOVY
60
字号
package groovy

class CollectionTest extends GroovyTestCase {

    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()
    }

    // todo: 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])
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?