mirror of
https://github.com/tursom/GoCollections.git
synced 2024-12-27 17:10:25 +08:00
84 lines
1.8 KiB
Go
84 lines
1.8 KiB
Go
/*
|
|
* Copyright (c) 2022 tursom. All rights reserved.
|
|
* Use of this source code is governed by a GPL-3
|
|
* license that can be found in the LICENSE file.
|
|
*/
|
|
|
|
package collections
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/tursom/GoCollections/exceptions"
|
|
"github.com/tursom/GoCollections/lang"
|
|
)
|
|
|
|
func Test_NewArrayListByCapacity(t *testing.T) {
|
|
capacity := 10
|
|
list := NewArrayListByCapacity[lang.Int](capacity)
|
|
if len(list.array) != 0 && cap(list.array) != capacity {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func Test_NewArrayListFrom(t *testing.T) {
|
|
list := NewArrayList[lang.Int]()
|
|
for i := 0; i < 10; i++ {
|
|
list.Add(lang.Int(i))
|
|
}
|
|
newList := NewArrayListFrom[lang.Int](list, 5, 6)
|
|
fmt.Println(newList)
|
|
}
|
|
|
|
func TestArrayListAdd(t *testing.T) {
|
|
list := NewArrayList[lang.Int]()
|
|
for i := 0; i < 10; i++ {
|
|
list.Add(lang.Int(i))
|
|
fmt.Println(list)
|
|
}
|
|
for i := 0; i < 10; i++ {
|
|
list.RemoveLast()
|
|
fmt.Println(list)
|
|
}
|
|
}
|
|
|
|
func TestLinkedList(t *testing.T) {
|
|
list := NewLinkedList[lang.Int]()
|
|
for i := 0; i < 10; i++ {
|
|
list.Add(lang.Int(i))
|
|
fmt.Println(list)
|
|
for j := 0; j <= i; j++ {
|
|
//exceptions.Exec2r0[
|
|
// func(func() (error, error, error)) (error, error),
|
|
// func() (error, error, error),
|
|
// error,
|
|
//](
|
|
exceptions.Exec2r0(
|
|
//exceptions.Exec1r1,
|
|
//exceptions.Exec0r2,
|
|
exceptions.Exec1r1[func() (error, error, error), error, error],
|
|
exceptions.Exec0r2[error, error, error],
|
|
func() (error, error, error) {
|
|
return nil, nil, nil
|
|
},
|
|
)
|
|
//get := (*LinkedList[lang.Int]).Get
|
|
//fmt.Println(exceptions.Exec2r1[func(int) (int, exceptions.Exception), List[int], int](get, list, j).AsInt())
|
|
}
|
|
}
|
|
for i := 0; i < 10; i++ {
|
|
list.RemoveLast()
|
|
fmt.Println(list)
|
|
}
|
|
}
|
|
|
|
func TestEqualsFunc(t *testing.T) {
|
|
f := func() {}
|
|
fmt.Println(equals(f, f))
|
|
}
|
|
|
|
func equals(v1, v2 any) bool {
|
|
return v1 == v2
|
|
}
|