1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package resolver
- import (
- "strconv"
- "testing"
- "zero/core/mathx"
- "github.com/stretchr/testify/assert"
- )
- func TestSubset(t *testing.T) {
- tests := []struct {
- name string
- set int
- sub int
- }{
- {
- name: "more vals to subset",
- set: 100,
- sub: 36,
- },
- {
- name: "less vals to subset",
- set: 100,
- sub: 200,
- },
- }
- for _, test := range tests {
- t.Run(test.name, func(t *testing.T) {
- var vals []string
- for i := 0; i < test.set; i++ {
- vals = append(vals, strconv.Itoa(i))
- }
- m := make(map[interface{}]int)
- for i := 0; i < 1000; i++ {
- set := subset(append([]string(nil), vals...), test.sub)
- for _, val := range set {
- m[val]++
- }
- }
- assert.True(t, mathx.CalcEntropy(m) > 0.95)
- })
- }
- }
- func TestSubsetLess(t *testing.T) {
- var vals []string
- for i := 0; i < 100; i++ {
- vals = append(vals, strconv.Itoa(i))
- }
- m := make(map[interface{}]int)
- for i := 0; i < 1000; i++ {
- set := subset(append([]string(nil), vals...), 200)
- for _, val := range set {
- m[val]++
- }
- }
- assert.True(t, mathx.CalcEntropy(m) > 0.95)
- }
|