exercism-go/flatten-array/cases_test.go
2025-03-09 13:26:08 -04:00

42 lines
1.6 KiB
Go

package flatten
// Source: exercism/problem-specifications
// Commit: 0290376 flatten-array: Apply new "input" policy
// Problem Specifications Version: 1.2.0
var testCases = []struct {
description string
input interface{}
expected []interface{}
}{
{
description: "no nesting",
input: []interface{}{0, 1, 2},
expected: []interface{}{0, 1, 2},
},
{
description: "flattens array with just integers present",
input: []interface{}{1, []interface{}{2, 3, 4, 5, 6, 7}, 8},
expected: []interface{}{1, 2, 3, 4, 5, 6, 7, 8},
},
{
description: "5 level nesting",
input: []interface{}{0, 2, []interface{}{[]interface{}{2, 3}, 8, 100, 4, []interface{}{[]interface{}{[]interface{}{50}}}}, -2},
expected: []interface{}{0, 2, 2, 3, 8, 100, 4, 50, -2},
},
{
description: "6 level nesting",
input: []interface{}{1, []interface{}{2, []interface{}{[]interface{}{3}}, []interface{}{4, []interface{}{[]interface{}{5}}}, 6, 7}, 8},
expected: []interface{}{1, 2, 3, 4, 5, 6, 7, 8},
},
{
description: "6 level nest list with null values",
input: []interface{}{0, 2, []interface{}{[]interface{}{2, 3}, 8, []interface{}{[]interface{}{100}}, interface{}(nil), []interface{}{[]interface{}{interface{}(nil)}}}, -2},
expected: []interface{}{0, 2, 2, 3, 8, 100, -2},
},
{
description: "all values in nested list are null",
input: []interface{}{interface{}(nil), []interface{}{[]interface{}{[]interface{}{interface{}(nil)}}}, interface{}(nil), interface{}(nil), []interface{}{[]interface{}{interface{}(nil), interface{}(nil)}, interface{}(nil)}, interface{}(nil)},
expected: []interface{}{},
},
}