Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • slidy
  • wobbly
3 results

random_test.go

Blame
  • random_test.go 1.18 KiB
    package main
    
    import (
    	"fmt"
    	"testing"
    )
    
    func TestRandom(t *testing.T) {
    	n := 10000
    	res := make([]int, 10)
    	for i := 0; i < n; i++ {
    		res[Random(0, len(res)-1)]++
    	}
    
    	for i, v := range res {
    		fmt.Printf("%d %.1f%%\n", i, float64(v)/float64(n)*100)
    	}
    
    }
    
    func TestMapIterationOrder(t *testing.T) {
    	n := 10000
    	res := make([]int, 10)
    	m := map[int]struct{}{
    		0: struct{}{},
    		1: struct{}{},
    		2: struct{}{},
    		3: struct{}{},
    		4: struct{}{},
    		5: struct{}{},
    		6: struct{}{},
    		7: struct{}{},
    		8: struct{}{},
    		9: struct{}{},
    	}
    	for i := 0; i < n; i++ {
    		for k := range m {
    			res[k]++
    			break
    		}
    	}
    
    	for i, v := range res {
    		fmt.Printf("%d %.1f%%\n", i, float64(v)/float64(n)*100)
    	}
    
    }
    
    func TestRandomMapIterationOrder(t *testing.T) {
    	n := 10000
    	res := make([]int, 10)
    	m := map[int]struct{}{
    		0: struct{}{},
    		1: struct{}{},
    		2: struct{}{},
    		3: struct{}{},
    		4: struct{}{},
    		5: struct{}{},
    		6: struct{}{},
    		7: struct{}{},
    		8: struct{}{},
    		9: struct{}{},
    	}
    	for i := 0; i < n; i++ {
    		j := Random(0, len(m)-1)
    		for k := range m {
    			if j == 0 {
    				res[k]++
    				break
    			}
    			j--
    		}
    	}
    
    	for i, v := range res {
    		fmt.Printf("%d %.1f%%\n", i, float64(v)/float64(n)*100)
    	}
    
    }