2023-01-16 06:38:55 +00:00
|
|
|
package safety
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2023-01-21 11:31:23 +00:00
|
|
|
"github.com/fthvgb1/wp-go/helper/number"
|
2023-01-16 06:38:55 +00:00
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestSlice_Append(t *testing.T) {
|
|
|
|
type args[T any] struct {
|
|
|
|
t []T
|
|
|
|
}
|
|
|
|
type testCase[T any] struct {
|
|
|
|
name string
|
|
|
|
r Slice[T]
|
|
|
|
args args[T]
|
|
|
|
}
|
|
|
|
tests := []testCase[int]{
|
|
|
|
{
|
|
|
|
name: "t1",
|
|
|
|
r: *NewSlice([]int{}),
|
2023-01-21 11:31:23 +00:00
|
|
|
args: args[int]{number.Range(1, 10, 1)},
|
2023-01-16 06:38:55 +00:00
|
|
|
},
|
|
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
fn := func() {
|
|
|
|
tt.r.Append(tt.args.t...)
|
|
|
|
}
|
|
|
|
go fn()
|
|
|
|
go fn()
|
|
|
|
go fn()
|
|
|
|
go fn()
|
|
|
|
time.Sleep(time.Second)
|
|
|
|
fmt.Println(tt.r.Load())
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|