carray 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/{LICENSES → LICENSE} +0 -0
  3. data/NEWS.md +42 -0
  4. data/README.md +5 -5
  5. data/TODO.md +16 -0
  6. data/carray.gemspec +9 -5
  7. data/ext/ca_iter_block.c +3 -5
  8. data/ext/ca_iter_dimension.c +4 -5
  9. data/ext/ca_iter_window.c +2 -4
  10. data/ext/ca_obj_array.c +394 -124
  11. data/ext/ca_obj_bitarray.c +3 -5
  12. data/ext/ca_obj_bitfield.c +3 -5
  13. data/ext/ca_obj_block.c +6 -8
  14. data/ext/ca_obj_fake.c +3 -5
  15. data/ext/ca_obj_farray.c +3 -5
  16. data/ext/ca_obj_field.c +15 -17
  17. data/ext/ca_obj_grid.c +5 -6
  18. data/ext/ca_obj_mapping.c +2 -4
  19. data/ext/ca_obj_object.c +3 -5
  20. data/ext/ca_obj_reduce.c +2 -4
  21. data/ext/ca_obj_refer.c +5 -7
  22. data/ext/ca_obj_repeat.c +2 -4
  23. data/ext/ca_obj_select.c +2 -4
  24. data/ext/ca_obj_shift.c +3 -5
  25. data/ext/ca_obj_transpose.c +3 -5
  26. data/ext/ca_obj_unbound_repeat.c +58 -81
  27. data/ext/ca_obj_window.c +7 -9
  28. data/ext/carray.h +13 -8
  29. data/ext/carray_access.c +111 -18
  30. data/ext/carray_attribute.c +136 -197
  31. data/ext/carray_call_cfunc.c +1 -3
  32. data/ext/carray_cast.c +344 -143
  33. data/ext/carray_cast_func.rb +1 -2
  34. data/ext/carray_class.c +28 -36
  35. data/ext/carray_conversion.c +49 -59
  36. data/ext/carray_copy.c +16 -32
  37. data/ext/carray_core.c +51 -44
  38. data/ext/carray_element.c +25 -44
  39. data/ext/carray_generate.c +71 -50
  40. data/ext/carray_iterator.c +13 -15
  41. data/ext/carray_loop.c +53 -82
  42. data/ext/carray_mask.c +87 -117
  43. data/ext/carray_math.rb +8 -10
  44. data/ext/carray_mathfunc.c +1 -3
  45. data/ext/carray_numeric.c +19 -3
  46. data/ext/carray_operator.c +45 -32
  47. data/ext/carray_order.c +72 -65
  48. data/ext/carray_sort_addr.c +14 -21
  49. data/ext/carray_stat.c +1 -3
  50. data/ext/carray_stat_proc.rb +2 -4
  51. data/ext/carray_test.c +28 -30
  52. data/ext/carray_undef.c +1 -3
  53. data/ext/carray_utils.c +12 -4
  54. data/ext/extconf.rb +1 -1
  55. data/ext/mkmath.rb +1 -1
  56. data/ext/ruby_carray.c +11 -6
  57. data/ext/ruby_ccomplex.c +1 -3
  58. data/ext/ruby_float_func.c +1 -3
  59. data/ext/version.h +5 -7
  60. data/lib/carray.rb +2 -0
  61. data/lib/carray/autoload/autoload_gem_numo_narray.rb +6 -6
  62. data/lib/carray/broadcast.rb +45 -0
  63. data/lib/carray/construct.rb +21 -4
  64. data/lib/carray/iterator.rb +1 -0
  65. data/lib/carray/ordering.rb +28 -2
  66. data/spec/Classes/CABitfield_spec.rb +58 -0
  67. data/spec/Classes/CABlockIterator_spec.rb +114 -0
  68. data/spec/Classes/CABlock_spec.rb +205 -0
  69. data/spec/Classes/CAField_spec.rb +39 -0
  70. data/spec/Classes/CAGrid_spec.rb +75 -0
  71. data/spec/Classes/CAMap_spec.rb +0 -0
  72. data/{test/test_CAMapping.rb → spec/Classes/CAMapping_spec.rb} +35 -36
  73. data/spec/Classes/CAObject_attribute_spec.rb +33 -0
  74. data/spec/Classes/CAObject_spec.rb +33 -0
  75. data/spec/Classes/CARefer_spec.rb +93 -0
  76. data/spec/Classes/CARepeat_spec.rb +65 -0
  77. data/spec/Classes/CASelect_spec.rb +22 -0
  78. data/spec/Classes/CAShift_spec.rb +16 -0
  79. data/spec/Classes/CAStruct_spec.rb +71 -0
  80. data/{test/test_CATranspose.rb → spec/Classes/CATranspose_spec.rb} +20 -21
  81. data/spec/Classes/CAUnboudRepeat_spec.rb +78 -0
  82. data/spec/Classes/CAWindow_spec.rb +54 -0
  83. data/spec/Classes/CAWrap_spec.rb +8 -0
  84. data/{test/test_CArray.rb → spec/Classes/CArray_spec.rb} +48 -92
  85. data/spec/Classes/CScalar_spec.rb +55 -0
  86. data/spec/Features/feature_130_spec.rb +19 -0
  87. data/spec/Features/feature_attributes_spec.rb +280 -0
  88. data/spec/Features/feature_boolean_spec.rb +97 -0
  89. data/spec/Features/feature_broadcast.rb +100 -0
  90. data/spec/Features/feature_cast_function.rb +19 -0
  91. data/spec/Features/feature_cast_spec.rb +33 -0
  92. data/spec/Features/feature_class_spec.rb +84 -0
  93. data/spec/Features/feature_complex_spec.rb +42 -0
  94. data/{test/test_composite.rb → spec/Features/feature_composite_spec.rb} +17 -18
  95. data/spec/Features/feature_convert_spec.rb +46 -0
  96. data/spec/Features/feature_copy_spec.rb +123 -0
  97. data/spec/Features/feature_creation_spec.rb +84 -0
  98. data/spec/Features/feature_element_spec.rb +144 -0
  99. data/spec/Features/feature_extream_spec.rb +54 -0
  100. data/spec/Features/feature_generate_spec.rb +74 -0
  101. data/spec/Features/feature_index_spec.rb +69 -0
  102. data/spec/Features/feature_mask_spec.rb +574 -0
  103. data/spec/Features/feature_math_spec.rb +97 -0
  104. data/spec/Features/feature_order_spec.rb +146 -0
  105. data/spec/Features/feature_ref_store_spec.rb +209 -0
  106. data/spec/Features/feature_serialization_spec.rb +125 -0
  107. data/spec/Features/feature_stat_spec.rb +397 -0
  108. data/spec/Features/feature_virtual_spec.rb +48 -0
  109. data/spec/Features/method_eq_spec.rb +81 -0
  110. data/spec/Features/method_is_nan_spec.rb +12 -0
  111. data/spec/Features/method_map_spec.rb +54 -0
  112. data/spec/Features/method_max_with.rb +20 -0
  113. data/spec/Features/method_min_with.rb +19 -0
  114. data/spec/Features/method_ne_spec.rb +18 -0
  115. data/spec/Features/method_project_spec.rb +188 -0
  116. data/spec/Features/method_ref_spec.rb +27 -0
  117. data/spec/Features/method_round_spec.rb +11 -0
  118. data/spec/Features/method_s_linspace_spec.rb +48 -0
  119. data/spec/Features/method_s_span_spec.rb +14 -0
  120. data/spec/Features/method_seq_spec.rb +47 -0
  121. data/spec/Features/method_sort_with.rb +43 -0
  122. data/spec/Features/method_sorted_with.rb +29 -0
  123. data/spec/Features/method_span_spec.rb +42 -0
  124. data/spec/Features/method_wrap_readonly_spec.rb +43 -0
  125. data/{test → spec/UnitTest}/test_CAVirtual.rb +0 -0
  126. data/spec/spec_all.rb +0 -1
  127. data/utils/convert_test.rb +73 -0
  128. data/utils/{extract_rdoc.rb → extract_yard.rb} +7 -12
  129. metadata +77 -60
  130. data/spec/CABlockIterator/CABlockIterator_spec.rb +0 -113
  131. data/spec/CArray/bug/store_spec.rb +0 -27
  132. data/spec/CArray/index/repeat_spec.rb +0 -10
  133. data/spec/CArray/method/eq_spec.rb +0 -80
  134. data/spec/CArray/method/is_nan_spec.rb +0 -12
  135. data/spec/CArray/method/ne_spec.rb +0 -18
  136. data/spec/CArray/method/round_spec.rb +0 -11
  137. data/spec/CArray/object/_attribute_spec.rb +0 -32
  138. data/spec/CArray/object/s_new_spec.rb +0 -31
  139. data/spec/CArray/serialize/Serialization_spec.rb +0 -89
  140. data/test/test_130.rb +0 -23
  141. data/test/test_ALL.rb +0 -49
  142. data/test/test_CABitfield.rb +0 -59
  143. data/test/test_CABlock.rb +0 -208
  144. data/test/test_CAField.rb +0 -40
  145. data/test/test_CAGrid.rb +0 -76
  146. data/test/test_CAMmap.rb +0 -11
  147. data/test/test_CARefer.rb +0 -94
  148. data/test/test_CARepeat.rb +0 -66
  149. data/test/test_CASelect.rb +0 -23
  150. data/test/test_CAShift.rb +0 -17
  151. data/test/test_CAWindow.rb +0 -55
  152. data/test/test_CAWrap.rb +0 -9
  153. data/test/test_CComplex.rb +0 -83
  154. data/test/test_CScalar.rb +0 -91
  155. data/test/test_attribute.rb +0 -281
  156. data/test/test_block_iterator.rb +0 -17
  157. data/test/test_boolean.rb +0 -99
  158. data/test/test_cast.rb +0 -33
  159. data/test/test_class.rb +0 -85
  160. data/test/test_complex.rb +0 -43
  161. data/test/test_convert.rb +0 -79
  162. data/test/test_copy.rb +0 -141
  163. data/test/test_creation.rb +0 -85
  164. data/test/test_element.rb +0 -146
  165. data/test/test_extream.rb +0 -55
  166. data/test/test_generate.rb +0 -75
  167. data/test/test_index.rb +0 -71
  168. data/test/test_mask.rb +0 -578
  169. data/test/test_math.rb +0 -98
  170. data/test/test_order.rb +0 -147
  171. data/test/test_ref_store.rb +0 -211
  172. data/test/test_stat.rb +0 -406
  173. data/test/test_struct.rb +0 -72
  174. data/test/test_virtual.rb +0 -49
