52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package model
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"testing"
|
|
)
|
|
|
|
func TestGetRandom_A(t *testing.T) {
|
|
src := rand.NewSource(0)
|
|
t.Log(getRandomN(1, 10, 1, rand.New(src)))
|
|
t.Log(getRandomN(1, 10, 1, rand.New(src)))
|
|
t.Log(getRandomN(1, 10, 2, rand.New(src)))
|
|
}
|
|
|
|
func TestExecuteModelA(t *testing.T) {
|
|
var (
|
|
avg float32
|
|
nExperiments = 10000
|
|
results = make([]*ExperimentResult, nExperiments)
|
|
|
|
totalNodes = 10
|
|
tasks = 100
|
|
badNodes = 3
|
|
taskPoolSize = 33
|
|
)
|
|
for i := 0; i < nExperiments; i++ {
|
|
results[i] = ExecuteModelA(totalNodes, tasks, badNodes, taskPoolSize)
|
|
avg += float32(results[i].ViolatedCounter)
|
|
}
|
|
avg = avg / float32(nExperiments)
|
|
fmt.Printf("(%d) V=%d N=%d/%d AvgFailedV = %f (%.2f%%)\n", nExperiments, tasks, totalNodes, badNodes, avg, avg/float32(tasks)*100.00)
|
|
}
|
|
|
|
func TestExecuteModelB(t *testing.T) {
|
|
var (
|
|
avg float32
|
|
nExperiments = 10000
|
|
results = make([]*ExperimentResult, nExperiments)
|
|
|
|
totalNodes = 10
|
|
tasks = 100
|
|
badNodes = 3
|
|
taskPoolSize = 33
|
|
)
|
|
for i := 0; i < nExperiments; i++ {
|
|
results[i] = ExecuteModelB(totalNodes, tasks, badNodes, taskPoolSize)
|
|
avg += float32(results[i].ViolatedCounter)
|
|
}
|
|
avg = avg / float32(nExperiments)
|
|
fmt.Printf("(%d) V=%d N=%d/%d AvgFailedV = %f (%.2f%%)\n", nExperiments, tasks, totalNodes, badNodes, avg, avg/float32(tasks)*100.00)
|
|
}
|