Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba3a44dd authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Merge "Make SortedStringKeys call SortedKeys"

parents 364c9077 195c7819
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -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 {
+0 −38
Original line number Diff line number Diff line
@@ -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