summaryrefslogtreecommitdiff
path: root/ms/ms_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'ms/ms_test.go')
-rw-r--r--ms/ms_test.go431
1 files changed, 0 insertions, 431 deletions
diff --git a/ms/ms_test.go b/ms/ms_test.go
deleted file mode 100644
index 34817d0..0000000
--- a/ms/ms_test.go
+++ /dev/null
@@ -1,431 +0,0 @@
-package ms
-
-import (
- "reflect"
- "testing"
-
- "github.com/network-quality/goresponsiveness/utilities"
-)
-
-func Test_InfiniteValues(test *testing.T) {
- series := NewInfiniteMathematicalSeries[float64]()
- shouldMatch := make([]float64, 0)
- previous := float64(1.0)
- for range utilities.Iota(1, 80) {
- previous *= 1.059
- series.AddElement(float64(previous))
- shouldMatch = append(shouldMatch, previous)
- }
-
- if !reflect.DeepEqual(shouldMatch, series.Values()) {
- test.Fatalf("Values() on infinite mathematical series does not work.")
- }
-}
-
-func Test_InfiniteSequentialIncreasesAlwaysLessThan(test *testing.T) {
- series := NewInfiniteMathematicalSeries[float64]()
- previous := float64(1.0)
- for range utilities.Iota(1, 80) {
- previous *= 1.059
- series.AddElement(float64(previous))
- }
- if islt, maxSeqIncrease := series.AllSequentialIncreasesLessThan(6.0); !islt {
- test.Fatalf(
- "(infinite) Sequential increases are not always less than 6.0 (%f).",
- maxSeqIncrease,
- )
- }
-}
-
-func Test_CappedTooFewInstantsSequentialIncreasesLessThanAlwaysFalse(test *testing.T) {
- series := NewCappedMathematicalSeries[float64](500)
- series.AddElement(0.0)
- if islt, _ := series.AllSequentialIncreasesLessThan(6.0); islt {
- test.Fatalf(
- "(infinite) 0 elements in a series should always yield false when asking if sequential increases are less than a value.",
- )
- }
-}
-
-func Test_Infinite_degenerate_percentile_too_high(test *testing.T) {
- series := NewInfiniteMathematicalSeries[int]()
- if series.Percentile(101) != 0 {
- test.Fatalf("(infinite) Series percentile of 101 failed.")
- }
-}
-
-func Test_Infinite_degenerate_percentile_too_low(test *testing.T) {
- series := NewInfiniteMathematicalSeries[int]()
- if series.Percentile(-1) != 0 {
- test.Fatalf("(infinite) Series percentile of -1 failed.")
- }
-}
-
-func Test_Infinite90_percentile(test *testing.T) {
- var expected int64 = 10
- series := NewInfiniteMathematicalSeries[int64]()
- series.AddElement(10)
- series.AddElement(9)
- series.AddElement(8)
- series.AddElement(7)
- series.AddElement(6)
- series.AddElement(5)
- series.AddElement(4)
- series.AddElement(3)
- series.AddElement(2)
- series.AddElement(1)
-
- if series.Percentile(90) != expected {
- test.Fatalf(
- "(infinite) Series 90th percentile of 0 ... 10 failed: Expected: %v; Actual: %v.", expected,
- series.Percentile(90),
- )
- }
-}
-
-func Test_Infinite90_percentile_reversed(test *testing.T) {
- var expected int64 = 10
- series := NewInfiniteMathematicalSeries[int64]()
- series.AddElement(1)
- series.AddElement(2)
- series.AddElement(3)
- series.AddElement(4)
- series.AddElement(5)
- series.AddElement(6)
- series.AddElement(7)
- series.AddElement(8)
- series.AddElement(9)
- series.AddElement(10)
-
- if series.Percentile(90) != expected {
- test.Fatalf(
- "(infinite) Series 90th percentile of 0 ... 10 failed: Expected %v; Actual: %v.", expected,
- series.Percentile(90),
- )
- }
-}
-
-func Test_Infinite50_percentile_jumbled(test *testing.T) {
- var expected int64 = 15
- series := NewInfiniteMathematicalSeries[int64]()
- series.AddElement(7)
- series.AddElement(2)
- series.AddElement(15)
- series.AddElement(27)
- series.AddElement(5)
- series.AddElement(52)
- series.AddElement(18)
- series.AddElement(23)
- series.AddElement(11)
- series.AddElement(12)
-
- if series.Percentile(50) != expected {
- test.Fatalf(
- "(infinite) Series 50 percentile of a jumble of numbers failed: Expected %v; Actual: %v.", expected,
- series.Percentile(50),
- )
- }
-}
-
-func Test_InfiniteDoubleSidedTrimmedMean_jumbled(test *testing.T) {
- expected := 16
- series := NewInfiniteMathematicalSeries[int64]()
- series.AddElement(7)
- series.AddElement(2)
- series.AddElement(15)
- series.AddElement(27)
- series.AddElement(5)
- series.AddElement(5)
- series.AddElement(52)
- series.AddElement(18)
- series.AddElement(23)
- series.AddElement(11)
- series.AddElement(22)
- series.AddElement(17)
- series.AddElement(14)
- series.AddElement(9)
- series.AddElement(100)
- series.AddElement(72)
- series.AddElement(91)
- series.AddElement(43)
- series.AddElement(37)
- series.AddElement(62)
-
- trimmed := series.DoubleSidedTrim(10)
-
- if trimmed.Len() != expected {
- test.Fatalf(
- "Capped series is not of the proper size. Expected %v and got %v",
- expected,
- trimmed.Len(),
- )
- }
-
- prev := int64(0)
- for _, v := range trimmed.Values() {
- if !(prev <= v) {
- test.Fatalf("Not sorted: %v is not less than or equal to %v\n", prev, v)
- }
- prev = v
- }
-}
-
-func Test_CappedSequentialIncreasesAlwaysLessThan(test *testing.T) {
- series := NewCappedMathematicalSeries[float64](40)
- previous := float64(1.0)
- for range utilities.Iota(1, 80) {
- previous *= 1.059
- series.AddElement(float64(previous))
- }
- if islt, maxSeqIncrease := series.AllSequentialIncreasesLessThan(6.0); !islt {
- test.Fatalf("Sequential increases are not always less than 6.0 (%f).", maxSeqIncrease)
- }
-}
-
-func Test_CappedSequentialIncreasesAlwaysLessThanWithWraparound(test *testing.T) {
- series := NewCappedMathematicalSeries[float64](20)
- previous := float64(1.0)
- for range utilities.Iota(1, 20) {
- previous *= 1.15
- series.AddElement(float64(previous))
- }
-
- // All those measurements should be ejected by the following
- // loop!
- for range utilities.Iota(1, 20) {
- previous *= 1.10
- series.AddElement(float64(previous))
- }
-
- if islt, maxSeqIncrease := series.AllSequentialIncreasesLessThan(11.0); !islt {
- test.Fatalf(
- "Sequential increases are not always less than 11.0 in wraparound situation (%f v 11.0).",
- maxSeqIncrease,
- )
- }
-}
-
-func Test_CappedSequentialIncreasesAlwaysLessThanWithWraparoundInverse(test *testing.T) {
- series := NewCappedMathematicalSeries[float64](20)
- previous := float64(1.0)
- for range utilities.Iota(1, 20) {
- previous *= 1.15
- series.AddElement(float64(previous))
- }
-
- // *Not* all those measurements should be ejected by the following
- // loop!
- for range utilities.Iota(1, 15) {
- previous *= 1.10
- series.AddElement(float64(previous))
- }
-
- if islt, maxSeqIncrease := series.AllSequentialIncreasesLessThan(11.0); islt {
- test.Fatalf(
- "Sequential increases are (unexpectedly) always less than 11.0 in wraparound situation: %f v 11.0.",
- maxSeqIncrease,
- )
- }
-}
-
-func Test_CappedStandardDeviationCalculation(test *testing.T) {
- expected := 2.93
- series := NewCappedMathematicalSeries[float64](5)
- // 5.7, 1.0, 8.6, 7.4, 2.2
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(5.7)
- series.AddElement(1.0)
- series.AddElement(8.6)
- series.AddElement(7.4)
- series.AddElement(2.2)
-
- if _, sd := series.StandardDeviation(); !utilities.ApproximatelyEqual(sd, expected, 0.01) {
- test.Fatalf("Standard deviation max calculation failed: Expected: %v; Actual: %v.", expected, sd)
- } else {
- test.Logf("Standard deviation calculation result: %v", sd)
- }
-}
-
-func Test_CappedStandardDeviationCalculation2(test *testing.T) {
- expected := 1.41
- series := NewCappedMathematicalSeries[float64](5)
- series.AddElement(8)
- series.AddElement(9)
- series.AddElement(10)
- series.AddElement(11)
- series.AddElement(12)
-
- if _, sd := series.StandardDeviation(); !utilities.ApproximatelyEqual(sd, expected, 0.01) {
- test.Fatalf("Standard deviation max calculation failed: Expected: %v; Actual: %v.", expected, sd)
- } else {
- test.Logf("Standard deviation calculation result: %v", sd)
- }
-}
-
-func Test_CappedRotatingValues(test *testing.T) {
- series := NewCappedMathematicalSeries[int](5)
-
- series.AddElement(1)
- series.AddElement(2)
- series.AddElement(3)
- series.AddElement(4)
- series.AddElement(5)
-
- series.AddElement(6)
- series.AddElement(7)
-
- if !reflect.DeepEqual([]int{6, 7, 3, 4, 5}, series.Values()) {
- test.Fatalf("Adding values does not properly erase earlier values.")
- }
-}
-
-func Test_CappedLen(test *testing.T) {
- series := NewCappedMathematicalSeries[int](5)
-
- series.AddElement(1)
- series.AddElement(2)
- series.AddElement(3)
- series.AddElement(4)
- series.AddElement(5)
-
- series.AddElement(6)
- series.AddElement(7)
-
- if series.Len() != 5 {
- test.Fatalf("Series size calculations failed.")
- }
-}
-
-func Test_Capped_degenerate_percentile_too_high(test *testing.T) {
- series := NewCappedMathematicalSeries[int](21)
- if series.Percentile(101) != 0 {
- test.Fatalf("Series percentile of 101 failed.")
- }
-}
-
-func Test_Capped_degenerate_percentile_too_low(test *testing.T) {
- series := NewCappedMathematicalSeries[int](21)
- if series.Percentile(-1) != 0 {
- test.Fatalf("Series percentile of -1 failed.")
- }
-}
-
-func Test_Capped90_percentile(test *testing.T) {
- var expected int = 10
- series := NewCappedMathematicalSeries[int](10)
- series.AddElement(10)
- series.AddElement(9)
- series.AddElement(8)
- series.AddElement(7)
- series.AddElement(6)
- series.AddElement(5)
- series.AddElement(4)
- series.AddElement(3)
- series.AddElement(2)
- series.AddElement(1)
-
- if series.Percentile(90) != expected {
- test.Fatalf(
- "Series 90th percentile of 0 ... 10 failed: Expected %v got %v.", expected,
- series.Percentile(90),
- )
- }
-}
-
-func Test_Capped90_percentile_reversed(test *testing.T) {
- series := NewCappedMathematicalSeries[int64](10)
- series.AddElement(1)
- series.AddElement(2)
- series.AddElement(3)
- series.AddElement(4)
- series.AddElement(5)
- series.AddElement(6)
- series.AddElement(7)
- series.AddElement(8)
- series.AddElement(9)
- series.AddElement(10)
-
- if series.Percentile(90) != 10 {
- test.Fatalf(
- "Series 90th percentile of 0 ... 10 failed: Expected 10 got %v.",
- series.Percentile(90),
- )
- }
-}
-
-func Test_Capped50_percentile_jumbled(test *testing.T) {
- var expected int64 = 15
- series := NewCappedMathematicalSeries[int64](10)
- series.AddElement(7)
- series.AddElement(2)
- series.AddElement(15)
- series.AddElement(27)
- series.AddElement(5)
- series.AddElement(52)
- series.AddElement(18)
- series.AddElement(23)
- series.AddElement(11)
- series.AddElement(12)
-
- if series.Percentile(50) != expected {
- test.Fatalf(
- "Series 50 percentile of a jumble of numbers failed: Expected %v got %v.", expected,
- series.Percentile(50),
- )
- }
-}
-
-func Test_CappedDoubleSidedTrimmedMean_jumbled(test *testing.T) {
- expected := 8
- series := NewCappedMathematicalSeries[int64](10)
- series.AddElement(7)
- series.AddElement(2)
- series.AddElement(15)
- series.AddElement(27)
- series.AddElement(5)
- series.AddElement(5)
- series.AddElement(52)
- series.AddElement(18)
- series.AddElement(23)
- series.AddElement(11)
- series.AddElement(12)
-
- trimmed := series.DoubleSidedTrim(10)
-
- if trimmed.Len() != expected {
- test.Fatalf(
- "Capped series is not of the proper size. Expected %v and got %v",
- expected,
- trimmed.Len(),
- )
- }
-
- prev := int64(0)
- for _, v := range trimmed.Values() {
- if !(prev <= v) {
- test.Fatalf("Not sorted: %v is not less than or equal to %v\n", prev, v)
- }
- prev = v
- }
-}
-
-func Test_CappedAverage(test *testing.T) {
- expected := 1.0082230220488836e+08
- series := NewCappedMathematicalSeries[float64](4)
- series.AddElement(9.94747772516195e+07)
- series.AddElement(9.991286984703423e+07)
- series.AddElement(1.0285437111086299e+08)
- series.AddElement(1.0104719061003672e+08)
- if average := series.CalculateAverage(); !utilities.ApproximatelyEqual(average, 0.01, expected) {
- test.Fatalf(
- "Expected: %v; Actual: %v.", average, expected,
- )
- }
-}