mdarray 0.5.5-java → 0.5.5.1-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0b09d88dc54e6026fcc58d8fb89f0f4d37e62a37
4
+ data.tar.gz: a39345c9195c40cf34547af94c6bdd561871e549
5
+ SHA512:
6
+ metadata.gz: bb22f9ec641ba92ba991a2e3c44356c9cbb2e84b5f1286a977d32055806496886663b8bc07cfd6357509da95c46bc73288d705d72aaa0a7a03f8fb5ede861e0c
7
+ data.tar.gz: d5948157d07a7b6c042cc33c305e9baeb5b6fb205a1ee08ca3239fa26adaa0afb3e95c34289285da7cc6cacc51c5aba898a14b5a4666b4b9f22007f420db04f4
@@ -0,0 +1,164 @@
1
+ require 'rbconfig'
2
+
3
+ ##########################################################################################
4
+ # Configuration. Remove setting before publishing Gem.
5
+ ##########################################################################################
6
+
7
+ # set to true if development environment
8
+ # $DVLP = true
9
+
10
+ # Set to 'cygwin' when in cygwin
11
+ # $ENV = 'cygwin'
12
+
13
+ # Dependencies that are not yet installed (still in development)
14
+ # $DEPEND = Array.new
15
+
16
+ ##########################################################################################
17
+
18
+ # the platform
19
+ @platform =
20
+ case RUBY_PLATFORM
21
+ when /mswin/ then 'windows'
22
+ when /mingw/ then 'windows'
23
+ when /bccwin/ then 'windows'
24
+ when /cygwin/ then 'windows-cygwin'
25
+ when /java/
26
+ require 'java' #:nodoc:
27
+ if java.lang.System.getProperty("os.name") =~ /[Ww]indows/
28
+ 'windows-java'
29
+ else
30
+ 'default-java'
31
+ end
32
+ else 'default'
33
+ end
34
+
35
+ #---------------------------------------------------------------------------------------
36
+ # Add path to load path
37
+ #---------------------------------------------------------------------------------------
38
+
39
+ def mklib(path, home_path = true)
40
+
41
+ if (home_path)
42
+ lib = path + "/lib"
43
+ else
44
+ lib = path
45
+ end
46
+
47
+ $LOAD_PATH << lib
48
+
49
+ end
50
+
51
+ ##########################################################################################
52
+ # Prepare environment to work inside Cygwin
53
+ ##########################################################################################
54
+
55
+ if $ENV == 'cygwin'
56
+
57
+ #---------------------------------------------------------------------------------------
58
+ # Return the cygpath of a path
59
+ #---------------------------------------------------------------------------------------
60
+
61
+ def set_path(path)
62
+ `cygpath -a -p -m #{path}`.tr("\n", "")
63
+ end
64
+
65
+ else
66
+
67
+ #---------------------------------------------------------------------------------------
68
+ # Return the path
69
+ #---------------------------------------------------------------------------------------
70
+
71
+ def set_path(path)
72
+ path
73
+ end
74
+
75
+ end
76
+
77
+ #---------------------------------------------------------------------------------------
78
+ # Set dependencies
79
+ #---------------------------------------------------------------------------------------
80
+
81
+ def depend(name)
82
+
83
+ dependency_dir = MDArray.project_dir + "/" + name
84
+ mklib(dependency_dir)
85
+
86
+ end
87
+
88
+ #---------------------------------------------------------------------------------------
89
+ # Set the project directories
90
+ #---------------------------------------------------------------------------------------
91
+
92
+ class MDArray
93
+
94
+ @home_dir = File.expand_path File.dirname(__FILE__)
95
+
96
+ class << self
97
+ attr_reader :home_dir
98
+ end
99
+
100
+ @project_dir = MDArray.home_dir + "/.."
101
+ @doc_dir = MDArray.home_dir + "/doc"
102
+ @lib_dir = MDArray.home_dir + "/lib"
103
+ @src_dir = MDArray.home_dir + "/src"
104
+ @target_dir = MDArray.home_dir + "/target"
105
+ @test_dir = MDArray.home_dir + "/test"
106
+ @vendor_dir = MDArray.home_dir + "/vendor"
107
+
108
+ class << self
109
+ attr_reader :project_dir
110
+ attr_reader :doc_dir
111
+ attr_reader :lib_dir
112
+ attr_reader :src_dir
113
+ attr_reader :target_dir
114
+ attr_reader :test_dir
115
+ attr_reader :vendor_dir
116
+ end
117
+
118
+ @build_dir = MDArray.src_dir + "/build"
119
+
120
+ class << self
121
+ attr_reader :build_dir
122
+ end
123
+
124
+ @classes_dir = MDArray.build_dir + "/classes"
125
+
126
+ class << self
127
+ attr_reader :classes_dir
128
+ end
129
+
130
+ end
131
+
132
+ ##########################################################################################
133
+ # Config gem
134
+ ##########################################################################################
135
+
136
+ if ($DVLP == true)
137
+
138
+ mklib(MDArray.home_dir)
139
+
140
+ # Add dependencies here
141
+ # depend(<other_gems>)
142
+ $DEPEND.each do |dep|
143
+ depend(dep)
144
+ end if $DEPEND
145
+
146
+ #----------------------------------------------------------------------------------------
147
+ # If we need to test for coverage
148
+ #----------------------------------------------------------------------------------------
149
+
150
+ if $COVERAGE == 'true'
151
+
152
+ require 'simplecov'
153
+
154
+ SimpleCov.start do
155
+ @filters = []
156
+ add_group "MDArray", "lib/mdarray"
157
+ add_group "Colt", "lib/colt"
158
+ add_group "NetCDF", "lib/netcdf"
159
+ end
160
+
161
+ end
162
+
163
+ end
164
+
data/lib/env.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'java'
2
+ require_relative '../config.rb'
2
3
 
