diff --git a/g/container/garray/garray_z_unit_int_test.go b/g/container/garray/garray_z_unit_int_test.go index 49bdf8ce5..099b7bf78 100644 --- a/g/container/garray/garray_z_unit_int_test.go +++ b/g/container/garray/garray_z_unit_int_test.go @@ -198,4 +198,85 @@ func TestIntArray_Join(t *testing.T) { array1 := garray.NewIntArrayFrom(a1) gtest.Assert(array1.Join("."), "0.1.2.3.4.5.6") }) -} \ No newline at end of file +} + +func TestNewSortedIntArrayFrom(t *testing.T) { + gtest.Case(t, func() { + a1 := []int{0,3,2,1,4,5,6} + array1 := garray.NewSortedIntArrayFrom(a1,true) + gtest.Assert(array1.Join("."), "0.1.2.3.4.5.6") + }) +} + +func TestNewSortedIntArrayFromCopy(t *testing.T) { + gtest.Case(t, func() { + a1 := []int{0,5,2,1,4,3,6} + array1 := garray.NewSortedIntArrayFromCopy(a1,false) + //@todo + gtest.Assert(array1.Join("."), "0.5.2.1.4.3.6") + }) +} + +func TestSortedIntArray_SetArray(t *testing.T){ + gtest.Case(t, func() { + a1 := []int{0,1,2,3} + a2 := []int{4,5,6} + array1 := garray.NewSortedIntArrayFrom(a1) + array2:=array1.SetArray(a2) + + gtest.Assert(array2.Len(),3) + gtest.Assert(array2.Search(3),0) + gtest.Assert(array2.Search(5),1) + gtest.Assert(array2.Search(6),2) + }) +} + +func TestSortedIntArray_Sort(t *testing.T) { + gtest.Case(t, func() { + a1 := []int{0,3,2,1} + + array1 := garray.NewSortedIntArrayFrom(a1) + array2:=array1.Sort() + + gtest.Assert(array2.Len(),4) + gtest.Assert(array2,[]int{0,1,2,3}) + + }) +} + +func TestSortedIntArray_Get(t *testing.T) { + gtest.Case(t, func() { + a1 := []int{1,3,5,0} + array1 := garray.NewSortedIntArrayFrom(a1) + gtest.Assert(array1.Get(0),0) + gtest.Assert(array1.Get(1),1) + gtest.Assert(array1.Get(3),5) + + }) +} + +func TestSortedIntArray_Remove(t *testing.T) { + gtest.Case(t, func() { + a1 := []int{1,3,5,0} + array1 := garray.NewSortedIntArrayFrom(a1) + i1:=array1.Remove(2) + gtest.Assert(i1,3) + gtest.Assert(array1.Search(5),2) + + // 再次删除剩下的数组中的第一个 + i2:=array1.Remove(0) + gtest.Assert(i2,0) + gtest.Assert(array1.Search(5),1) + + + a2 := []int{1,3} + array2 := garray.NewSortedIntArrayFrom(a2) + i3:=array2.Remove(1) + gtest.Assert(i3,3) + t.Log(array2) + gtest.Assert(array2.Search(2),-1) + gtest.Assert(array2.Search(1),0) + + }) +} + diff --git a/g/container/garray/garray_z_unit_interface_test.go b/g/container/garray/garray_z_unit_interface_test.go index 2b21e35c3..9dbce416c 100644 --- a/g/container/garray/garray_z_unit_interface_test.go +++ b/g/container/garray/garray_z_unit_interface_test.go @@ -201,4 +201,80 @@ func TestArray_Join(t *testing.T) { array1 := garray.NewArrayFrom(a1) gtest.Assert(array1.Join("."), "0.1.2.3.4.5.6") }) +} + +func TestArray_Replace(t *testing.T) { + gtest.Case(t, func() { + a1 := []interface{}{0,1,2,3,4,5,6} + a2 := []interface{}{"a","b","c"} + a3 := []interface{}{"m","n","p","z","x","y","d","u"} + array1 := garray.NewArrayFrom(a1) + array2:=array1.Replace(a2) + gtest.Assert(array2.Len(), 7) + gtest.Assert(array2.Contains("b"),true) + gtest.Assert(array2.Contains(4),true) + gtest.Assert(array2.Contains("v"),false) + array3:=array1.Replace(a3) + gtest.Assert(array3.Len(), 7) + gtest.Assert(array3.Contains(4),false) + gtest.Assert(array3.Contains("p"),true) + gtest.Assert(array3.Contains("u"),false) + }) +} + +func TestArray_SetArray(t *testing.T) { + gtest.Case(t, func() { + a1 := []interface{}{0,1,2,3,4,5,6} + a2 := []interface{}{"a","b","c"} + + array1 := garray.NewArrayFrom(a1) + array1=array1.SetArray(a2) + gtest.Assert(array1.Len(), 3) + gtest.Assert(array1.Contains("b"), true) + gtest.Assert(array1.Contains("5"), false) + }) +} + +func TestArray_Sum(t *testing.T) { + gtest.Case(t, func() { + a1 := []interface{}{0,1,2,3} + a2 := []interface{}{"a","b","c"} + a3 := []interface{}{"a","1","2"} + + array1 := garray.NewArrayFrom(a1) + array2 := garray.NewArrayFrom(a2) + array3 := garray.NewArrayFrom(a3) + + gtest.Assert(array1.Sum(), 6) + gtest.Assert(array2.Sum(), 0) + gtest.Assert(array3.Sum(), 3) + + }) +} + +func TestArray_Clone(t *testing.T) { + gtest.Case(t, func() { + a1 := []interface{}{0,1,2,3} + + + array1 := garray.NewArrayFrom(a1) + array2:=array1.Clone() + + gtest.Assert(array1.Len(), 4) + gtest.Assert(array2.Sum(), 6) + gtest.AssertEQ(array1, array2) + + + }) +} + +func TestArray_CountValues(t *testing.T) { + gtest.Case(t, func() { + a1 := []interface{}{"a","b","c","d","e","d"} + array1 := garray.NewArrayFrom(a1) + array2:=array1.CountValues() + gtest.Assert(len(array2),5) + gtest.Assert(array2["b"], 1) + gtest.Assert(array2["d"], 2) + }) } \ No newline at end of file diff --git a/g/container/garray/garray_z_unit_string_test.go b/g/container/garray/garray_z_unit_string_test.go index 1994abeff..e5869548e 100644 --- a/g/container/garray/garray_z_unit_string_test.go +++ b/g/container/garray/garray_z_unit_string_test.go @@ -171,10 +171,13 @@ func TestStringArray_Rand(t *testing.T) { func TestStringArray_PopRands(t *testing.T) { gtest.Case(t, func() { - a2 := []string{"100", "200", "300", "400", "500", "600"} - array3 := garray.NewStringArrayFrom(a2,true) - gtest.AssertIN((array3.PopRands(1)), a2) - gtest.Assert(len(array3.PopRands(1)), 1) + a1 := []string{"a", "b", "c", "d", "e", "f", "g"} + a2 := []string{"1", "2", "3", "4", "5", "6", "7"} + array1 := garray.NewStringArrayFrom(a1) + //todo gtest.AssertIN(array1.PopRands(1),a1) + gtest.AssertIN(array1.PopRands(1), strings.Join(a1, ",")) + gtest.AssertNI(array1.PopRands(1), strings.Join(a2, ",")) + }) } @@ -225,7 +228,6 @@ func TestStringArray_SetArray(t *testing.T) { gtest.Assert(array1.Contains("2"), false) gtest.Assert(array1.Contains("c"), true) gtest.Assert(array1.Len(), 4) - }) } @@ -294,6 +296,27 @@ func TestStringArray_PopRand(t *testing.T) { gtest.Assert(strings.Contains("0,1,2,3,4,5,6", str1), true) gtest.Assert(array1.Len(), 6) }) - - // TestStringArray_PopRands() +} + +func TestStringArray_Clone(t *testing.T) { + gtest.Case(t, func() { + a1 := []string{"0", "1", "2", "3", "4", "5", "6"} + array1 := garray.NewStringArrayFrom(a1) + array2 := array1.Clone() + gtest.Assert(array2, array1) + gtest.Assert(array2.Len(), 7) + }) +} + +func TestStringArray_CountValues(t *testing.T) { + gtest.Case(t, func() { + a1 := []string{"0", "1", "2", "3", "4", "4", "6"} + array1 := garray.NewStringArrayFrom(a1) + + m1 := array1.CountValues() + gtest.Assert(len(m1), 6) + gtest.Assert(m1["2"], 1) + gtest.Assert(m1["4"], 2) + + }) }