octave-ruby 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 1.0.8 / 2008-11-26
2
+
3
+ * 1 major bug fix
4
+ * Hashes are now converted to octave properly
5
+
1
6
  == 1.0.7 / 2008-09-12
2
7
 
3
8
  * 1 minor enhancement
@@ -43,7 +43,7 @@ LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)
43
43
  RUBY_EXTCONF_H =
44
44
  CFLAGS = -fno-common -arch i386 -Os -pipe -fno-common
45
45
  INCFLAGS = -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I.
46
- CPPFLAGS = -DHAVE_OCTAVE_H -I/Applications/Octave.app/Contents/Resources/include -I/Applications/Octave.app/Contents/Resources/lib -I/Applications/Octave.app/Contents/Resources/include/octave-3.0.1/octave -I/Applications/Octave.app/Contents/Resources/lib/octave-3.0.1 -I/Applications/Octave.app/Contents/Resources/include/octave-3.0.1
46
+ CPPFLAGS = -DHAVE_OCTAVE_H -I/Applications/Octave.app/Contents/Resources/include -I/Applications/Octave.app/Contents/Resources/lib -I/Applications/Octave.app/Contents/Resources/include/octave-3.0.2/octave -I/Applications/Octave.app/Contents/Resources/lib/octave-3.0.2 -I/Applications/Octave.app/Contents/Resources/include/octave-3.0.2
47
47
  CXXFLAGS = $(CFLAGS)
48
48
  DLDFLAGS = -L. -arch i386
49
49
  LDSHARED = g++ -pipe -bundle
@@ -68,8 +68,8 @@ COPY = cp
68
68
 
69
69
  preload =
70
70
 
71
- libpath = . $(libdir) /Applications/Octave.app/Contents/Resources/lib /Applications/Octave.app/Contents/Resources/lib/octave-3.0.1
72
- LIBPATH = -L"." -L"$(libdir)" -L"/Applications/Octave.app/Contents/Resources/lib" -L"/Applications/Octave.app/Contents/Resources/lib/octave-3.0.1"
71
+ libpath = . $(libdir) /Applications/Octave.app/Contents/Resources/lib /Applications/Octave.app/Contents/Resources/lib/octave-3.0.2
72
+ LIBPATH = -L"." -L"$(libdir)" -L"/Applications/Octave.app/Contents/Resources/lib" -L"/Applications/Octave.app/Contents/Resources/lib/octave-3.0.2"
73
73
  DEFFILE =
74
74
 
75
75
  CLEANFILES = mkmf.log
@@ -14,7 +14,7 @@ octave_value OR_Hash::to_octave()
14
14
  keys.append(std::string(RSTRING(RARRAY(names)->ptr[i])->ptr));
15
15
  }
16
16
 
17
- Octave_map struct_matrix = Octave_map(dim_vector(0, 1), Cell(keys));
17
+ Octave_map struct_matrix = Octave_map(dim_vector(1, 1), Cell(keys));
18
18
  for (i = 0; i < number_of_keys; i++) {
19
19
  struct_matrix.contents(std::string(RSTRING(RARRAY(names)->ptr[i])->ptr)) = OR_Variable(rb_hash_aref(ruby_val, rb_str_new2(RSTRING(RARRAY(names)->ptr[i])->ptr))).to_octave();
20
20
  }
@@ -4,7 +4,7 @@ module Octave
4
4
 
5
5
  MAJOR = 1
6
6
  MINOR = 0
7
- TINY = 7
7
+ TINY = 8
8
8
 
9
9
  STRING = [ MAJOR, MINOR, TINY ].join( "." )
10
10
  #:beta-tag:
@@ -49,18 +49,36 @@ class ConversionsTest < Test::Unit::TestCase
49
49
  assert_instance_of Float, result
50
50
  end
51
51
 
52
- def test_should_convert_array
52
+ def test_should_convert_array_from_and_to
53
53
  assert_octave_and_ruby_equal [1, nil, 3.0]
54
54
  assert_octave_and_ruby_equal [1, "2", false, ["foo", "bar", "baz"]]
55
55
  end
56
56
 
57
- def test_should_convert_hash
57
+ def test_should_convert_hash_from_and_to
58
58
  assert_octave_and_ruby_equal "foo" => "bar"
59
59
  assert_octave_and_ruby_equal "foo" => [1,2,3]
60
60
  assert_octave_and_ruby_equal "foo" => { "bar" => [1,2,3, [4,5,6]] }
61
61
  assert_octave_and_ruby_equal "foo" => { "bar" => [1,2,3, [4,5,6]], "baz" => "buz", "bob" => [7,8,9] }
62
62
  end
63
63
 
64
+ def test_should_be_able_to_reference_structure_fields_from_hash
65
+ hash = { "foo" => { "bar" => [1,2,3, [4,5,6]] }, "baz" => { "buz" => [7,8,9] } }
66
+ @driver.put_variable "hash", hash
67
+ assert_equal hash["foo"]["bar"], @driver.feval("eval", "hash.foo.bar")
68
+ assert_equal hash["baz"]["buz"], @driver.feval("eval", "hash.baz.buz")
69
+ end
70
+
71
+ def test_should_be_able_to_reference_structure_fields_from_octave_struct_matrix
72
+ bar_matrix = Octave::StructMatrix.new(1, 1, "bar")
73
+ bar_matrix[0,0]["bar"] = [1,2,3, [4,5,6]]
74
+
75
+ struct_matrix = Octave::StructMatrix.new(1, 1, "foo")
76
+ struct_matrix[0,0]["foo"] = bar_matrix
77
+
78
+ @driver.put_variable "struct_matrix", struct_matrix
79
+ assert_equal [1,2,3, [4,5,6]], @driver.feval("eval", "struct_matrix.foo.bar")
80
+ end
81
+
64
82
  def test_should_convert_octave_matrix
65
83
  matrix = Octave::Matrix.new(3, 3)
66
84
  3.times { |m| 3.times { |n| matrix[m, n] = rand } }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octave-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Younger
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-12 00:00:00 -06:00
12
+ date: 2008-11-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.7.0
23
+ version: 1.8.2
24
24
  version:
25
25
  description: "== USAGE: require 'octave' engine = Octave::Engine.new engine.eval \"123.456 * 789.101112\" engine.rand(10) matrix = Octave::Matrix.new(20, 400) 20.times { |m| 400.times { |n| matrix[m, n] = rand } } engine.put_variable(\"m\", matrix) engine.save \"/tmp/20_x_400_matrix\" == REQUIREMENTS: * Octave * GCC or some other compiler to build the included extension * Mocha (For testing only)"
26
26
  email:
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  requirements: []
98
98
 
99
99
  rubyforge_project: octave-ruby
100
- rubygems_version: 1.2.0
100
+ rubygems_version: 1.3.1
101
101
  signing_key:
102
102
  specification_version: 2
103
103
  summary: A Ruby interface to the Octave interpreted language.