3
4
  $CLASSPATH << "#{File.dirname(__FILE__)}/../vendor/"
4
5
 
@@ -63,13 +63,24 @@ class MDArray
63
63
  end
64
64
 
65
65
  #------------------------------------------------------------------------------------
66
- #
66
+ # When get is used to retrieve an element, it is assumed that the index does not need
67
+ # correction, for instance, no negative index is allowed. If one wants to use
68
+ # negative indexes, then method [] should be used. So mat.get([-1, 0, 0]) raises an
69
+ # exception while mat[-1, 0, 0] gets the last value for the first dimension.
67
70
  #------------------------------------------------------------------------------------
68
71
 
69
72
  def get(index = nil)
70
73
  @local_index.get(index)
71
74
  end
72
75
 
76
+ #---------------------------------------------------------------------------------------
77
+ #
78
+ #---------------------------------------------------------------------------------------
79
+
80
+ def get_as(type, counter = nil)
81
+ @local_index.get_as(type, counter)
82
+ end
83
+
73
84
  #---------------------------------------------------------------------------------------
74
85
  # Sets a value for a scalar D0 array
75
86
  #---------------------------------------------------------------------------------------
@@ -212,6 +223,20 @@ class MDArray
212
223
 
213
224
  end
214
225
 
226
+ #----------------------------------------------------------------------------------------
227
+ # Given an MDArray, makes it immutable. Renjin data cannot be changed as Renjin assumes
228
+ # it can delay processing.
229
+ #----------------------------------------------------------------------------------------
230
+
231
+ def immutable
232
+
233
+ instance_eval { def set(name, value) raise "Array is immutable" end }
234
+ instance_eval { def set_scalar(name, value) raise "Array is immutable" end }
235
+ instance_eval { def set_next(value) raise "Array is immutable" end }
236
+ instance_eval { def []=(name, value) raise "Array is immutable" end }
237
+
238
+ end
239
+
215
240
  #------------------------------------------------------------------------------------
216
241
  #
217
242
  #------------------------------------------------------------------------------------
@@ -178,6 +178,43 @@ class MDArray
178
178
  get_at_counter
179
179
  end
180
180
 
181
+ #------------------------------------------------------------------------------------
182
+ # Gets the element at the courrent counter with the given type
183
+ #------------------------------------------------------------------------------------
184
+
185
+ def get_as(type, count = nil)
186
+
187
+ count ? set_counter_fast(count) : set_counter_fast(self.counter)
188
+
189
+ begin
190
+ case type
191
+ when :boolean
192
+ @mdarray.nc_array.getBoolean(@nc_index)
193
+ when :byte
194
+ @mdarray.nc_array.getByte(@nc_index)
195
+ when :char
196
+ @mdarray.nc_array.getChar(@nc_index)
197
+ when :short
198
+ @mdarray.nc_array.getShort(@nc_index)
199
+ when :int
200
+ @mdarray.nc_array.getInt(@nc_index)
201
+ when :long
202
+ @mdarray.nc_array.getLong(@nc_index)
203
+ when :float
204
+ @mdarray.nc_array.getFloat(@nc_index)
205
+ when :double
206
+ @mdarray.nc_array.getDouble(@nc_index)
207
+ when :string
208
+ @mdarray.nc_array.getObject(@nc_index).to_s
209
+ else
210
+ @mdarray.nc_array.getObject(@nc_index)
211
+ end
212
+ rescue Java::UcarMa2::ForbiddenConversionException
213
+ raise "cannot convert to type #{type}"
214
+ end
215
+
216
+ end
217
+
181
218
  #---------------------------------------------------------------------------------------
