Upstream montanaflynn/stats state of the touched files before e61f9a13db

This commit is contained in:
upstream committed 2026-09-04 02:56:39 +02:00
1 parent 85d956c08c
commit bc246e8d16
2 files changed
+7 -53

No files matched your search

+7 -26
View File
@@ -32,20 +32,10 @@ func Quartile(input Float64Data) (Quartiles, error) {
c2 = c1 + 1
}
// Empty halves make Median return ErrEmptyInput; propagate it instead of
// returning NaN quartiles.
Q1, err := Median(copy[:c1])
if err != nil {
return Quartiles{}, err
}
Q2, err := Median(copy)
if err != nil {
return Quartiles{}, err
}
Q3, err := Median(copy[c2:])
if err != nil {
return Quartiles{}, err
}
// Find the Medians with the cutoff points
Q1, _ := Median(copy[:c1])
Q2, _ := Median(copy)
Q3, _ := Median(copy[c2:])
return Quartiles{Q1, Q2, Q3}, nil
@@ -56,10 +46,7 @@ func InterQuartileRange(input Float64Data) (float64, error) {
if input.Len() == 0 {
return math.NaN(), EmptyInputErr
}
qs, err := Quartile(input)
if err != nil {
return math.NaN(), err
}
qs, _ := Quartile(input)
iqr := qs.Q3 - qs.Q1
return iqr, nil
}
@@ -69,10 +56,7 @@ func Midhinge(input Float64Data) (float64, error) {
if input.Len() == 0 {
return math.NaN(), EmptyInputErr
}
qs, err := Quartile(input)
if err != nil {
return math.NaN(), err
}
qs, _ := Quartile(input)
mh := (qs.Q1 + qs.Q3) / 2
return mh, nil
}
@@ -84,10 +68,7 @@ func Trimean(input Float64Data) (float64, error) {
}
c := sortedCopy(input)
q, err := Quartile(c)
if err != nil {
return math.NaN(), err
}
q, _ := Quartile(c)
return (q.Q1 + (q.Q2 * 2) + q.Q3) / 4, nil
}
-27
View File
@@ -41,18 +41,6 @@ func TestQuartile(t *testing.T) {
}
}
func TestQuartileSingleElement(t *testing.T) {
// A single element has no halves, so Quartile must error rather than
// return NaN with a nil error.
quartiles, err := stats.Quartile([]float64{1})
if err == nil {
t.Errorf("Single element slice should have returned an error")
}
if quartiles != (stats.Quartiles{}) {
t.Errorf("Errored result should be the zero Quartiles value, got %+v", quartiles)
}
}
func TestInterQuartileRange(t *testing.T) {
s1 := []float64{102, 104, 105, 107, 108, 109, 110, 112, 115, 116, 118}
iqr, _ := stats.InterQuartileRange(s1)
@@ -65,11 +53,6 @@ func TestInterQuartileRange(t *testing.T) {
if err == nil {
t.Errorf("Empty slice should have returned an error")
}
_, err = stats.InterQuartileRange([]float64{1})
if err == nil {
t.Errorf("Single element slice should have returned an error")
}
}
func TestMidhinge(t *testing.T) {
@@ -84,11 +67,6 @@ func TestMidhinge(t *testing.T) {
if err == nil {
t.Errorf("Empty slice should have returned an error")
}
_, err = stats.Midhinge([]float64{1})
if err == nil {
t.Errorf("Single element slice should have returned an error")
}
}
func TestTrimean(t *testing.T) {
@@ -103,9 +81,4 @@ func TestTrimean(t *testing.T) {
if err == nil {
t.Errorf("Empty slice should have returned an error")
}
_, err = stats.Trimean([]float64{1})
if err == nil {
t.Errorf("Single element slice should have returned an error")
}
}