@@ -14,7 +14,7 @@ extern crate ron;
14
14
use serialize:: json;
15
15
16
16
17
- use ndarray:: { arr0, arr1, arr2, RcArray , RcArray1 , RcArray2 } ;
17
+ use ndarray:: { arr0, arr1, arr2, RcArray , RcArray1 , RcArray2 , ArrayD , IxDyn } ;
18
18
19
19
#[ test]
20
20
fn serial_many_dim ( )
@@ -123,6 +123,46 @@ fn serial_many_dim_serde()
123
123
}
124
124
}
125
125
126
+ #[ test]
127
+ fn serial_ixdyn_serde ( )
128
+ {
129
+ {
130
+ let a = arr0 :: < f32 > ( 2.72 ) . into_dyn ( ) ;
131
+ let serial = serde_json:: to_string ( & a) . unwrap ( ) ;
132
+ println ! ( "Serde encode {:?} => {:?}" , a, serial) ;
133
+ let res = serde_json:: from_str :: < RcArray < f32 , _ > > ( & serial) ;
134
+ println ! ( "{:?}" , res) ;
135
+ assert_eq ! ( a, res. unwrap( ) ) ;
136
+ }
137
+
138
+ {
139
+ let a = arr1 :: < f32 > ( & [ 2.72 , 1. , 2. ] ) . into_dyn ( ) ;
140
+ let serial = serde_json:: to_string ( & a) . unwrap ( ) ;
141
+ println ! ( "Serde encode {:?} => {:?}" , a, serial) ;
142
+ let res = serde_json:: from_str :: < ArrayD < f32 > > ( & serial) ;
143
+ println ! ( "{:?}" , res) ;
144
+ assert_eq ! ( a, res. unwrap( ) ) ;
145
+ }
146
+
147
+ {
148
+ let a = arr2 ( & [ [ 3. , 1. , 2.2 ] , [ 3.1 , 4. , 7. ] ] )
149
+ . into_shape ( IxDyn ( & [ 3 , 1 , 1 , 1 , 2 , 1 ] ) ) . unwrap ( ) ;
150
+ let serial = serde_json:: to_string ( & a) . unwrap ( ) ;
151
+ println ! ( "Serde encode {:?} => {:?}" , a, serial) ;
152
+ let res = serde_json:: from_str :: < ArrayD < f32 > > ( & serial) ;
153
+ println ! ( "{:?}" , res) ;
154
+ assert_eq ! ( a, res. unwrap( ) ) ;
155
+ }
156
+
157
+ {
158
+ let a = arr2 ( & [ [ 3. , 1. , 2.2 ] , [ 3.1 , 4. , 7. ] ] ) . into_dyn ( ) ;
159
+ let text = r##"{"v":1,"dim":[2,3],"data":[3,1,2.2,3.1,4,7]}"## ;
160
+ let b = serde_json:: from_str :: < ArrayD < f32 > > ( text) ;
161
+ assert_eq ! ( a, b. unwrap( ) ) ;
162
+ }
163
+
164
+ }
165
+
126
166
#[ test]
127
167
fn serial_wrong_count_serde ( )
128
168
{
0 commit comments