182
219
  #
183
220
  #---------------------------------------------------------------------------------------
@@ -401,8 +438,6 @@ class MDArray
401
438
  @mdarray.nc_array.setChar(@nc_index, value)
402
439
  when "short"
403
440
  @mdarray.nc_array.setShort(@nc_index, value)
404
- when "unsigned"
405
- @mdarray.nc_array.setUnsigned(@nc_index, value)
406
441
  when "int"
407
442
  @mdarray.nc_array.setInt(@nc_index, value)
408
443
  when "long"
@@ -60,7 +60,7 @@ class MDArray
60
60
  # @param storage [Array] a ruby array with the initialization data
61
61
  #------------------------------------------------------------------------------------
62
62
 
63
- def self.build(type, shape, storage = nil)
63
+ def self.build(type, shape, storage = nil, layout = :row)
64
64
 
65
65
  if (shape.is_a? String)
66
66
  # building from csv
@@ -93,6 +93,10 @@ class MDArray
93
93
 
94
94
  def self.from_jstorage(type, shape, jstorage, section = false)
95
95
 
96
+ if (shape.size == 1 && shape[0] == 0)
97
+ return nil
98
+ end
99
+
96
100
  dtype = DataType.valueOf(type.upcase)
97
101
  jshape = shape.to_java :int
98
102
  nc_array = Java::UcarMa2.Array.factory(dtype, jshape, jstorage)
@@ -119,8 +123,8 @@ class MDArray
119
123
  # @param storage [Array] a ruby array with the initialization data
120
124
  #------------------------------------------------------------------------------------
121
125
 
122
- def self.boolean(shape, storage = nil)
123
- self.build("boolean", shape, storage)
126
+ def self.boolean(shape, storage = nil, layout = :row)
127
+ self.build("boolean", shape, storage, layout)
124
128
  end
125
129
 
126
130
  #------------------------------------------------------------------------------------
@@ -129,8 +133,8 @@ class MDArray
129
133
  # @param storage [Array] a ruby array with the initialization data
130
134
  #------------------------------------------------------------------------------------
131
135
 
132
- def self.byte(shape, storage = nil)
133
- self.build("byte", shape, storage)
136
+ def self.byte(shape, storage = nil, layout = :row)
137
+ self.build("byte", shape, storage, layout)
134
138
  end
135
139
 
136
140
  #------------------------------------------------------------------------------------
@@ -139,8 +143,8 @@ class MDArray
139
143
  # @param storage [Array] a ruby array with the initialization data
140
144
  #------------------------------------------------------------------------------------
141
145
 
142
- def self.char(shape, storage = nil)
143
- self.build("char", shape, storage)
146
+ def self.char(shape, storage = nil, layout = :row)
147
+ self.build("char", shape, storage, layout)
144
148
  end
145
149
 
146
150
  #------------------------------------------------------------------------------------
@@ -150,8 +154,8 @@ class MDArray
150
154
  #
151
155
  #------------------------------------------------------------------------------------
152
156
 
153
- def self.short(shape, storage = nil)
154
- self.build("short", shape, storage)
157
+ def self.short(shape, storage = nil, layout = :row)
158
+ self.build("short", shape, storage, layout)
155
159
  end
156
160
 
157
161
  #------------------------------------------------------------------------------------
@@ -160,8 +164,8 @@ class MDArray
160
164
  # @param storage [Array] a ruby array with the initialization data
161
165
  #------------------------------------------------------------------------------------
162
166
 
163
- def self.int(shape, storage = nil)
164
- self.build("int", shape, storage)
167
+ def self.int(shape, storage = nil, layout = :row)
168
+ self.build("int", shape, storage, layout)
165
169
  end
166
170
 
167
171
  #------------------------------------------------------------------------------------
@@ -171,8 +175,8 @@ class MDArray
171
175
  #
172
176
  #------------------------------------------------------------------------------------
173
177
 
174
- def self.long(shape, storage = nil)
175
- self.build("long", shape, storage)
178
+ def self.long(shape, storage = nil, layout = :row)
179
+ self.build("long", shape, storage, layout)
176
180
  end
177
181
 
178
182
  #------------------------------------------------------------------------------------
@@ -181,8 +185,8 @@ class MDArray
181
185
  # @param storage [Array] a ruby array with the initialization data
182
186
  #------------------------------------------------------------------------------------
183
187
 
