elma_developer_test/unique/findunique_test.go

72 lines
1.2 KiB
Go
Raw Normal View History

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