-
Notifications
You must be signed in to change notification settings - Fork 0
/
ml_arith_test.go
89 lines (77 loc) · 1.93 KB
/
ml_arith_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright 2016, Marc Lavergne <mlavergn@gmail.com>. All rights reserved.
// Use of this source code is governed by the MIT
// license that can be found in the LICENSE file.
package goml
import (
"testing"
)
func TestAddVV(t *testing.T) {
x := Add(Vector{1, 2, 3}, Vector{10, 100, 1000})
exp := Vector{11, 102, 1003}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestSubVV(t *testing.T) {
x := Sub(Vector{1, 2, 3}, Vector{10, 100, 1000})
exp := Vector{-9, -98, -997}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestMulVS(t *testing.T) {
x := Mul(10.0, Vector{1, 2, 3})
exp := Vector{10, 20, 30}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestDivVS(t *testing.T) {
x := Div(Vector{1, 2, 3}, 2.0)
exp := Vector{0.5, 1.0, 1.5}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestAddMM(t *testing.T) {
x := Add(Matrix{{1, 2}, {3, 4}, {5, 6}}, Matrix{{6, 5}, {4, 3}, {2, 1}})
exp := Matrix{{7, 7}, {7, 7}, {7, 7}}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestSubMM(t *testing.T) {
x := Sub(Matrix{{1, 2}, {3, 4}, {5, 6}}, Matrix{{6, 5}, {4, 3}, {2, 1}})
exp := Matrix{{-5, -3}, {-1, 1}, {3, 5}}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestMulMM(t *testing.T) {
x := Mul(Matrix{{1, 2}, {3, 4}, {5, 6}}, Matrix{{10}, {100}})
exp := Matrix{{210}, {430}, {650}}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestMulVM(t *testing.T) {
x := Mul(Vector{1, 2}, Matrix{{1, 2, 3}, {4, 5, 6}})
exp := Vector{9, 12, 15}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestMulSM(t *testing.T) {
x := Mul(2.0, Matrix{{1, 2}, {3, 4}, {5, 6}})
exp := Matrix{{2, 4}, {6, 8}, {10, 12}}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}
func TestDivMS(t *testing.T) {
x := Div(Matrix{{1, 2}, {3, 4}, {5, 6}}, 2.0)
exp := Matrix{{0.5, 1.0}, {1.5, 2.0}, {2.5, 3.0}}
if !Equal(x, exp) {
t.Errorf("%v != %v", x, exp)
}
}