184
- def self.float(shape, storage = nil)
185
- self.build("float", shape, storage)
188
+ def self.float(shape, storage = nil, layout = :row)
189
+ self.build("float", shape, storage, layout)
186
190
  end
187
191
 
188
192
  #------------------------------------------------------------------------------------
@@ -191,8 +195,8 @@ class MDArray
191
195
  # @param storage [Array] a ruby array with the initialization data
192
196
  #------------------------------------------------------------------------------------
193
197
 
194
- def self.double(shape, storage = nil)
195
- self.build("double", shape, storage)
198
+ def self.double(shape, storage = nil, layout = :row)
199
+ self.build("double", shape, storage, layout)
196
200
  end
197
201
 
198
202
  #------------------------------------------------------------------------------------
@@ -201,8 +205,8 @@ class MDArray
201
205
  # @param storage [Array] a ruby array with the initialization data
202
206
  #------------------------------------------------------------------------------------
203
207
 
204
- def self.string(shape, storage = nil)
205
- self.build("string", shape, storage)
208
+ def self.string(shape, storage = nil, layout = :row)
209
+ self.build("string", shape, storage, layout)
206
210
  end
207
211
 
208
212
  #------------------------------------------------------------------------------------
@@ -211,8 +215,8 @@ class MDArray
211
215
  # @param storage [Array] a ruby array with the initialization data
212
216
  #------------------------------------------------------------------------------------
213
217
 
214
- def self.structure(shape, storage = nil)
215
- self.build("structure", shape, storage)
218
+ def self.structure(shape, storage = nil, layout = :row)
219
+ self.build("structure", shape, storage, layout)
216
220
  end
217
221
 
218
222
  #------------------------------------------------------------------------------------
@@ -105,6 +105,7 @@ class FastBinaryOperator < BinaryOperator
105
105
  get_args(*args) do |op1, op2, shape, *other_args|
106
106
  helper = @helper::FillBinaryOperator
107
107
  helper.send("apply", op1, op2)
108
+
108
109
  end
109
110
 
110
111
  end
@@ -131,6 +132,7 @@ class FastBinaryOperator < BinaryOperator
131
132
  calc = nil
132
133
 
133
134
  get_args(*args) do |op1, op2, shape, *other_args|
135
+ # return nil if op2 == nil
134
136
  helper = @helper::ReduceBinaryOperator
135
137
  calc = @pre_condition_result
136
138
  calc = helper.send("apply", calc, op1, op2, @do_func)
@@ -149,6 +151,7 @@ class FastBinaryOperator < BinaryOperator
149
151
  calc = nil
150
152
 
151
153
  get_args(*args) do |op1, op2, shape, *other_args|
154
+ # return nil if op2 == nil
152
155
  helper = @helper::ComplexReduceBinaryOperator
153
156
  calc = @pre_condition_result
154
157
  calc = helper.send("apply", calc, op1, op2, @do_func)
@@ -66,6 +66,8 @@ class MDArray
66
66
  @formatter = method(:float_formatter)
67
67
  when "double"
68
68
  @formatter = method(:float_formatter)
69
+ when "string"
70
+ @formatter = method(:string_formatter)
69
71
  else
70
72
  @formatter = method(:default_formatter)
71
73
  end
@@ -208,6 +210,14 @@ class MDArray
208
210
  #
209
211
  #------------------------------------------------------------------------------------
210
212
 
213
+ def string_formatter(val)
214
+ val.to_str
215
+ end
216
+
217
+ #------------------------------------------------------------------------------------
218
+ #
219
+ #------------------------------------------------------------------------------------
220
+
211
221
  def default_formatter(val)
212
222
  val.to_s
213
223
  end
@@ -84,9 +84,16 @@ module RubyFunctions
84
84
  #------------------------------------------------------------------------------------
85
85
 
86
86
  def make_comparison_operator(name, func)
87
- make_binary_op(name, "default", func, RubyFunctions.binary_helper, "boolean")
88
- end
89
87
 
88
+ make_binary_op("_#{name}", "default", func, RubyFunctions.binary_helper, "boolean")
89
+
90
+ define_method(name) do |op2, requested_type = nil, *args|
91
+ return false if op2 == nil
92
+ self.send("_#{name}", op2, requested_type, *args)
93
+ end
94
+
95
+ end
96
+
90
97
  #------------------------------------------------------------------------------------
91
98
  #
92
99
  #------------------------------------------------------------------------------------
@@ -258,6 +258,13 @@ module ComparisonOperators
258
258
  alias :<= :le
259
259
  alias :< :lt
260
260
  alias :== :eq
261
+
262
+ =begin
263
+ def ==(arg)
264
+ return false if arg == nil
265
+ eq(self, arg)
266
+ end
267
+ =end
261
268
 
