// Copyright (c) 2026 Petr BalvĂ­n (https://petrbalvin.org) // SPDX-License-Identifier: MIT package stats import ( "testing" "sourcedock.dev/petrbalvin/tensor/internal/core" ) // mustFloats builds a float array, failing the test on a bad shape. // Without an explicit shape it defaults to a vector of len(vals). func mustFloats(t *testing.T, vals []float64, shape ...int) *core.Array { t.Helper() if len(shape) == 0 { shape = []int{len(vals)} } a, err := core.FromFloats(vals, shape...) if err != nil { t.Fatalf("FromFloats(%v, %v): %v", vals, shape, err) } return a } // mustFromFloats builds a float array, failing the test on a bad shape. func mustFromFloats(t *testing.T, vals []float64, shape ...int) *core.Array { t.Helper() a, err := core.FromFloats(vals, shape...) if err != nil { t.Fatalf("FromFloats(%v, %v): %v", vals, shape, err) } return a } // mustFromComplexes builds a complex array, failing the test on a bad shape. func mustFromComplexes(t *testing.T, vals []complex128, shape ...int) *core.Array { t.Helper() a, err := core.FromComplexes(vals, shape...) if err != nil { t.Fatalf("FromComplexes(%v, %v): %v", vals, shape, err) } return a } // mustComplexes builds a complex array, failing the test on a bad shape. func mustComplexes(t *testing.T, vals []complex128, shape ...int) *core.Array { t.Helper() a, err := core.FromComplexes(vals, shape...) if err != nil { t.Fatalf("FromComplexes(%v, %v): %v", vals, shape, err) } return a } // mustFromInts builds an int array, failing the test on a bad shape. func mustFromInts(t *testing.T, vals []int64, shape ...int) *core.Array { t.Helper() a, err := core.FromInts(vals, shape...) if err != nil { t.Fatalf("FromInts(%v, %v): %v", vals, shape, err) } return a }