mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 12:14:48 +00:00
This PR adds the checkmetrics scripts that will be used for the kata metrics CI. Fixes #7160 Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
98 lines
2.6 KiB
Go
98 lines
2.6 KiB
Go
// Copyright (c) 2023 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package main
|
|
|
|
import (
|
|
"math"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCalculate(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
var m = metrics{
|
|
Name: "name",
|
|
Description: "desc",
|
|
Type: "type",
|
|
CheckType: "json",
|
|
CheckVar: "Results",
|
|
MinVal: 1.9,
|
|
MaxVal: 2.1,
|
|
Gap: 0,
|
|
stats: statistics{
|
|
Results: []float64{1.0, 2.0, 3.0},
|
|
Iterations: 3,
|
|
Mean: 0.0,
|
|
Min: 0.0,
|
|
Max: 0.0,
|
|
Range: 0.0,
|
|
RangeSpread: 0.0,
|
|
SD: 0.0,
|
|
CoV: 0.0}}
|
|
|
|
m.calculate()
|
|
|
|
// Constants here calculated from info coded in struct above
|
|
|
|
// We do a little funky math on Gap to round it to within 0.1% - as the actual
|
|
// gap math gave us 10.000000000000009 ...
|
|
roundedGap := math.Round(m.Gap/0.001) * 0.001
|
|
assert.Equal(10.0, roundedGap, "Should be equal")
|
|
assert.Equal(2.0, m.stats.Mean, "Should be equal")
|
|
assert.Equal(1.0, m.stats.Min, "Should be equal")
|
|
assert.Equal(3.0, m.stats.Max, "Should be equal")
|
|
assert.Equal(2.0, m.stats.Range, "Should be equal")
|
|
assert.Equal(200.0, m.stats.RangeSpread, "Should be equal")
|
|
assert.Equal(0.816496580927726, m.stats.SD, "Should be equal")
|
|
assert.Equal(40.8248290463863, m.stats.CoV, "Should be equal")
|
|
}
|
|
|
|
// Test that only setting a % range works
|
|
func TestCalculate2(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
var m = metrics{
|
|
Name: "name",
|
|
Description: "desc",
|
|
Type: "type",
|
|
CheckType: "json",
|
|
CheckVar: "Results",
|
|
//MinVal: 1.9,
|
|
//MaxVal: 2.1,
|
|
MinPercent: 20,
|
|
MaxPercent: 25,
|
|
MidVal: 2.0,
|
|
Gap: 0,
|
|
stats: statistics{
|
|
Results: []float64{1.0, 2.0, 3.0},
|
|
Iterations: 3,
|
|
Mean: 0.0,
|
|
Min: 0.0,
|
|
Max: 0.0,
|
|
Range: 0.0,
|
|
RangeSpread: 0.0,
|
|
SD: 0.0,
|
|
CoV: 0.0}}
|
|
|
|
m.calculate()
|
|
|
|
// Constants here calculated from info coded in struct above
|
|
|
|
// We do a little funky math on Gap to round it to within 0.1% - as the actual
|
|
// gap math gave us 10.000000000000009 ...
|
|
roundedGap := math.Round(m.Gap/0.001) * 0.001
|
|
// This is not a nice (20+25), as the 'midval' will skew it.
|
|
assert.Equal(43.902, roundedGap, "Should be equal")
|
|
assert.Equal(2.0, m.stats.Mean, "Should be equal")
|
|
assert.Equal(1.0, m.stats.Min, "Should be equal")
|
|
assert.Equal(3.0, m.stats.Max, "Should be equal")
|
|
assert.Equal(2.0, m.stats.Range, "Should be equal")
|
|
assert.Equal(200.0, m.stats.RangeSpread, "Should be equal")
|
|
assert.Equal(0.816496580927726, m.stats.SD, "Should be equal")
|
|
assert.Equal(40.8248290463863, m.stats.CoV, "Should be equal")
|
|
}
|