262
269
  end # ComparisonOperators
263
270
 
@@ -19,6 +19,11 @@
19
19
  # OR MODIFICATIONS.
20
20
  ##########################################################################################
21
21
 
22
+ if !(defined? $ENVIR)
23
+ $ENVIR = true
24
+ require_relative '../env.rb'
25
+ end
26
+
22
27
  require_relative 'test_statistics'
23
28
  require_relative 'test_stat_list'
24
29
  require_relative 'test_math'
@@ -19,21 +19,19 @@
19
19
  # OR MODIFICATIONS.
20
20
  ##########################################################################################
21
21
 
22
- require 'env.rb'
22
+ $ENVIR = true
23
23
 
24
- require 'mdarray/test_complete'
25
- require 'colt/test_complete'
26
- require 'netcdf/test_complete'
24
+ require 'env.rb'
27
25
 
26
+ require 'mdarray/test_complete'
27
+ require 'colt/test_complete'
28
+ require 'netcdf/test_complete'
28
29
 
29
30
  # Temporary tests. Remove before shipping!
30
31
 
31
32
  # require 'colt/matrix/test_complete'
32
-
33
33
  # require 'colt/matrix/test_matrix2d_floatingalgebra'
34
34
  # require 'colt/matrix/test_matrix2d_fixpointalgebra'
35
-
36
35
  # require 'colt/matrix/test_matrix1d_floatingalgebra'
37
36
  # require 'colt/matrix/test_matrix1d_fixpointalgebra'
38
-
39
37
  # require 'colt/matrix/test_properties'
@@ -1,97 +1,8 @@
1
- require 'rbconfig'
2
-
3
- =begin
4
- ENV.each do |val|
5
- p val
6
- end
7
- =end
8
-
9
- # Home directory for MDArray.
10
- if $INSTALL_DIR
11
- $MDARRAY_HOME_DIR = $INSTALL_DIR
12
- else
13
- $MDARRAY_HOME_DIR = ".."
14
- end
15
-
16
- # MDArray Test directory
17
- $MDARRAY_TEST_DIR = "./mdarray"
18
-
19
- # Colt Test directory
20
- $COLT_TEST_DIR = "./colt"
21
-
22
- # Tmp directory
23
- $TMP_TEST_DIR = "./tmp"
24
-
25
- # Need to change this variable before publication
26
- # $MDARRAY_ENV = 'cygwin'
27
-
28
- ##########################################################################################
29
- # If we need to test for coverage
30
- ##########################################################################################
31
-
32
- if $COVERAGE == 'true'
33
-
34
- require 'simplecov'
35
-
36
- SimpleCov.start do
37
- @filters = []
38
- add_group "MDArray", "lib/mdarray"
39
- add_group "Colt", "lib/colt"
40
- add_group "NetCDF", "lib/netcdf"
41
- end
42
-
43
- end
44
-
45
- ##########################################################################################
46
- # Prepare environment to work inside Cygwin
47
- ##########################################################################################
48
-
49
- if $MDARRAY_ENV == 'cygwin'
50
-
51
- # RbConfig::CONFIG['host_os'] # returns mswin32 on Windows, for example
52
- # p Config::CONFIG
53
-
54
- #---------------------------------------------------------------------------------------
55
- # Return the cygpath of a path
56
- #---------------------------------------------------------------------------------------
57
-
58
- def cygpath(path)
59
- `cygpath -a -p -m #{path}`.tr("\n", "")
60
- end
61
-
62
- #---------------------------------------------------------------------------------------
63
- # Add path to load path
64
- #---------------------------------------------------------------------------------------
65
-
66
- def mklib(path, home_path = true)
67
-
68
- if (home_path)
69
- lib = path + "/lib"
70
- else
71
- lib = path
72
- end
73
-
74
- $LOAD_PATH << `cygpath -p -m #{lib}`.tr("\n", "")
75
-
76
- end
77
-
78
- mklib($MDARRAY_HOME_DIR)
79
-
80
- $MDARRAY_TEST_DIR = cygpath($MDARRAY_TEST_DIR)
81
- $COLT_TEST_DIR = cygpath($COLT_TEST_DIR)
82
-
83
- else
84
-
85
- def cygpath(path)
86
- path
87
- end
88
-
89
- end
90
-
91
- =begin
92
- # Build Jruby classpath from environment classpath
93
- ENV['WCLASSPATH'].split(';').each do |path|
94
- $CLASSPATH << cygpath(path)
95
- end
96
- =end
97
-
1
+ require_relative '../config.rb'
2
+
3
+ # Tmp directory for data storage
4
+ $TMP_TEST_DIR = MDArray.home_dir + "/test/tmp"
5
+ #Colt test directory
6
+ $COLT_TEST_DIR = MDArray.home_dir + "/test/colt"
7
+ # NetCDF test directory
8
+ $NETCDF_TEST_DIR = MDArray.home_dir + "/test/netcdf"
@@ -66,6 +66,21 @@ class MDArrayTest < Test::Unit::TestCase
66
66
  @b.set([1, 1, 1], 5.25)
