Files
gio/ui/internal/fling/extrapolation_test.go
T
Elias Naur e6f0e0582d ui/gesture,ui/internal/fling: extract fling logic into its own package
We're going to re-use fling extrapolation and animation for Wayland touchpads.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-09-13 18:35:38 +02:00

44 lines
749 B
Go

// SPDX-License-Identifier: Unlicense OR MIT
package fling
import "testing"
func TestDecomposeQR(t *testing.T) {
A := &matrix{
rows: 3, cols: 3,
data: []float32{
12, 6, -4,
-51, 167, 24,
4, -68, -41,
},
}
Q, Rt, ok := decomposeQR(A)
if !ok {
t.Fatal("decomposeQR failed")
}
R := Rt.transpose()
QR := Q.mul(R)
if !A.approxEqual(QR) {
t.Log("A\n", A)
t.Log("Q\n", Q)
t.Log("R\n", R)
t.Log("QR\n", QR)
t.Fatal("Q*R not approximately equal to A")
}
}
func TestFit(t *testing.T) {
X := []float32{-1, 0, 1}
Y := []float32{2, 0, 2}
got, ok := polyFit(X, Y)
if !ok {
t.Fatal("polyFit failed")
}
want := coefficients{0, 0, 2}
if !got.approxEqual(want) {
t.Fatalf("polyFit: got %v want %v", got, want)
}
}