26 lines
726 B
Go
26 lines
726 B
Go
|
|
package returns
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
"testing/quick"
|
||
|
|
)
|
||
|
|
|
||
|
|
//go:generate go run asm.go -out returns.s -stubs stub.go
|
||
|
|
|
||
|
|
func TestFunctionsEqual(t *testing.T) {
|
||
|
|
cases := []struct {
|
||
|
|
f, g interface{}
|
||
|
|
}{
|
||
|
|
{Interval, func(s, n uint64) (uint64, uint64) { return s, s + n }},
|
||
|
|
{Butterfly, func(x0, x1 float64) (float64, float64) { return x0 + x1, x0 - x1 }},
|
||
|
|
{Septuple, func(b byte) [7]byte { return [...]byte{b, b, b, b, b, b, b} }},
|
||
|
|
{CriticalLine, func(t float64) complex128 { return complex(0.5, t) }},
|
||
|
|
{NewStruct, func(w uint16, p [2]float64, q uint64) Struct { return Struct{Word: w, Point: p, Quad: q} }},
|
||
|
|
}
|
||
|
|
for _, c := range cases {
|
||
|
|
if err := quick.CheckEqual(c.f, c.g, nil); err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|