67
67
  assert_equal(5.25, @b.get([1, 1, 1]))
68
68
 
69
+ assert_equal(1, @a.get)
70
+ assert_equal(1, @a.get_as(:int))
71
+ assert_equal(1, @a.get_as(:int, [0, 0, 0]))
72
+ assert_equal(1, @a.get_as(:double, [0, 0, 0]))
73
+
74
+ assert_equal(5.25, @b[1, 1, 1])
75
+ assert_raise (RuntimeError) { @b.get_as(:boolean, [1, 1, 1]) }
76
+ assert_equal(5, @b.get_as(:byte, [1, 1, 1]))
77
+ assert_equal(5, @b.get_as(:char, [1, 1, 1]))
78
+ assert_equal(5, @b.get_as(:short, [1, 1, 1]))
79
+ assert_equal(5, @b.get_as(:int, [1, 1, 1]))
80
+ assert_equal(5, @b.get_as(:long, [1, 1, 1]))
81
+ assert_equal(5.25, @b.get_as(:float, [1, 1, 1]))
82
+ assert_equal(5.25, @b.get_as(:object, [1, 1, 1]))
83
+
69
84
  end
70
85
 
71
86
  #-------------------------------------------------------------------------------------
@@ -19,8 +19,10 @@
19
19
  # OR MODIFICATIONS.
20
20
  ##########################################################################################
21
21
 
22
- # require 'simplecov'
23
- # require '../env.rb'
22
+ if !(defined? $ENVIR)
23
+ $ENVIR = true
24
+ require_relative '../env.rb'
25
+ end
24
26
 
25
27
  # MDArray main object is the homogeneous multidimensional array. It is a table
26
28
  # of elements (usually numbers), all of the same type, indexed by a tuple of
@@ -19,6 +19,11 @@
19
19
  # OR MODIFICATIONS.
20
20
  ##########################################################################################
21
21
 
22
+ if !(defined? $ENVIR)
23
+ $ENVIR = true
24
+ require_relative '../env.rb'
25
+ end
26
+
22
27
  require 'rubygems'
23
28
  require "test/unit"
24
29
  require 'shoulda'
@@ -60,6 +65,26 @@ class MDArrayTest < Test::Unit::TestCase
60
65
  #
61
66
  #-------------------------------------------------------------------------------------
62
67
 
68
+ should "work properly with nil" do
69
+
70
+ a = MDArray.int([5, 3, 5])
71
+
72
+ assert_raise ( RuntimeError ) { a.fill(nil) }
73
+ assert_raise ( RuntimeError ) { a + nil }
74
+ assert_raise ( RuntimeError ) { a.add!(nil) }
75
+
76
+ assert_equal(false, a == nil)
77
+ assert_equal(true, a != nil)
78
+ assert_equal(false, a.eq(nil))
79
+ assert_equal(false, a > nil)
80
+ assert_equal(false, a <= nil)
81
+
82
+ end
83
+
84
+ #-------------------------------------------------------------------------------------
85
+ #
86
+ #-------------------------------------------------------------------------------------
87
+
63
88
  should "allow setting values" do
64
89
 
65
90
  a = MDArray.int([5, 3, 5])
@@ -30,7 +30,7 @@ class NetCDF
30
30
  # Inside a block we have another scope, so the block cannot access any variables, etc.
31
31
  # from the ouside scope. If we pass the outside scope, in this case we are passing self,
32
32
  # we can access variables in the outside scope by using @outside_scope.<variable>.
33
- NetCDF.define(cygpath(@dir), @filename1, "netcdf3", self) do
33
+ NetCDF.define(@dir, @filename1, "netcdf3", self) do
34
34
 
35
35
  # add dimensions
36
36
  dimension "lat", 64
@@ -72,7 +72,7 @@ class NetCDF
72
72
 
73
73
  def write_file
74
74
 
75
- NetCDF.write(cygpath(@dir), @filename1, self) do
75
+ NetCDF.write(@dir, @filename1, self) do
76
76
 
77
77
  temperature = find_variable("temperature")
78
78
  shape = temperature.shape
@@ -108,7 +108,7 @@ class NetCDF
108
108
 
