// go:build unit package u import "testing" func TestPathing(t *testing.T) { testCases := []struct { name string in []any out string }{ { name: "root", in: []any{}, out: "", }, { name: "empty", in: []any{ "/", []string{"/", "/"}, "/", []string{"/"}, }, out: "", }, { name: "empty", in: []any{ "usr", []string{"/share/", "lib"}, "/demo", []string{"/out//"}, }, out: "/usr/share/lib/demo/out", }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { r := NewPathing() for _, v := range tc.in { switch s := v.(type) { case string: r = r.AddPath(s) case []string: r = r.AddPaths(s) } } path := r.Done() if tc.out != path { t.Errorf("String mismatch: wanted %s got %s", tc.out, path) } }) } }