@@ -1,113 +0,0 @@
1
- require "carray"
2
-
3
- describe CABlockIterator do
4
-
5
- describe "each method" do
6
-
7
- before do
8
- @original = CArray.object(4,4).seq!
9
- @it = @original.blocks(0..1, 0..1)
10
- end
11
-
12
- it "should call 4-times its block" do
13
- count = 0
14
- @it.each do |blk|
15
- count += 1
16
- end
17
- ( count ).should == 4
18
- end
19
-
20
- it "should have the block parameter of 2x2 CABlock object" do
21
- @it.each do |blk|
22
- ( blk ).should be_an_instance_of(CABlock)
23
- ( blk.data_type ).should == CA_OBJECT
24
- ( blk.dim ).should == [2,2]
25
- end
26
- end
27
-
28
- end
29
-
30
- describe "reference method []" do
31
-
32
- before do
33
- @original = CArray.object(4,4).seq!
34
- @it = @original.blocks(0..1, 0..1)
35
- end
36
-
37
- it "should return a 2x2 CABlock object" do
38
- blk = @it[0]
39
- ( blk ).should be_an_instance_of(CABlock)
40
- ( blk.data_type ).should == CA_OBJECT
41
- ( blk ).should == CA_OBJECT([[0,1],[4,5]])
42
- blk = @it[1,0]
43
- ( blk ).should be_an_instance_of(CABlock)
44
- ( blk.data_type ).should == CA_OBJECT
45
- ( blk ).should == CA_OBJECT([[8,9],[12,13]])
46
- end
47
-
48
- it "should return a 2x2 CABlock object" do
49
- ( @it[0] ).should == @it.kernel_at_addr(0, @it.reference)
50
- ( @it[1,0] ).should == @it.kernel_at_index([1,0], @it.reference)
51
- end
52
-
53
- end
54
-
55
- describe "store method []=" do
56
-
57
- before do
58
- @original = CArray.object(4,4).seq!
59
- @it = @original.blocks(0..1, 0..1)
60
- end
61
-
62
- it "should return a 2x2 CABlock object" do
63
- @it[0] = 1
64
- @it[1,0] = 2
65
- ( @it.reference ).should == CA_OBJECT( [ [ 1, 1, 2, 3 ],
66
- [ 1, 1, 6, 7 ],
67
- [ 2, 2, 10, 11 ],
68
- [ 2, 2, 14, 15 ] ] )
69
- end
70
-
71
- end
72
-
73
- describe "pick method" do
74
-
75
- before do
76
- @original = CArray.object(4,4).seq!
77
- @it = @original.blocks(0..1, 0..1)
78
- end
79
-
80
- it "should return a 2x2 CABlock object" do
81
- blk = @it.pick(0)
82
- ( blk ).should be_an_instance_of(CArray)
83
- ( blk.data_type ).should == CA_OBJECT
84
- ( blk ).should == CA_OBJECT([[0,2],[8,10]])
85
- blk = @it.pick(1,0)
86
- ( blk ).should be_an_instance_of(CArray)
87
- ( blk.data_type ).should == CA_OBJECT
88
- ( blk ).should == CA_OBJECT([[4,6],[12,14]])
89
- end
90
-
91
- end
92
-
93
- describe "put method" do
94
-
95
- before do
96
- @original = CArray.object(4,4).seq!
97
- @it = @original.blocks(0..1, 0..1)
98
- end
99
-
100
- it "should store value via 2x2 CBlock object" do
101
- @it.put(0,1)
102
- @it.put(0,1,2)
103
- ( @it.pick(0) ).should == CA_OBJECT([[1,1],[1,1]])
104
- ( @it.pick(0,1) ).should == CA_OBJECT([[2,2],[2,2]])
105
- ( @it.reference ).should == CA_OBJECT([[ 1, 2, 1, 2 ],
106
- [ 4, 5, 6, 7 ],
107
- [ 1, 2, 1, 2 ],
108
- [ 12, 13, 14, 15 ]])
109
- end
110
-
111
- end
112
-
113
- end
@@ -1,27 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#[]" do
5
-
6
- it "should return one element array with [nil,-1]" do
7
- ca = CArray.int(4,4).seq!
8
- ( ca[[nil,-1]].elements ).should == 1
9
- ( ca[[nil,-1]] ).should == ca[[0]]
10
- end
11
-
12
- it "should return self[[0],nil] with [nil,-1], nil" do
13
- ca = CArray.int(4,4).seq!
14
- ( ca[[nil,-1],nil] ).should == ca[[0],nil]
15
- end
16
-
17
- it "should return self[[0],nil] with nil, [nil,-1]" do
18
- ca = CArray.int(4,4).seq!
19
- ( ca[nil,[nil,-1]] ).should == ca[nil,[0]]
20
- end
21
-
22
- it "should return self[[0],nil] with [nil,-1], [nil,-1]" do
23
- ca = CArray.int(4,4).seq!
24
- ( ca[[nil,-1],[nil,-1]] ).should == ca[[0],[0]]
25
- end
26
-
27
- end
@@ -1,10 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#[]" do
5
- it "should return CARepeat object" do
6
- ca = CArray.int(3).seq!
7
- ca[:%,3] # =>
8
- ca[3,:%] # =>
9
- end
10
- end
@@ -1,80 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#eq" do
5
-
6
- it "returns 1 if self and other equal (int)" do
7
- ca123 = CA_INT([123])
8
-
9
- ( (ca123).eq(123 )[0] ).should == 1
10
- ( (ca123).eq(ca123)[0] ).should == 1
11
- end
12
-
13
- it "returns 1 if self and other equal (object)" do
14
- ca123 = CA_OBJECT(["123"])
15
-
16
- ( (ca123).eq("123")[0] ).should == 1
17
- ( (ca123).eq(ca123)[0] ).should == 1
18
- end
19
-
20
- it "returns 1 if self and other equal (fixlen)" do
21
- ca123 = CA_FIXLEN(["123"], :bytes=>3)
22
-
23
- ( (ca123).eq("123")[0] ).should == 1
24
- ( (ca123).eq(ca123)[0] ).should == 1
25
- end
26
-
27
- it "returns 0 if self and other equal (int)" do
28
- ca123 = CA_INT([123])
29
- ca124 = CA_INT([124])
30
-
31
- ( (ca123).eq(124 )[0] ).should == 0
32
- ( (ca123).eq(ca124)[0] ).should == 0
33
- end
34
-
35
- it "returns 0 if self and other equal (object)" do
36
- ca123 = CA_OBJECT(["123"])
37
- ca124 = CA_OBJECT(["124"])
38
-
39
- ( (ca123).eq("124")[0] ).should == 0
40
- ( (ca123).eq(ca124)[0] ).should == 0
41
- end
42
-
43
- it "returns 0 if self and other equal (fixlen)" do
44
- ca123 = CA_FIXLEN(["123"], :bytes=>3)
45
- ca124 = CA_FIXLEN(["124"], :bytes=>3)
46
- ca12 = CA_FIXLEN(["12"], :bytes=>3)
47
-
48
- ( (ca123).eq("124")[0] ).should == 0
49
- ( (ca123).eq(ca124)[0] ).should == 0
50
-
51
- ( (ca123).eq("12")[0] ).should == 0
52
- ( (ca123).eq(ca12)[0] ).should == 0
53
- end
54
-
55
- it "returns 0 if self is a NaN" do
56
- nan = 0.0/0.0
57
-
58
- ( (nan ).eq(CA_DOUBLE([0.0]))[0] ).should == 0
59
- ( (CA_DOUBLE([nan])).eq(0.0 )[0] ).should == 0
60
- ( (CA_DOUBLE([nan])).eq(CA_DOUBLE([0.0]))[0] ).should == 0
61
- end
62
-
63
- it "returns 0 if self and other are NaN" do
64
- nan = 0.0/0.0
65
-
66
- ( (nan ).eq(CA_DOUBLE([nan]))[0] ).should == 0
67
- ( (CA_DOUBLE([nan])).eq(nan )[0] ).should == 0
68
- ( (CA_DOUBLE([nan])).eq(CA_DOUBLE([nan]))[0] ).should == 0
69
- end
70
-
71
- it "returns 0 if other is a NaN" do
72
- nan = 0.0/0.0
73
-
74
- ( (0.0 ).eq(CA_DOUBLE([nan]))[0] ).should == 0
75
- ( (CA_DOUBLE([0.0])).eq(nan )[0] ).should == 0
76
- ( (CA_DOUBLE([0.0])).eq(CA_DOUBLE([nan]))[0] ).should == 0
77
- end
78
-
79
- end
80
-
@@ -1,12 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#is_nan" do
5
- it "returns 1 if self is not a valid IEEE floating-point number" do
6
- CA_DOUBLE(0.0).is_nan[0].should == 0
7
- CA_DOUBLE(-1.5).is_nan[0].should == 0
8
- (CA_DOUBLE(0.0)/CA_DOUBLE(0.0)).is_nan[0].should == 1
9
- CA_DOUBLE(0.0/0.0).is_nan[0].should == 1
10
- end
11
- end
12
-
@@ -1,18 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#ne" do
5
- it "returns 0 if self is not a valid IEEE floating-point number" do
6
- nan = 0.0/0.0
7
- 0.0.ne(CA_DOUBLE(nan))[0].should == 1
8
- nan.ne(CA_DOUBLE(nan))[0].should == 1
9
- nan.ne(CA_DOUBLE(0.0))[0].should == 1
10
- CA_DOUBLE(nan).ne(0.0)[0].should == 1
11
- CA_DOUBLE(nan).ne(nan)[0].should == 1
12
- CA_DOUBLE(0.0).ne(nan)[0].should == 1
13
- CA_DOUBLE(nan).ne(CA_DOUBLE(0.0))[0].should == 1
14
- CA_DOUBLE(nan).ne(CA_DOUBLE(nan))[0].should == 1
15
- CA_DOUBLE(0.0).ne(CA_DOUBLE(nan))[0].should == 1
16
- end
17
- end
18
-
@@ -1,11 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#round" do
5
- it "returns the nearest Integer" do
6
- CA_DOUBLE(5.5).round[0].should == 6
7
- CA_DOUBLE(0.4).round[0].should == 0
8
- CA_DOUBLE(-2.8).round[0].should == -3
9
- CA_DOUBLE(0.0).round[0].should == 0
10
- end
11
- end
@@ -1,32 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray#elements" do
5
-
6
- it "should return element number of array" do
7
- ca = CArray.int32(2,3,4)
8
- ( ca.elements ).should == 2*3*4
9
- ( ca.length ).should == 2*3*4
10
- ( ca.size ).should == 2*3*4
11
- end
12
-
13
- end
14
-
15
- describe "CArray#data_type" do
16
-
17
- it "should return data type of array" do
18
- ca = CArray.int32(2,3,4)
19
- ( ca.data_type ).should == CA_INT32
20
- end
21
-
22
- end
23
-
24
- describe "CArray#dim" do
25
-
26
- it "should return a array contains the shape of array" do
27
- ca = CArray.int32(2,3,4)
28
- ( ca.dim ).should == [2,3,4]
29
- end
30
-
31
- end
32
-
@@ -1,31 +0,0 @@
1
-
2
- require "carray"
3
-
4
- describe "CArray.new" do
5
-
6
- it "should return a CA_INT type carray if CA_INT is specified as data_type" do
7
- ca = CArray.new(CA_INT, [2,3,4])
8
- ( ca.class ).should == CArray
9
- ( ca.data_type ).should == CA_INT
10
- end
11
-
12
- it "should return a CA_FIXLEN type carray if CA_FIXLEN is specified as data_type" do
13
- ca = CArray.new(CA_FIXLEN, [2,3,4], :bytes=>3)
14
- ( ca.class ).should == CArray
15
- ( ca.data_type ).should == CA_FIXLEN
16
- ( ca.bytes ).should == 3
17
- end
18
-
19
- it "should return a carray filled by 0 when data_type == CA_INT" do
20
- ca = CArray.new(CA_INT, [2,3,4])
21
- ( ca[0] ).should == 0
22
- ( ca.all_equal?(0) ).should == true
23
- end
24
-
25
- it "should return a carray filled by string filled by 0 when data_type == CA_FIXLEN" do
26
- ca = CArray.new(CA_FIXLEN, [2,3,4], :bytes=>3)
27
- ( ca[0] ).should == "\0\0\0"
28
- ( ca.all_equal?("\0\0\0") ).should == true
29
- end
30
-
31
- end
@@ -1,89 +0,0 @@
1
- require "carray"
2
-
3
- describe CArray do
4
-
5
- describe "loaded from binary format (int32 type)" do
6
-
7
- before do
8
- @original = CArray.int32(10,10) { 10 }
9
- @original[5,5] = UNDEF
10
- CArray.save(@original, "test.ca")
11
- @it = CArray.load("test.ca")
12
- end
13
-
14
- it "should equal to original" do
15
- ( @it ).should == @original
16
- ( @it.has_mask? ).should == true
17
- end
18
-
19
- it "should dump string of same contents with file from which it was loaded" do
20
- ( CArray.dump(@it) ).should == File.read("test.ca")
21
- end
22
-
23
- after do
24
- File.unlink("test.ca")
25
- end
26
-
27
- end
28
-
29
- describe "loaded from binary format (object type)" do
30
-
31
- before do
32
- @original = CArray.object(10,10) { 3.times { Time.now } }
33
- @original[5,5] = UNDEF
34
- CArray.save(@original, "test.ca")
35
- @it = CArray.load("test.ca")
36
- end
37
-
38
- it "should equal to original" do
39
- ( @it ).should == @original
40
- ( @it.has_mask? ).should == true
41
- end
42
-
43
- after do
44
- File.unlink("test.ca")
45
- end
46
-
47
- end
48
-
49
- describe "loaded by marshal (int32 type)" do
50
-
51
- before do
52
- @original = CArray.int32(10,10) { 10 }
53
- @original[5,5] = UNDEF
54
- open("test.ca", "w") { |io| Marshal.dump(@original, io) }
55
- @it = open("test.ca") { |io| Marshal.load(io) }
56
- end
57
-
58
- it "should equal to original" do
59
- ( @it ).should == @original
60
- ( @it.has_mask? ).should == true
61
- end
62
-
63
- after do
64
- File.unlink("test.ca")
65
- end
66
-
67
- end
68
-
69
- describe "loaded by marshal (object type)" do
70
-
71
- before do
72
- @original = CArray.object(10,10) { 3.times { Time.now } }
73
- @original[5,5] = UNDEF
74
- open("test.ca", "w") { |io| Marshal.dump(@original, io) }
75
- @it = open("test.ca") { |io| Marshal.load(io) }
76
- end
77
-
78
- it "should equal to original" do
79
- ( @it ).should == @original
80
- ( @it.has_mask? ).should == true
81
- end
82
-
83
- after do
84
- File.unlink("test.ca")
85
- end
86
-
87
- end
88
-
89
- end
@@ -1,23 +0,0 @@
1
- $:.unshift("../lib", "..")
2
-
3
- require 'test/unit'
4
- require 'carray'
5
-
6
- class Test130 < Test::Unit::TestCase
7
-
8
- def test_float_arithmetic
9
- assert_equal((CA_FLOAT([100])+1)[0], 101.0)
10
- end
11
-
12
- def test_int64
13
- assert_raise(RangeError) { CA_INT64([0xffffffffffffffff]) }
14
- assert_equal(CA_INT64([0x7fffffffffffffff])[0],
15
- 0x7fffffffffffffff)
16
- assert_equal(CA_INT64([0x7fffffffffffffff])+1,
17
- CA_INT64([-0x8000000000000000]))
18
- assert_equal(CA_INT64([0x7fffffffffffffff, 0x7fffffffffffffff]).sum,
19
- (2*0x7fffffffffffffff).to_f)
20
- end
21
-
22
-
23
- end