109
109
  def define_one_at_time
110
110
 
111
- NetCDF.define(cygpath(@dir), @filename2, "netcdf3", self) do
111
+ NetCDF.define(@dir, @filename2, "netcdf3", self) do
112
112
 
113
113
  dimension "lat", 3
114
114
  dimension "lon", 4
@@ -142,7 +142,7 @@ class NetCDF
142
142
 
143
143
  def write_one_at_time
144
144
 
145
- NetCDF.write(cygpath(@dir), @filename2, self) do
145
+ NetCDF.write(@dir, @filename2, self) do
146
146
 
147
147
  lat = find_variable("lat")
148
148
  lon = find_variable("lon")
@@ -19,6 +19,11 @@
19
19
  # OR MODIFICATIONS.
20
20
  ##########################################################################################
21
21
 
22
+ if !(defined? $ENVIR)
23
+ $ENVIR = true
24
+ require_relative '../env.rb'
25
+ end
26
+
22
27
  Dir.mkdir($TMP_TEST_DIR) unless File.exists?($TMP_TEST_DIR)
23
28
 
24
29
  #=begin
@@ -52,7 +52,7 @@ class MDArrayTest < Test::Unit::TestCase
52
52
  # file once and write many times, this is not much of a problem. If one prefers,
53
53
  # one could not use the define block and use the normal APIs.
54
54
 
55
- NetCDF.define(cygpath(@directory), "nc_output", "netcdf3", self) do
55
+ NetCDF.define(@directory, "nc_output", "netcdf3", self) do
56
56
 
57
57
  #=================================================================================
58
58
  # Add global attributes by adding a single valued attribute or an array of
@@ -197,7 +197,7 @@ class MDArrayTest < Test::Unit::TestCase
197
197
 
198
198
  should "open a file for writing data" do
199
199
 
200
- NetCDF.write(cygpath(@directory), "nc_output", self) do
200
+ NetCDF.write(@directory, "nc_output", self) do
201
201
 
202
202
  # create some data to add to variable
203
203
  array = MDArray.typed_arange("double", 0, 50)
@@ -261,7 +261,7 @@ class MDArrayTest < Test::Unit::TestCase
261
261
  # ouside scope, that is, "here", we pass self as the third argument to define.
262
262
  # When self is passed as argument, @outside_scope is available inside the block.
263
263
 
264
- NetCDF.read(cygpath(@directory), "nc_output", self) do
264
+ NetCDF.read(@directory, "nc_output", self) do
265
265
 
266
266
  # print all global attributes
267
267
  global_attributes.each do |att|
data/version.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  $gem_name = "mdarray"
2
- $version="0.5.5"
2
+ $version="0.5.5.1"
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdarray
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.5.5
4
+ version: 0.5.5.1
6
5
  platform: java
7
6
  authors:
8
7
  - Rodrigo Botafogo
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-16 00:00:00.000000000 Z
11
+ date: 2014-11-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: map
@@ -18,13 +17,11 @@ dependencies:
18
17
  - - '>='
19
18
  - !ruby/object:Gem::Version
20
19
  version: 6.3.0
21
- none: false
22
20
  requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - '>='
25
23
  - !ruby/object:Gem::Version
26
24
  version: 6.3.0
27
- none: false
28
25
  prerelease: false
29
26
  type: :runtime
30
27
  - !ruby/object:Gem::Dependency
@@ -34,15 +31,13 @@ dependencies:
34
31
  - - '>='
35
32
  - !ruby/object:Gem::Version
36
33
  version: '0'
37
- none: false
38
34
  requirement: !ruby/object:Gem::Requirement
39
35
  requirements:
40
36
  - - '>='
41
37
  - !ruby/object:Gem::Version
42
38
  version: '0'
43
- none: false
44
39
  prerelease: false
45
- type: :development
40
+ type: :runtime
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: simplecov
48
43
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,13 +45,11 @@ dependencies:
50
45
  - - '>='
51
46
  - !ruby/object:Gem::Version
52
47
  version: 0.7.1
53
- none: false
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
56
50
  - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: 0.7.1
59
- none: false
60
53
  prerelease: false
61
54
  type: :development
62
55
  - !ruby/object:Gem::Dependency
@@ -66,13 +59,11 @@ dependencies:
66
59
  - - '>='
67
60
  - !ruby/object:Gem::Version
68
61
  version: 0.8.5.2
69
- none: false
70
62
  requirement: !ruby/object:Gem::Requirement
71
63
  requirements:
72
64
  - - '>='
73
65
  - !ruby/object:Gem::Version
74
66
  version: 0.8.5.2
75
- none: false
76
67
  prerelease: false
77
68
  type: :development
78
69
  - !ruby/object:Gem::Dependency
@@ -82,13 +73,11 @@ dependencies:
82
73
  - - '>='
83
74
  - !ruby/object:Gem::Version
84
75
  version: 1.0.1
85
- none: false
86
76
  requirement: !ruby/object:Gem::Requirement
87
77
  requirements:
88
78
  - - '>='
89
79
  - !ruby/object:Gem::Version
90
80
  version: 1.0.1
91
- none: false
92
81
  prerelease: false
93
82
  type: :development
94
83
  description: "\"MDArray is a multi dimensional array implemented for JRuby inspired\
@@ -112,6 +101,7 @@ extra_rdoc_files: []
112
101
  files:
113
102
  - Rakefile
114
103
  - version.rb
104
+ - config.rb
115
105
  - lib/env.rb
116
106
  - lib/mdarray.rb
117
107
  - lib/colt/cern_double_functions.rb
@@ -130,7 +120,6 @@ files:
130
120
  - lib/colt/matrix/property.rb
131
121
  - lib/mdarray/access.rb
132
122
  - lib/mdarray/counter.rb
133
- - lib/mdarray/creation.rb
134
123
  - lib/mdarray/csv.rb
135
124
  - lib/mdarray/fast_operators.rb
136
125
  - lib/mdarray/function_creation.rb
@@ -150,6 +139,7 @@ files:
150
139
  - lib/mdarray/ruby_stats.rb
151
140
  - lib/mdarray/section.rb
152
141
  - lib/mdarray/views.rb
142
+ - lib/mdarray/creation.rb
153
143
  - lib/netcdf/attribute.rb
154
144
  - lib/netcdf/cdm_node.rb
155
145
  - lib/netcdf/dimension.rb
@@ -165,12 +155,12 @@ files:
165
155
  - test/colt/test_statistics.rb
166
156
  - test/colt/test_stat_list.rb
167
157
  - test/colt/matrix/test_complete.rb
158
+ - test/colt/matrix/test_creation.rb
168
159
  - test/colt/matrix/test_matrix1d_floatingalgebra.rb
169
160
  - test/colt/matrix/test_matrix2d_fixpointalgebra.rb
170
161
  - test/colt/matrix/test_matrix2d_floatingalgebra.rb
171
162
  - test/colt/matrix/test_operations.rb
172
163
  - test/colt/matrix/test_properties.rb
173
- - test/colt/matrix/test_creation.rb
174
164
  - test/mdarray/arithmetic_casting.rb
175
165
  - test/mdarray/test_access.rb
176
166
  - test/mdarray/test_boolean.rb
@@ -198,6 +188,7 @@ files:
198
188
  - test/colt/ColtMethods.xlsx
199
189
  - test/colt/VALE3.xlsx
200
190
  - test/colt/VALE3_short.xlsx
191
+ - test/colt/~$VALE3_short.xlsx
201
192
  - doc/20130625 MDArray Internals.docx
202
193
  - doc/BinaryOperator.html
203
194
  - doc/BitwiseOperators.html
@@ -262,8 +253,8 @@ files:
262
253
  - doc/MDArray/IteratorFastInt.html
263
254
  - doc/MDArray/IteratorFastLong.html
264
255
  - doc/MDArray/IteratorFastShort.html
265
- - vendor/netcdfAll-4.3.18.jar
266
256
  - vendor/mdarray.jar
257
+ - vendor/netcdfAll-4.5_0.jar
267
258
  - target/helper.jar
268
259
  - README.md
269
260
  - LICENSE.txt
@@ -271,6 +262,7 @@ files:
271
262
  homepage: http://github.com/rbotafogo/mdarray/wiki
272
263
  licenses:
273
264
  - BSD 2-clause
265
+ metadata: {}
274
266
  post_install_message:
275
267
  rdoc_options: []
276
268
  require_paths:
@@ -280,18 +272,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
272
  - - '>='
281
273
  - !ruby/object:Gem::Version
282
274
  version: '0'
283
- none: false
284
275
  required_rubygems_version: !ruby/object:Gem::Requirement
285
276
  requirements:
286
277
  - - '>='
287
278
  - !ruby/object:Gem::Version
288
279
  version: '0'
289
- none: false
290
280
  requirements: []
291
281
  rubyforge_project:
292
- rubygems_version: 1.8.24
282
+ rubygems_version: 2.1.9
293
283
  signing_key:
294
- specification_version: 3
284
+ specification_version: 4
295
285
  summary: Multi dimensional array similar to narray and numpy.
296
286
  test_files:
297
287
  - test/complete.rb