ruby-gsl-ngx 0.2.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/test/test_gsl.rb ADDED
@@ -0,0 +1,11 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ require 'test/unit'
5
+
6
+ # Add your testcases here
7
+
8
+ require 'vector_test'
9
+ require 'matrix_test'
10
+ require 'rng_test'
11
+ require 'test_special'
@@ -0,0 +1,21 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
5
+ $:.unshift File.join(File.dirname(__FILE__),'..','ext')
6
+
7
+ require 'test/unit'
8
+ require 'gslng'
9
+ Math.extend(GSLng::Special)
10
+
11
+ class TestSpecial < Test::Unit::TestCase
12
+ def test_trig
13
+ assert_equal(0, Math.angle_restrict_symm(0))
14
+ assert_equal(Math::PI, Math.angle_restrict_symm(Math::PI))
15
+ assert_in_delta(0, Math.angle_restrict_symm(2*Math::PI),1e-15)
16
+
17
+ assert_equal(0, Math.angle_restrict_pos(0))
18
+ assert_equal(Math::PI, Math.angle_restrict_pos(Math::PI))
19
+ assert_in_delta(Math::PI, Math.angle_restrict_pos(-Math::PI),1e-15)
20
+ end
21
+ end
@@ -0,0 +1,145 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+
4
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
5
+ $:.unshift File.join(File.dirname(__FILE__),'..','ext')
6
+
7
+ require 'rubygems'
8
+ require 'test/unit'
9
+ require 'gslng'
10
+
11
+ include GSLng
12
+
13
+ class VectorTest < Test::Unit::TestCase
14
+ def test_initialize
15
+ assert_equal(10, Vector.new(10).size)
16
+ assert_equal(10, Vector.zero(10).size)
17
+ assert(Vector.zero(10).zero?)
18
+ assert_nothing_raised { Vector.random(10) }
19
+ assert_equal(Vector[0], Vector.linspace(0, 1, 1.5))
20
+ assert_equal(Vector[0,1], Vector.linspace(0, 1, 1))
21
+ assert_equal(Vector[0,0.5,1], Vector.linspace(0, 1, 0.5))
22
+ assert_equal(Vector[0,0.7], Vector.linspace(0, 1, 0.7))
23
+ end
24
+
25
+ def test_to_s
26
+ assert_equal("[0.0]", Vector.zero(1).to_s)
27
+ assert_equal("[0.0, 0.0, 0.0]", Vector.zero(3).to_s)
28
+ assert_equal("[0.0, 1.0, 2.0]", Vector.new(3) {|i| i}.to_s)
29
+ assert_equal("[1.0, 2.0, 3.0]", Vector.new(3) {|i| i+1}.to_s)
30
+ assert_equal("[1.0, 2.0, 3.0]", Vector[1,2,3].to_s)
31
+ assert_equal("1.0 2.0 3.0", Vector[1,2,3].join(' '))
32
+ end
33
+
34
+ def test_equal
35
+ assert_equal(Vector[1,2,3], [1,2,3])
36
+ assert_equal(Vector[1,2,3], Vector[1,2,3])
37
+ assert_equal(Vector[0...3], [0,1,2])
38
+ assert_equal(Vector.zero(3), Vector.zero(3))
39
+ assert_not_equal(Vector.zero(4), Vector.zero(3))
40
+
41
+ assert(Vector[1,2,3].eql?(Vector[1,2,3]))
42
+ assert(!Vector[1,2,3].eql?(Vector[1,2,4]))
43
+ end
44
+
45
+ def test_each
46
+ a = Vector[1.1,2.1,3.8].map_array(&:round)
47
+ assert_kind_of(Array, a)
48
+ assert_equal([1,2,4], a)
49
+ assert_equal(Vector[1,2,4],Vector[1.1,2.1,3.8].map!(&:round))
50
+ end
51
+
52
+ def test_copies
53
+ v1 = Vector[1,2,3]
54
+ v2 = Vector[2,3,4]
55
+ assert_not_equal(v1, v2)
56
+ assert_equal(v1.copy(v2), v2)
57
+ assert_equal(v1.dup, v2)
58
+ end
59
+
60
+ def test_stats
61
+ assert_equal(Vector[1, 2, 3, 4, 5].median, 3)
62
+ assert_equal(Vector[1, 2, 3, 4].median, 2.5)
63
+ end
64
+
65
+ def test_sets
66
+ assert_equal(Vector.zero(3).set!(1), Vector[1,1,1])
67
+ assert_equal(Vector.zero(3).set!(1).zero!, Vector.zero(3))
68
+ assert_equal(Vector.zero(3).basis!(1), Vector[0,1,0])
69
+ end
70
+
71
+ def test_operators
72
+ assert_equal(Vector[2,3,4],Vector[1,2,3] + Vector[1,1,1])
73
+ assert_equal(Vector[1,0,3],Vector[1,2,3] * Vector[1,0,1])
74
+ assert_equal(Vector[0,1,2],Vector[1,2,3] - Vector[1,1,1])
75
+ assert_equal(Vector[0.5,1,1.5],Vector[1,2,3] / Vector[2,2,2])
76
+ assert_equal(Vector[3,6,9],Vector[1,2,3] * 3)
77
+ assert_equal(Vector[4,5,6],3 + Vector[1,2,3])
78
+ assert_equal(Vector[4,5,6],Vector[1,2,3] + 3)
79
+ assert_equal(Vector[2,1,0],3 - Vector[1,2,3])
80
+ assert_equal(Vector[-2,-1,0],Vector[1,2,3] - 3)
81
+ assert_equal(Vector[3,6,9],3 * Vector[1,2,3])
82
+ assert_equal(Vector[0.5,1,1.5],Vector[1,2,3] / 2)
83
+ end
84
+
85
+ def test_other
86
+ assert_equal(Matrix[1,2,3], Vector[1,2,3].to_matrix)
87
+ assert_equal(Vector[1,2,3], Vector[1,2,3].to_a)
88
+ assert_equal(Vector[1,2,3], Vector[3,1,2].sort)
89
+ assert_equal(6, Vector[3,1,2].sum)
90
+ assert_equal(Vector[3,1,2].mul_add(Vector[1,0,1],0.5), Vector[3.5,1,2.5])
91
+ assert_equal(3, Vector[2,1,2].norm)
92
+ assert_equal(5, Vector[3,1,2] ^ Vector[1,0,1])
93
+ end
94
+
95
+ def test_minmax
96
+ assert_equal(1, Vector[1,2,3].min)
97
+ assert_equal(3, Vector[1,2,3].max)
98
+ assert_equal([1,3], Vector[1,2,3].minmax)
99
+ assert_equal(0, (Vector[1,2,3]).min_index)
100
+ assert_equal(2, (Vector[1,2,3]).max_index)
101
+ assert_equal([0,2], Vector[1,2,3].minmax_index)
102
+ end
103
+
104
+ def test_set_get
105
+ assert_equal(2, Vector[1,2,3][1])
106
+ #assert_raise { Vector[1,2,3][3] } NOT working in some ruby versions
107
+ assert_equal(3, Vector[1,2,3][-1])
108
+ #assert_raise { Vector[1,2,3][-5] } NOT working in some ruby versions
109
+
110
+ v = Vector[1,2,3]
111
+ v[1] = 3
112
+ assert_equal(Vector[1,3,3], v)
113
+ v[-1] = 0
114
+ assert_equal(Vector[1,3,0], v)
115
+ end
116
+
117
+ def test_view
118
+ v,view = nil,nil
119
+ assert_nothing_raised {
120
+ v = Vector[1,2,3]
121
+ view = v.view
122
+ view[1] = 3
123
+ }
124
+ assert_equal(Vector[1,3,3], v)
125
+ assert_equal(Vector[1,3,3], view)
126
+ assert_equal(Vector[1,3], Vector[0,1,2,3].view(1,nil,2))
127
+ assert_equal(Vector[0,2], Vector[0,1,2,3].view(0,nil,2))
128
+ end
129
+
130
+ def test_wrap
131
+ v = Vector[1,2,8,-1,11]
132
+ assert_equal(Vector[0,0,-1,1,-2],v.wrap!(5))
133
+ assert_equal(Vector[1,2,3,4,1], v)
134
+ end
135
+
136
+ def test_predicate
137
+ assert(Vector[1,2,3].positive?)
138
+ assert(Vector[-1,-2,-3].negative?)
139
+ assert(Vector[0,2,3].nonnegative?)
140
+ assert(Vector[0,2,3] < Vector[1,3,4])
141
+ assert(Vector[0,2,3] <= Vector[0,3,4])
142
+ assert(Vector[1,3,4] > Vector[0,2,3])
143
+ assert(Vector[0,2,3] <= Vector[0,3,4])
144
+ end
145
+ end
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-gsl-ngx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.6.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - ronen barzel
9
+ - v01d
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-04-19 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ffi
17
+ requirement: &70337241943020 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70337241943020
26
+ - !ruby/object:Gem::Dependency
27
+ name: yard
28
+ requirement: &70337241942480 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *70337241942480
37
+ description: Ruby/GSL new-generation wrapper (memory leak fix)
38
+ email:
39
+ - ronen@barzel.org
40
+ executables: []
41
+ extensions:
42
+ - ext/extconf.rb
43
+ extra_rdoc_files:
44
+ - README.rdoc
45
+ - ext/extconf.rb
46
+ - ext/gslng_extensions.cpp
47
+ - ext/plotting.cpp
48
+ - lib/core_extensions/array.rb
49
+ - lib/gslng.rb
50
+ - lib/gslng/backend.rb
51
+ - lib/gslng/backend_components/error_handling.rb
52
+ - lib/gslng/backend_components/matrix.rb
53
+ - lib/gslng/backend_components/rng.rb
54
+ - lib/gslng/backend_components/special.rb
55
+ - lib/gslng/backend_components/stats.rb
56
+ - lib/gslng/backend_components/vector.rb
57
+ - lib/gslng/matrix.rb
58
+ - lib/gslng/matrix_view.rb
59
+ - lib/gslng/plotter.rb
60
+ - lib/gslng/rng/gaussian.rb
61
+ - lib/gslng/rng/rng.rb
62
+ - lib/gslng/rng/uniform.rb
63
+ - lib/gslng/special.rb
64
+ - lib/gslng/vector.rb
65
+ - lib/gslng/vector_view.rb
66
+ files:
67
+ - .gitignore
68
+ - History.txt
69
+ - Manifest
70
+ - README.rdoc
71
+ - Rakefile
72
+ - ext/extconf.rb
73
+ - ext/gslng_extensions.cpp
74
+ - ext/plotting.cpp
75
+ - lib/core_extensions/array.rb
76
+ - lib/gslng.rb
77
+ - lib/gslng/backend.rb
78
+ - lib/gslng/backend_components/error_handling.rb
79
+ - lib/gslng/backend_components/matrix.rb
80
+ - lib/gslng/backend_components/rng.rb
81
+ - lib/gslng/backend_components/special.rb
82
+ - lib/gslng/backend_components/stats.rb
83
+ - lib/gslng/backend_components/vector.rb
84
+ - lib/gslng/matrix.rb
85
+ - lib/gslng/matrix_view.rb
86
+ - lib/gslng/plotter.rb
87
+ - lib/gslng/rng/gaussian.rb
88
+ - lib/gslng/rng/rng.rb
89
+ - lib/gslng/rng/uniform.rb
90
+ - lib/gslng/special.rb
91
+ - lib/gslng/vector.rb
92
+ - lib/gslng/vector_view.rb
93
+ - ruby-gsl-ngx.gemspec
94
+ - test/benchmark.rb
95
+ - test/benchmark_results
96
+ - test/matrix_test.rb
97
+ - test/rng_test.rb
98
+ - test/test_gsl.rb
99
+ - test/test_special.rb
100
+ - test/vector_test.rb
101
+ homepage: http://github.com/ronen/gsl-ng
102
+ licenses: []
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ - ext
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 1.8.12
123
+ signing_key:
124
+ specification_version: 3
125
+ summary: Ruby/GSL new-generation wrapper (memory leak fix)
126
+ test_files:
127
+ - test/benchmark.rb
128
+ - test/benchmark_results
129
+ - test/matrix_test.rb
130
+ - test/rng_test.rb
131
+ - test/test_gsl.rb
132
+ - test/test_special.rb
133
+ - test/vector_test.rb
134
+ has_rdoc: