annotate src/test/java/org/msgpack/TestSimpleArrays.java @ 0:cb825acd883a

first commit
author sugi
date Sat, 18 Oct 2014 15:06:15 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb825acd883a first commit
sugi
parents:
diff changeset
1 package org.msgpack;
cb825acd883a first commit
sugi
parents:
diff changeset
2
cb825acd883a first commit
sugi
parents:
diff changeset
3 import static org.junit.Assert.assertEquals;
cb825acd883a first commit
sugi
parents:
diff changeset
4
cb825acd883a first commit
sugi
parents:
diff changeset
5 import java.io.IOException;
cb825acd883a first commit
sugi
parents:
diff changeset
6 import java.util.ArrayList;
cb825acd883a first commit
sugi
parents:
diff changeset
7 import java.util.HashMap;
cb825acd883a first commit
sugi
parents:
diff changeset
8 import java.util.List;
cb825acd883a first commit
sugi
parents:
diff changeset
9 import java.util.Map;
cb825acd883a first commit
sugi
parents:
diff changeset
10
cb825acd883a first commit
sugi
parents:
diff changeset
11 import org.junit.Ignore;
cb825acd883a first commit
sugi
parents:
diff changeset
12 import org.junit.Test;
cb825acd883a first commit
sugi
parents:
diff changeset
13 import org.msgpack.annotation.Message;
cb825acd883a first commit
sugi
parents:
diff changeset
14 import org.msgpack.packer.BufferPacker;
cb825acd883a first commit
sugi
parents:
diff changeset
15 import org.msgpack.packer.Unconverter;
cb825acd883a first commit
sugi
parents:
diff changeset
16 import org.msgpack.type.Value;
cb825acd883a first commit
sugi
parents:
diff changeset
17 import org.msgpack.unpacker.BufferUnpacker;
cb825acd883a first commit
sugi
parents:
diff changeset
18 import org.msgpack.unpacker.Converter;
cb825acd883a first commit
sugi
parents:
diff changeset
19
cb825acd883a first commit
sugi
parents:
diff changeset
20 public class TestSimpleArrays {
cb825acd883a first commit
sugi
parents:
diff changeset
21
cb825acd883a first commit
sugi
parents:
diff changeset
22 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
23 public static class PrimitiveTest {
cb825acd883a first commit
sugi
parents:
diff changeset
24 public boolean[] b = new boolean[0];
cb825acd883a first commit
sugi
parents:
diff changeset
25 public short[] s = new short[0];
cb825acd883a first commit
sugi
parents:
diff changeset
26 public int[] i = new int[0];
cb825acd883a first commit
sugi
parents:
diff changeset
27 // public long[] l = new long[0]; // FIXME javassist?
cb825acd883a first commit
sugi
parents:
diff changeset
28 public float[] f = new float[0];
cb825acd883a first commit
sugi
parents:
diff changeset
29
cb825acd883a first commit
sugi
parents:
diff changeset
30 // public double[] d = new double[0]; // FIXME javassist?
cb825acd883a first commit
sugi
parents:
diff changeset
31
cb825acd883a first commit
sugi
parents:
diff changeset
32 public PrimitiveTest() {
cb825acd883a first commit
sugi
parents:
diff changeset
33 }
cb825acd883a first commit
sugi
parents:
diff changeset
34 }
cb825acd883a first commit
sugi
parents:
diff changeset
35
cb825acd883a first commit
sugi
parents:
diff changeset
36 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
37 public void testPrimitive() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
38 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
39
cb825acd883a first commit
sugi
parents:
diff changeset
40 PrimitiveTest t = new PrimitiveTest();
cb825acd883a first commit
sugi
parents:
diff changeset
41 t.b = new boolean[] { true, false };
cb825acd883a first commit
sugi
parents:
diff changeset
42 t.s = new short[] { 0, 1 };
cb825acd883a first commit
sugi
parents:
diff changeset
43 t.i = new int[] { 2, 3 };
cb825acd883a first commit
sugi
parents:
diff changeset
44 // t.l = new long[] {4, 5};
cb825acd883a first commit
sugi
parents:
diff changeset
45 t.f = new float[] { 2.0f, 4.0f };
cb825acd883a first commit
sugi
parents:
diff changeset
46 // t.d = new double[] {8.0, 16.0};
cb825acd883a first commit
sugi
parents:
diff changeset
47
cb825acd883a first commit
sugi
parents:
diff changeset
48 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
49 packer.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
50 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
51 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
52 PrimitiveTest u = unpacker.read(PrimitiveTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
53 assertEquals(t.b.length, u.b.length);
cb825acd883a first commit
sugi
parents:
diff changeset
54 for (int i = 0; i < t.b.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
55 assertEquals(t.b[i], u.b[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
56 }
cb825acd883a first commit
sugi
parents:
diff changeset
57 assertEquals(t.s.length, u.s.length);
cb825acd883a first commit
sugi
parents:
diff changeset
58 for (int i = 0; i < t.s.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
59 assertEquals(t.s[i], u.s[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
60 }
cb825acd883a first commit
sugi
parents:
diff changeset
61 assertEquals(t.i.length, u.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
62 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
63 assertEquals(t.i[i], u.i[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
64 }
cb825acd883a first commit
sugi
parents:
diff changeset
65 // assertEquals(t.l.length, u.l.length);
cb825acd883a first commit
sugi
parents:
diff changeset
66 // for(int i=0; i < t.l.length; i++) { assertEquals(t.l[i], u.l[i]); }
cb825acd883a first commit
sugi
parents:
diff changeset
67 assertEquals(t.f.length, u.f.length);
cb825acd883a first commit
sugi
parents:
diff changeset
68 for (int i = 0; i < t.f.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
69 assertEquals(t.f[i], u.f[i], 10e-10);
cb825acd883a first commit
sugi
parents:
diff changeset
70 }
cb825acd883a first commit
sugi
parents:
diff changeset
71 // assertEquals(t.d.length, u.d.length);
cb825acd883a first commit
sugi
parents:
diff changeset
72 // for(int i=0; i < t.d.length; i++) { assertEquals(t.d[i], u.d[i]); }
cb825acd883a first commit
sugi
parents:
diff changeset
73
cb825acd883a first commit
sugi
parents:
diff changeset
74 Unconverter unconverter = new Unconverter(msgpack);
cb825acd883a first commit
sugi
parents:
diff changeset
75 unconverter.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
76 Value value = unconverter.getResult();
cb825acd883a first commit
sugi
parents:
diff changeset
77 Converter converter = new Converter(msgpack, value);
cb825acd883a first commit
sugi
parents:
diff changeset
78 PrimitiveTest c = converter.read(PrimitiveTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
79 assertEquals(t.b.length, c.b.length);
cb825acd883a first commit
sugi
parents:
diff changeset
80 for (int i = 0; i < t.b.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
81 assertEquals(t.b[i], c.b[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
82 }
cb825acd883a first commit
sugi
parents:
diff changeset
83 assertEquals(t.s.length, c.s.length);
cb825acd883a first commit
sugi
parents:
diff changeset
84 for (int i = 0; i < t.s.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
85 assertEquals(t.s[i], c.s[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
86 }
cb825acd883a first commit
sugi
parents:
diff changeset
87 assertEquals(t.i.length, c.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
88 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
89 assertEquals(t.i[i], c.i[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
90 }
cb825acd883a first commit
sugi
parents:
diff changeset
91 // assertEquals(t.l.length, c.l.length);
cb825acd883a first commit
sugi
parents:
diff changeset
92 // for(int i=0; i < t.l.length; i++) { assertEquals(t.l[i], c.l[i]); }
cb825acd883a first commit
sugi
parents:
diff changeset
93 assertEquals(t.f.length, c.f.length);
cb825acd883a first commit
sugi
parents:
diff changeset
94 for (int i = 0; i < t.f.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
95 assertEquals(t.f[i], c.f[i], 10e-10);
cb825acd883a first commit
sugi
parents:
diff changeset
96 }
cb825acd883a first commit
sugi
parents:
diff changeset
97 // assertEquals(t.d.length, c.d.length);
cb825acd883a first commit
sugi
parents:
diff changeset
98 // for(int i=0; i < t.d.length; i++) { assertEquals(t.d[i], c.d[i]); }
cb825acd883a first commit
sugi
parents:
diff changeset
99 }
cb825acd883a first commit
sugi
parents:
diff changeset
100
cb825acd883a first commit
sugi
parents:
diff changeset
101 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
102 public static class ReferenceTest {
cb825acd883a first commit
sugi
parents:
diff changeset
103 public ReferenceTest() {
cb825acd883a first commit
sugi
parents:
diff changeset
104 }
cb825acd883a first commit
sugi
parents:
diff changeset
105
cb825acd883a first commit
sugi
parents:
diff changeset
106 public Boolean[] b;
cb825acd883a first commit
sugi
parents:
diff changeset
107 public Short[] s;
cb825acd883a first commit
sugi
parents:
diff changeset
108 public Integer[] i;
cb825acd883a first commit
sugi
parents:
diff changeset
109 public Long[] l;
cb825acd883a first commit
sugi
parents:
diff changeset
110 public Float[] f;
cb825acd883a first commit
sugi
parents:
diff changeset
111 public Double[] d;
cb825acd883a first commit
sugi
parents:
diff changeset
112 public String[] str;
cb825acd883a first commit
sugi
parents:
diff changeset
113 }
cb825acd883a first commit
sugi
parents:
diff changeset
114
cb825acd883a first commit
sugi
parents:
diff changeset
115 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
116 public void testReference() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
117 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
118
cb825acd883a first commit
sugi
parents:
diff changeset
119 ReferenceTest t = new ReferenceTest();
cb825acd883a first commit
sugi
parents:
diff changeset
120 t.b = new Boolean[] { true, false };
cb825acd883a first commit
sugi
parents:
diff changeset
121 t.s = new Short[] { 0, 1 };
cb825acd883a first commit
sugi
parents:
diff changeset
122 t.i = new Integer[] { 2, 3 };
cb825acd883a first commit
sugi
parents:
diff changeset
123 t.l = new Long[] { 4l, 5l };
cb825acd883a first commit
sugi
parents:
diff changeset
124 t.f = new Float[] { 2.0f, 4.0f };
cb825acd883a first commit
sugi
parents:
diff changeset
125 t.d = new Double[] { 8.0, 16.0 };
cb825acd883a first commit
sugi
parents:
diff changeset
126 t.str = new String[] { "furuhashi", "java" };
cb825acd883a first commit
sugi
parents:
diff changeset
127
cb825acd883a first commit
sugi
parents:
diff changeset
128 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
129 packer.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
130 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
131 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
132 ReferenceTest u = unpacker.read(ReferenceTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
133 assertEquals(t.b.length, u.b.length);
cb825acd883a first commit
sugi
parents:
diff changeset
134 for (int i = 0; i < t.b.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
135 assertEquals(t.b[i], u.b[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
136 }
cb825acd883a first commit
sugi
parents:
diff changeset
137 assertEquals(t.s.length, u.s.length);
cb825acd883a first commit
sugi
parents:
diff changeset
138 for (int i = 0; i < t.s.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
139 assertEquals(t.s[i], u.s[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
140 }
cb825acd883a first commit
sugi
parents:
diff changeset
141 assertEquals(t.i.length, u.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
142 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
143 assertEquals(t.i[i], u.i[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
144 }
cb825acd883a first commit
sugi
parents:
diff changeset
145 assertEquals(t.l.length, u.l.length);
cb825acd883a first commit
sugi
parents:
diff changeset
146 for (int i = 0; i < t.l.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
147 assertEquals(t.l[i], u.l[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
148 }
cb825acd883a first commit
sugi
parents:
diff changeset
149 assertEquals(t.f.length, u.f.length);
cb825acd883a first commit
sugi
parents:
diff changeset
150 for (int i = 0; i < t.f.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
151 assertEquals(t.f[i], u.f[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
152 }
cb825acd883a first commit
sugi
parents:
diff changeset
153 assertEquals(t.d.length, u.d.length);
cb825acd883a first commit
sugi
parents:
diff changeset
154 for (int i = 0; i < t.d.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
155 assertEquals(t.d[i], u.d[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
156 }
cb825acd883a first commit
sugi
parents:
diff changeset
157 assertEquals(t.str.length, u.str.length);
cb825acd883a first commit
sugi
parents:
diff changeset
158 for (int i = 0; i < t.str.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
159 assertEquals(t.str[i], u.str[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
160 }
cb825acd883a first commit
sugi
parents:
diff changeset
161
cb825acd883a first commit
sugi
parents:
diff changeset
162 Unconverter unconverter = new Unconverter(msgpack);
cb825acd883a first commit
sugi
parents:
diff changeset
163 unconverter.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
164 Value value = unconverter.getResult();
cb825acd883a first commit
sugi
parents:
diff changeset
165 Converter converter = new Converter(msgpack, value);
cb825acd883a first commit
sugi
parents:
diff changeset
166 ReferenceTest c = converter.read(ReferenceTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
167 assertEquals(t.b.length, c.b.length);
cb825acd883a first commit
sugi
parents:
diff changeset
168 for (int i = 0; i < t.b.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
169 assertEquals(t.b[i], c.b[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
170 }
cb825acd883a first commit
sugi
parents:
diff changeset
171 assertEquals(t.s.length, c.s.length);
cb825acd883a first commit
sugi
parents:
diff changeset
172 for (int i = 0; i < t.s.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
173 assertEquals(t.s[i], c.s[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
174 }
cb825acd883a first commit
sugi
parents:
diff changeset
175 assertEquals(t.i.length, c.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
176 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
177 assertEquals(t.i[i], c.i[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
178 }
cb825acd883a first commit
sugi
parents:
diff changeset
179 assertEquals(t.l.length, c.l.length);
cb825acd883a first commit
sugi
parents:
diff changeset
180 for (int i = 0; i < t.l.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
181 assertEquals(t.l[i], c.l[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
182 }
cb825acd883a first commit
sugi
parents:
diff changeset
183 assertEquals(t.f.length, c.f.length);
cb825acd883a first commit
sugi
parents:
diff changeset
184 for (int i = 0; i < t.f.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
185 assertEquals(t.f[i], c.f[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
186 }
cb825acd883a first commit
sugi
parents:
diff changeset
187 assertEquals(t.d.length, c.d.length);
cb825acd883a first commit
sugi
parents:
diff changeset
188 for (int i = 0; i < t.d.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
189 assertEquals(t.d[i], c.d[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
190 }
cb825acd883a first commit
sugi
parents:
diff changeset
191 assertEquals(t.str.length, c.str.length);
cb825acd883a first commit
sugi
parents:
diff changeset
192 for (int i = 0; i < t.str.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
193 assertEquals(t.str[i], c.str[i]);
cb825acd883a first commit
sugi
parents:
diff changeset
194 }
cb825acd883a first commit
sugi
parents:
diff changeset
195 }
cb825acd883a first commit
sugi
parents:
diff changeset
196
cb825acd883a first commit
sugi
parents:
diff changeset
197 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
198 public static class GenericsTest {
cb825acd883a first commit
sugi
parents:
diff changeset
199 public List<String>[] slist;
cb825acd883a first commit
sugi
parents:
diff changeset
200 public Map<String, Integer>[] imap;
cb825acd883a first commit
sugi
parents:
diff changeset
201
cb825acd883a first commit
sugi
parents:
diff changeset
202 public GenericsTest() {
cb825acd883a first commit
sugi
parents:
diff changeset
203 }
cb825acd883a first commit
sugi
parents:
diff changeset
204 }
cb825acd883a first commit
sugi
parents:
diff changeset
205
cb825acd883a first commit
sugi
parents:
diff changeset
206 @SuppressWarnings({ "unchecked", "rawtypes" })
cb825acd883a first commit
sugi
parents:
diff changeset
207 @Ignore
cb825acd883a first commit
sugi
parents:
diff changeset
208 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
209 public void testGenerics() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
210 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
211
cb825acd883a first commit
sugi
parents:
diff changeset
212 GenericsTest t = new GenericsTest();
cb825acd883a first commit
sugi
parents:
diff changeset
213 t.slist = new List[2];
cb825acd883a first commit
sugi
parents:
diff changeset
214 t.slist[0] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
215 t.slist[0].add("aa");
cb825acd883a first commit
sugi
parents:
diff changeset
216 t.slist[0].add("bb");
cb825acd883a first commit
sugi
parents:
diff changeset
217 t.slist[1] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
218 t.slist[1].add("cc");
cb825acd883a first commit
sugi
parents:
diff changeset
219 t.imap = new Map[2];
cb825acd883a first commit
sugi
parents:
diff changeset
220 t.imap[0] = new HashMap();
cb825acd883a first commit
sugi
parents:
diff changeset
221 t.imap[0].put("aa", 1);
cb825acd883a first commit
sugi
parents:
diff changeset
222 t.imap[0].put("bb", 2);
cb825acd883a first commit
sugi
parents:
diff changeset
223 t.imap[1] = new HashMap();
cb825acd883a first commit
sugi
parents:
diff changeset
224 t.imap[1].put("cc", 3);
cb825acd883a first commit
sugi
parents:
diff changeset
225
cb825acd883a first commit
sugi
parents:
diff changeset
226 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
227 packer.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
228 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
229 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
230 GenericsTest u = unpacker.read(GenericsTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
231 assertEquals(t.slist.length, u.slist.length);
cb825acd883a first commit
sugi
parents:
diff changeset
232 for (int i = 0; i < t.slist.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
233 assertEquals(t.slist[i].size(), u.slist[i].size());
cb825acd883a first commit
sugi
parents:
diff changeset
234 for (int j = 0; j < t.slist[i].size(); j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
235 assertEquals(t.slist[i].get(j), u.slist[i].get(j));
cb825acd883a first commit
sugi
parents:
diff changeset
236 }
cb825acd883a first commit
sugi
parents:
diff changeset
237 }
cb825acd883a first commit
sugi
parents:
diff changeset
238 for (int i = 0; i < t.imap.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
239 assertEquals(t.imap[i].size(), u.imap[i].size());
cb825acd883a first commit
sugi
parents:
diff changeset
240 for (String j : t.imap[i].keySet()) {
cb825acd883a first commit
sugi
parents:
diff changeset
241 assertEquals(t.imap[i].get(j), u.imap[i].get(j));
cb825acd883a first commit
sugi
parents:
diff changeset
242 }
cb825acd883a first commit
sugi
parents:
diff changeset
243 }
cb825acd883a first commit
sugi
parents:
diff changeset
244
cb825acd883a first commit
sugi
parents:
diff changeset
245 Unconverter unconverter = new Unconverter(msgpack);
cb825acd883a first commit
sugi
parents:
diff changeset
246 unconverter.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
247 Value value = unconverter.getResult();
cb825acd883a first commit
sugi
parents:
diff changeset
248 Converter converter = new Converter(msgpack, value);
cb825acd883a first commit
sugi
parents:
diff changeset
249 GenericsTest c = converter.read(GenericsTest.class);
cb825acd883a first commit
sugi
parents:
diff changeset
250 assertEquals(t.slist.length, c.slist.length);
cb825acd883a first commit
sugi
parents:
diff changeset
251 for (int i = 0; i < t.slist.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
252 assertEquals(t.slist[i].size(), c.slist[i].size());
cb825acd883a first commit
sugi
parents:
diff changeset
253 for (int j = 0; j < t.slist[i].size(); j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
254 assertEquals(t.slist[i].get(j), c.slist[i].get(j));
cb825acd883a first commit
sugi
parents:
diff changeset
255 }
cb825acd883a first commit
sugi
parents:
diff changeset
256 }
cb825acd883a first commit
sugi
parents:
diff changeset
257 for (int i = 0; i < t.imap.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
258 assertEquals(t.imap[i].size(), c.imap[i].size());
cb825acd883a first commit
sugi
parents:
diff changeset
259 for (String j : t.imap[i].keySet()) {
cb825acd883a first commit
sugi
parents:
diff changeset
260 assertEquals(t.imap[i].get(j), c.imap[i].get(j));
cb825acd883a first commit
sugi
parents:
diff changeset
261 }
cb825acd883a first commit
sugi
parents:
diff changeset
262 }
cb825acd883a first commit
sugi
parents:
diff changeset
263 }
cb825acd883a first commit
sugi
parents:
diff changeset
264
cb825acd883a first commit
sugi
parents:
diff changeset
265 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
266 public static class Dim2Test {
cb825acd883a first commit
sugi
parents:
diff changeset
267 public int[][] i;
cb825acd883a first commit
sugi
parents:
diff changeset
268 public byte[][] b;
cb825acd883a first commit
sugi
parents:
diff changeset
269 public String[][] str;
cb825acd883a first commit
sugi
parents:
diff changeset
270 //public List<String>[][] slist;
cb825acd883a first commit
sugi
parents:
diff changeset
271
cb825acd883a first commit
sugi
parents:
diff changeset
272 public Dim2Test() {
cb825acd883a first commit
sugi
parents:
diff changeset
273 }
cb825acd883a first commit
sugi
parents:
diff changeset
274 }
cb825acd883a first commit
sugi
parents:
diff changeset
275
cb825acd883a first commit
sugi
parents:
diff changeset
276 @SuppressWarnings({ "unchecked", "rawtypes" })
cb825acd883a first commit
sugi
parents:
diff changeset
277 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
278 public void testDim2() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
279 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
280 Dim2Test t = new Dim2Test();
cb825acd883a first commit
sugi
parents:
diff changeset
281 t.i = new int[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
282 t.i[0] = new int[] { 0, 1 };
cb825acd883a first commit
sugi
parents:
diff changeset
283 t.i[1] = new int[] { 2, 3, 4 };
cb825acd883a first commit
sugi
parents:
diff changeset
284 t.b = new byte[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
285 t.b[0] = new byte[] { 5, 6 };
cb825acd883a first commit
sugi
parents:
diff changeset
286 t.b[1] = new byte[] { 7, 8, 9 };
cb825acd883a first commit
sugi
parents:
diff changeset
287 t.str = new String[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
288 t.str[0] = new String[] { "aa", "bb" };
cb825acd883a first commit
sugi
parents:
diff changeset
289 t.str[1] = new String[] { "cc", "dd", "ee" };
cb825acd883a first commit
sugi
parents:
diff changeset
290 /**
cb825acd883a first commit
sugi
parents:
diff changeset
291 t.slist = new List[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
292 t.slist[0] = new List[1];
cb825acd883a first commit
sugi
parents:
diff changeset
293 t.slist[0][0] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
294 t.slist[0][0].add("ff");
cb825acd883a first commit
sugi
parents:
diff changeset
295 t.slist[0][0].add("gg");
cb825acd883a first commit
sugi
parents:
diff changeset
296 t.slist[1] = new List[2];
cb825acd883a first commit
sugi
parents:
diff changeset
297 t.slist[1][0] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
298 t.slist[1][0].add("hh");
cb825acd883a first commit
sugi
parents:
diff changeset
299 t.slist[1][0].add("ii");
cb825acd883a first commit
sugi
parents:
diff changeset
300 t.slist[1][1] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
301 t.slist[1][1].add("jj");
cb825acd883a first commit
sugi
parents:
diff changeset
302 t.slist[1][1].add("kk");
cb825acd883a first commit
sugi
parents:
diff changeset
303 */
cb825acd883a first commit
sugi
parents:
diff changeset
304
cb825acd883a first commit
sugi
parents:
diff changeset
305 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
306 packer.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
307 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
308 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
309 Dim2Test u = unpacker.read(Dim2Test.class);
cb825acd883a first commit
sugi
parents:
diff changeset
310 assertEquals(t.i.length, u.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
311 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
312 assertEquals(t.i[i].length, u.i[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
313 for (int j = 0; j < t.i[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
314 assertEquals(t.i[i][j], u.i[i][j]);
cb825acd883a first commit
sugi
parents:
diff changeset
315 }
cb825acd883a first commit
sugi
parents:
diff changeset
316 }
cb825acd883a first commit
sugi
parents:
diff changeset
317 assertEquals(t.b.length, u.b.length);
cb825acd883a first commit
sugi
parents:
diff changeset
318 for (int i = 0; i < t.b.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
319 assertEquals(t.b[i].length, u.b[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
320 for (int j = 0; j < t.i[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
321 assertEquals(t.b[i][j], u.b[i][j]);
cb825acd883a first commit
sugi
parents:
diff changeset
322 }
cb825acd883a first commit
sugi
parents:
diff changeset
323 }
cb825acd883a first commit
sugi
parents:
diff changeset
324 assertEquals(t.str.length, u.str.length);
cb825acd883a first commit
sugi
parents:
diff changeset
325 for (int i = 0; i < t.str.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
326 assertEquals(t.str[i].length, u.str[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
327 for (int j = 0; j < t.str[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
328 assertEquals(t.str[i][j], u.str[i][j]);
cb825acd883a first commit
sugi
parents:
diff changeset
329 }
cb825acd883a first commit
sugi
parents:
diff changeset
330 }
cb825acd883a first commit
sugi
parents:
diff changeset
331 /**
cb825acd883a first commit
sugi
parents:
diff changeset
332 assertEquals(t.slist.length, u.slist.length);
cb825acd883a first commit
sugi
parents:
diff changeset
333 for (int i = 0; i < t.slist.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
334 assertEquals(t.slist[i].length, u.slist[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
335 for (int j = 0; j < t.slist[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
336 assertEquals(t.slist[i][j].size(), u.slist[i][j].size());
cb825acd883a first commit
sugi
parents:
diff changeset
337 for (int k = 0; k < t.slist[i][j].size(); k++) {
cb825acd883a first commit
sugi
parents:
diff changeset
338 assertEquals(t.slist[i][j].get(k), u.slist[i][j].get(k));
cb825acd883a first commit
sugi
parents:
diff changeset
339 }
cb825acd883a first commit
sugi
parents:
diff changeset
340 }
cb825acd883a first commit
sugi
parents:
diff changeset
341 }
cb825acd883a first commit
sugi
parents:
diff changeset
342 */
cb825acd883a first commit
sugi
parents:
diff changeset
343 }
cb825acd883a first commit
sugi
parents:
diff changeset
344
cb825acd883a first commit
sugi
parents:
diff changeset
345 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
346 public static class Dim3Test {
cb825acd883a first commit
sugi
parents:
diff changeset
347 public int[][][] i;
cb825acd883a first commit
sugi
parents:
diff changeset
348 public String[][][] str;
cb825acd883a first commit
sugi
parents:
diff changeset
349 public List<String>[][][] slist;
cb825acd883a first commit
sugi
parents:
diff changeset
350
cb825acd883a first commit
sugi
parents:
diff changeset
351 public Dim3Test() {
cb825acd883a first commit
sugi
parents:
diff changeset
352 }
cb825acd883a first commit
sugi
parents:
diff changeset
353 }
cb825acd883a first commit
sugi
parents:
diff changeset
354
cb825acd883a first commit
sugi
parents:
diff changeset
355 @SuppressWarnings({ "unchecked", "rawtypes" })
cb825acd883a first commit
sugi
parents:
diff changeset
356 @Ignore
cb825acd883a first commit
sugi
parents:
diff changeset
357 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
358 public void testDim3() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
359 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
360
cb825acd883a first commit
sugi
parents:
diff changeset
361 Dim3Test t = new Dim3Test();
cb825acd883a first commit
sugi
parents:
diff changeset
362 t.i = new int[2][][];
cb825acd883a first commit
sugi
parents:
diff changeset
363 t.i[0] = new int[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
364 t.i[0][0] = new int[] { 0, 1 };
cb825acd883a first commit
sugi
parents:
diff changeset
365 t.i[0][1] = new int[] { 2, 3, 4 };
cb825acd883a first commit
sugi
parents:
diff changeset
366 t.i[1] = new int[1][];
cb825acd883a first commit
sugi
parents:
diff changeset
367 t.i[1][0] = new int[] { 5 };
cb825acd883a first commit
sugi
parents:
diff changeset
368 t.str = new String[2][][];
cb825acd883a first commit
sugi
parents:
diff changeset
369 t.str[0] = new String[1][];
cb825acd883a first commit
sugi
parents:
diff changeset
370 t.str[0][0] = new String[] { "aa", "bb" };
cb825acd883a first commit
sugi
parents:
diff changeset
371 t.str[1] = new String[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
372 t.str[1][0] = new String[] { "cc", "dd", "ee" };
cb825acd883a first commit
sugi
parents:
diff changeset
373 t.str[1][1] = new String[] { "ff" };
cb825acd883a first commit
sugi
parents:
diff changeset
374 t.slist = new List[2][][];
cb825acd883a first commit
sugi
parents:
diff changeset
375 t.slist[0] = new List[2][];
cb825acd883a first commit
sugi
parents:
diff changeset
376 t.slist[0][0] = new List[1];
cb825acd883a first commit
sugi
parents:
diff changeset
377 t.slist[0][0][0] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
378 t.slist[0][0][0].add("ff");
cb825acd883a first commit
sugi
parents:
diff changeset
379 t.slist[0][0][0].add("gg");
cb825acd883a first commit
sugi
parents:
diff changeset
380 t.slist[0][1] = new List[2];
cb825acd883a first commit
sugi
parents:
diff changeset
381 t.slist[0][1][0] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
382 t.slist[0][1][0].add("hh");
cb825acd883a first commit
sugi
parents:
diff changeset
383 t.slist[0][1][0].add("ii");
cb825acd883a first commit
sugi
parents:
diff changeset
384 t.slist[0][1][1] = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
385 t.slist[0][1][1].add("jj");
cb825acd883a first commit
sugi
parents:
diff changeset
386 t.slist[0][1][1].add("kk");
cb825acd883a first commit
sugi
parents:
diff changeset
387 t.slist[1] = new List[1][];
cb825acd883a first commit
sugi
parents:
diff changeset
388 t.slist[1][0] = new List[0];
cb825acd883a first commit
sugi
parents:
diff changeset
389
cb825acd883a first commit
sugi
parents:
diff changeset
390 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
391 packer.write(t);
cb825acd883a first commit
sugi
parents:
diff changeset
392 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
393 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
394 Dim3Test u = unpacker.read(Dim3Test.class);
cb825acd883a first commit
sugi
parents:
diff changeset
395 assertEquals(t.i.length, t.i.length);
cb825acd883a first commit
sugi
parents:
diff changeset
396 for (int i = 0; i < t.i.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
397 assertEquals(t.i[i].length, u.i[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
398 for (int j = 0; j < t.i[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
399 for (int k = 0; k < t.i[i].length; k++) {
cb825acd883a first commit
sugi
parents:
diff changeset
400 assertEquals(t.i[i][j][k], u.i[i][j][k]);
cb825acd883a first commit
sugi
parents:
diff changeset
401 }
cb825acd883a first commit
sugi
parents:
diff changeset
402 }
cb825acd883a first commit
sugi
parents:
diff changeset
403 }
cb825acd883a first commit
sugi
parents:
diff changeset
404 assertEquals(t.str.length, t.str.length);
cb825acd883a first commit
sugi
parents:
diff changeset
405 for (int i = 0; i < t.str.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
406 assertEquals(t.str[i].length, u.str[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
407 for (int j = 0; j < t.str[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
408 assertEquals(t.str[i][j].length, u.str[i][j].length);
cb825acd883a first commit
sugi
parents:
diff changeset
409 for (int k = 0; k < t.str[i][j].length; k++) {
cb825acd883a first commit
sugi
parents:
diff changeset
410 assertEquals(t.str[i][j][k], u.str[i][j][k]);
cb825acd883a first commit
sugi
parents:
diff changeset
411 }
cb825acd883a first commit
sugi
parents:
diff changeset
412 }
cb825acd883a first commit
sugi
parents:
diff changeset
413 }
cb825acd883a first commit
sugi
parents:
diff changeset
414 assertEquals(t.slist.length, t.slist.length);
cb825acd883a first commit
sugi
parents:
diff changeset
415 for (int i = 0; i < t.slist.length; i++) {
cb825acd883a first commit
sugi
parents:
diff changeset
416 assertEquals(t.slist[i].length, u.slist[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
417 for (int j = 0; j < t.slist[i].length; j++) {
cb825acd883a first commit
sugi
parents:
diff changeset
418 assertEquals(t.slist[i][j].length, u.slist[i][j].length);
cb825acd883a first commit
sugi
parents:
diff changeset
419 for (int k = 0; k < t.slist[i][j].length; k++) {
cb825acd883a first commit
sugi
parents:
diff changeset
420 assertEquals(t.slist[i][j][k].size(),
cb825acd883a first commit
sugi
parents:
diff changeset
421 u.slist[i][j][k].size());
cb825acd883a first commit
sugi
parents:
diff changeset
422 for (int l = 0; l < t.slist[i][j][k].size(); l++) {
cb825acd883a first commit
sugi
parents:
diff changeset
423 assertEquals(t.slist[i][j][k].get(l),
cb825acd883a first commit
sugi
parents:
diff changeset
424 u.slist[i][j][k].get(l));
cb825acd883a first commit
sugi
parents:
diff changeset
425 }
cb825acd883a first commit
sugi
parents:
diff changeset
426 }
cb825acd883a first commit
sugi
parents:
diff changeset
427 }
cb825acd883a first commit
sugi
parents:
diff changeset
428 }
cb825acd883a first commit
sugi
parents:
diff changeset
429 }
cb825acd883a first commit
sugi
parents:
diff changeset
430
cb825acd883a first commit
sugi
parents:
diff changeset
431 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
432 public void testLocal() throws IOException {
cb825acd883a first commit
sugi
parents:
diff changeset
433 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
434
cb825acd883a first commit
sugi
parents:
diff changeset
435 int[][][] src = new int[10][20][30];
cb825acd883a first commit
sugi
parents:
diff changeset
436 for (int i = 0; i < 10; ++i) {
cb825acd883a first commit
sugi
parents:
diff changeset
437 for (int j = 0; j < 20; ++j) {
cb825acd883a first commit
sugi
parents:
diff changeset
438 for (int k = 0; k < 30; ++k) {
cb825acd883a first commit
sugi
parents:
diff changeset
439 src[i][j][k] = (int) (Math.random() * 100);
cb825acd883a first commit
sugi
parents:
diff changeset
440 }
cb825acd883a first commit
sugi
parents:
diff changeset
441 }
cb825acd883a first commit
sugi
parents:
diff changeset
442 }
cb825acd883a first commit
sugi
parents:
diff changeset
443
cb825acd883a first commit
sugi
parents:
diff changeset
444 BufferPacker packer = msgpack.createBufferPacker();
cb825acd883a first commit
sugi
parents:
diff changeset
445 packer.write(src);
cb825acd883a first commit
sugi
parents:
diff changeset
446 byte[] raw = packer.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
447 BufferUnpacker unpacker = msgpack.createBufferUnpacker(raw);
cb825acd883a first commit
sugi
parents:
diff changeset
448 int[][][] u = unpacker.read(int[][][].class);
cb825acd883a first commit
sugi
parents:
diff changeset
449 assertEquals(src.length, u.length);
cb825acd883a first commit
sugi
parents:
diff changeset
450 for (int i = 0; i < src.length; ++i) {
cb825acd883a first commit
sugi
parents:
diff changeset
451 assertEquals(src[i].length, u[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
452 for (int j = 0; j < src[i].length; ++j) {
cb825acd883a first commit
sugi
parents:
diff changeset
453 assertEquals(src[i][j].length, u[i][j].length);
cb825acd883a first commit
sugi
parents:
diff changeset
454 for (int k = 0; k < src[i][j].length; ++k) {
cb825acd883a first commit
sugi
parents:
diff changeset
455 assertEquals(src[i][j][k], u[i][j][k]);
cb825acd883a first commit
sugi
parents:
diff changeset
456 }
cb825acd883a first commit
sugi
parents:
diff changeset
457 }
cb825acd883a first commit
sugi
parents:
diff changeset
458 }
cb825acd883a first commit
sugi
parents:
diff changeset
459
cb825acd883a first commit
sugi
parents:
diff changeset
460 Unconverter unconverter = new Unconverter(msgpack);
cb825acd883a first commit
sugi
parents:
diff changeset
461 unconverter.write(src);
cb825acd883a first commit
sugi
parents:
diff changeset
462 Value value = unconverter.getResult();
cb825acd883a first commit
sugi
parents:
diff changeset
463 Converter converter = new Converter(msgpack, value);
cb825acd883a first commit
sugi
parents:
diff changeset
464 int[][][] c = converter.read(int[][][].class);
cb825acd883a first commit
sugi
parents:
diff changeset
465 assertEquals(src.length, c.length);
cb825acd883a first commit
sugi
parents:
diff changeset
466 for (int i = 0; i < src.length; ++i) {
cb825acd883a first commit
sugi
parents:
diff changeset
467 assertEquals(src[i].length, c[i].length);
cb825acd883a first commit
sugi
parents:
diff changeset
468 for (int j = 0; j < src[i].length; ++j) {
cb825acd883a first commit
sugi
parents:
diff changeset
469 assertEquals(src[i][j].length, c[i][j].length);
cb825acd883a first commit
sugi
parents:
diff changeset
470 for (int k = 0; k < src[i][j].length; ++k) {
cb825acd883a first commit
sugi
parents:
diff changeset
471 assertEquals(src[i][j][k], c[i][j][k]);
cb825acd883a first commit
sugi
parents:
diff changeset
472 }
cb825acd883a first commit
sugi
parents:
diff changeset
473 }
cb825acd883a first commit
sugi
parents:
diff changeset
474 }
cb825acd883a first commit
sugi
parents:
diff changeset
475 }
cb825acd883a first commit
sugi
parents:
diff changeset
476 }