-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathelementwise_test.rb
95 lines (76 loc) · 2.45 KB
/
elementwise_test.rb
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
90
91
92
93
94
95
require_relative 'test_helper'
class NMatrix::ElementWiseTest < Minitest::Test
def setup
@left = NMatrix.new [2,2],[ 1, 4.2, 3, 4.2]
@right = NMatrix.new [2,2],[1.9, 5.2, 3.1, 4]
@complex_left = NMatrix.new [2,2],[1 + 2i, 4.2 + 5i, 3 + 0i, 4.2 - 7i], :nm_complex32
@complex_right = NMatrix.new [2,2],[1 + 2i, 4.2 + 5i, 3 + 0i, 4.2 - 7i], :nm_complex32
@boolean_left = NMatrix.new [2,2],[true, false, true, false], :nm_bool
@boolean_right = NMatrix.new [2,2],[true, true, false, false], :nm_bool
@int = NMatrix.new [2, 2], [1, 2, 3, 4], :nm_int
end
def test_add
result = NMatrix.new [2,2],[2.9, 9.4, 6.1, 8.2]
answer = @left + @right
assert_equal answer, result
result = NMatrix.new [2,2],[1.1, 4.3, 3.1, 4.3]
answer = @left + 0.1
assert_equal answer, result
end
def test_add_bool
result = NMatrix.new [2,2],[true, true, true, false], :nm_bool
answer = @boolean_left + @boolean_right
assert_equal answer, result
result = NMatrix.new [2,2],[true, true, true, true], :nm_bool
answer = @boolean_left + true
assert_equal answer, result
result = NMatrix.new [2,2],[true, false, true, false], :nm_bool
answer = @boolean_left + false
assert_equal answer, result
end
def test_add_complex
result = NMatrix.new [2,2],[2.9, 9.4, 6.1, 8.2]
answer = @complex_left + @complex_right
skip("equality assertion missing for complex dtype")
end
def test_subtract
result = NMatrix.new [2,2],[-0.9, -1, -0.1, 0.2]
answer = @left - @right
assert_equal answer, result
end
def test_sum
result = 12.4
answer = @left.sum
assert_in_delta answer, result, 0.01
end
def test_sum_bool
result = 2
answer = @boolean_left.sum
assert_equal answer, result
end
def test_sum_int
result = 10
answer = @int.sum
assert_equal answer, result
end
def test_sum_complex
result = (12.4 + 0.0i)
answer = @complex_left.sum
assert_in_delta answer, result, 0.01
end
def test_sin
result = NMatrix.new [2,2], @left.elements.map{ |x| Math.send(:sin, x) }
answer = @left.sin
assert_equal answer, result
end
def test_cos
result = NMatrix.new [2,2], @left.elements.map{ |x| Math.send(:cos, x) }
answer = @left.cos
assert_equal answer, result
end
def test_tan
result = NMatrix.new [2,2], @left.elements.map{ |x| Math.send(:tan, x) }
answer = @left.tan
assert_equal answer, result
end
end