summaryrefslogtreecommitdiffstats
path: root/src/encoding/json/fold_test.go
blob: 9d6fd0559d69eff938a5d1432b4bc3a56c5a2be9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package json

import (
	"bytes"
	"testing"
)

func FuzzEqualFold(f *testing.F) {
	for _, ss := range [][2]string{
		{"", ""},
		{"123abc", "123ABC"},
		{"αβδ", "ΑΒΔ"},
		{"abc", "xyz"},
		{"abc", "XYZ"},
		{"1", "2"},
		{"hello, world!", "hello, world!"},
		{"hello, world!", "Hello, World!"},
		{"hello, world!", "HELLO, WORLD!"},
		{"hello, world!", "jello, world!"},
		{"γειά, κόσμε!", "γειά, κόσμε!"},
		{"γειά, κόσμε!", "Γειά, Κόσμε!"},
		{"γειά, κόσμε!", "ΓΕΙΆ, ΚΌΣΜΕ!"},
		{"γειά, κόσμε!", "ΛΕΙΆ, ΚΌΣΜΕ!"},
		{"AESKey", "aesKey"},
		{"AESKEY", "aes_key"},
		{"aes_key", "AES_KEY"},
		{"AES_KEY", "aes-key"},
		{"aes-key", "AES-KEY"},
		{"AES-KEY", "aesKey"},
		{"aesKey", "AesKey"},
		{"AesKey", "AESKey"},
		{"AESKey", "aeskey"},
		{"DESKey", "aeskey"},
		{"AES Key", "aeskey"},
	} {
		f.Add([]byte(ss[0]), []byte(ss[1]))
	}
	equalFold := func(x, y []byte) bool { return string(foldName(x)) == string(foldName(y)) }
	f.Fuzz(func(t *testing.T, x, y []byte) {
		got := equalFold(x, y)
		want := bytes.EqualFold(x, y)
		if got != want {
			t.Errorf("equalFold(%q, %q) = %v, want %v", x, y, got, want)
		}
	})
}