MCPcopy Index your code
hub / github.com/coder/coder / TestRandomElement

Function TestRandomElement

cryptorand/slices_test.go:11–56  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestRandomElement(t *testing.T) {
12 t.Parallel()
13
14 t.Run("Empty", func(t *testing.T) {
15 t.Parallel()
16
17 s := []string{}
18 v, err := cryptorand.Element(s)
19 require.Error(t, err)
20 require.ErrorContains(t, err, "slice must have at least one element")
21 require.Empty(t, v)
22 })
23
24 t.Run("OK", func(t *testing.T) {
25 t.Parallel()
26
27 // Generate random slices of ints and strings
28 var (
29 ints = make([]int, 20)
30 strings = make([]string, 20)
31 )
32 for i := range ints {
33 v, err := cryptorand.Intn(1024)
34 require.NoError(t, err, "generate random int for test slice")
35 ints[i] = v
36 }
37 for i := range strings {
38 v, err := cryptorand.String(10)
39 require.NoError(t, err, "generate random string for test slice")
40 strings[i] = v
41 }
42
43 // Get a random value from each 20 times.
44 for i := 0; i < 20; i++ {
45 iv, err := cryptorand.Element(ints)
46 require.NoError(t, err, "unexpected error from Element(ints)")
47 t.Logf("random int slice element: %v", iv)
48 require.Contains(t, ints, iv)
49
50 sv, err := cryptorand.Element(strings)
51 require.NoError(t, err, "unexpected error from Element(strings)")
52 t.Logf("random string slice element: %v", sv)
53 require.Contains(t, strings, sv)
54 }
55 })
56}

Callers

nothing calls this directly

Calls 8

ElementFunction · 0.92
IntnFunction · 0.92
StringFunction · 0.92
RunMethod · 0.65
LogfMethod · 0.65
ErrorMethod · 0.45
EmptyMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected