2022-09-16 14:40:57 +03:00
|
|
|
|
package unique_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"gotest/unique"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Структура тестовых данных, input - входной массив,
|
|
|
|
|
// output - ожидаеммый вывод
|
|
|
|
|
|
|
|
|
|
type testdata struct {
|
|
|
|
|
input []int
|
|
|
|
|
output int
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-19 09:36:01 +03:00
|
|
|
|
var odd_test = []testdata{
|
2022-09-16 14:40:57 +03:00
|
|
|
|
{[]int{9, 3, 9, 3, 9, 7, 9}, 7},
|
2022-09-19 09:36:01 +03:00
|
|
|
|
{[]int{9, 3, 9, 8, 9, 3, 9}, 8},
|
2022-09-16 14:40:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
2022-09-19 09:36:01 +03:00
|
|
|
|
var even_test = []testdata{
|
|
|
|
|
{[]int{9, 3, 9, 3, 9, 7}, 0},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// сравниваем входные данные с выходными данными, и кидаем ошибки или пишем в терминал
|
|
|
|
|
func test(d *testdata, t *testing.T) {
|
|
|
|
|
|
|
|
|
|
result := unique.FindUnique(d.input)
|
|
|
|
|
|
|
|
|
|
if result != d.output {
|
|
|
|
|
t.Error(
|
|
|
|
|
"test failed",
|
|
|
|
|
"for: ", d.input,
|
|
|
|
|
"expected: ", d.output,
|
|
|
|
|
"got: ", result,
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println(
|
|
|
|
|
"test passed",
|
|
|
|
|
"for: ", d.input,
|
|
|
|
|
"got: ", result,
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestUnique(t *testing.T) {
|
2022-09-16 14:40:57 +03:00
|
|
|
|
|
|
|
|
|
t.Run(
|
2022-09-19 09:36:01 +03:00
|
|
|
|
"inserting odd nums of elements", func(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
for _, data := range odd_test {
|
|
|
|
|
|
|
|
|
|
test(&data, &testing.T{})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
t.Run(
|
|
|
|
|
"inserting even nums of elements", func(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
for _, data := range even_test {
|
|
|
|
|
|
|
|
|
|
test(&data, &testing.T{})
|
|
|
|
|
|
2022-09-16 14:40:57 +03:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
}
|