Merge "Make SortedStringKeys call SortedKeys"

This commit is contained in:
Cole Faust 2023-03-02 03:08:28 +00:00 committed by Gerrit Code Review
commit ba3a44dd1c
2 changed files with 2 additions and 53 deletions

View file

@ -65,21 +65,8 @@ func JoinWithPrefixAndSeparator(strs []string, prefix string, sep string) string
// SortedStringKeys returns the keys of the given map in the ascending order.
//
// Deprecated: Use SortedKeys instead.
func SortedStringKeys(m interface{}) []string {
v := reflect.ValueOf(m)
if v.Kind() != reflect.Map {
panic(fmt.Sprintf("%#v is not a map", m))
}
if v.Len() == 0 {
return nil
}
iter := v.MapRange()
s := make([]string, 0, v.Len())
for iter.Next() {
s = append(s, iter.Key().String())
}
sort.Strings(s)
return s
func SortedStringKeys[V any](m map[string]V) []string {
return SortedKeys(m)
}
type Ordered interface {

View file

@ -671,44 +671,6 @@ func TestSortedKeys(t *testing.T) {
testSortedKeysHelper(t, "empty", map[string]string{}, nil)
}
func TestSortedStringKeys(t *testing.T) {
testCases := []struct {
name string
in interface{}
expected []string
}{
{
name: "nil",
in: map[string]string(nil),
expected: nil,
},
{
name: "empty",
in: map[string]string{},
expected: nil,
},
{
name: "simple",
in: map[string]string{"a": "foo", "b": "bar"},
expected: []string{"a", "b"},
},
{
name: "interface values",
in: map[string]interface{}{"a": nil, "b": nil},
expected: []string{"a", "b"},
},
}
for _, tt := range testCases {
t.Run(tt.name, func(t *testing.T) {
got := SortedStringKeys(tt.in)
if g, w := got, tt.expected; !reflect.DeepEqual(g, w) {
t.Errorf("wanted %q, got %q", w, g)
}
})
}
}
func TestSortedStringValues(t *testing.T) {
testCases := []struct {
name string