Use Maps.equals, test streaming Integer values in a Map

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6210 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Charlie Groves
2010-10-15 20:30:03 +00:00
parent c675a8297d
commit 88239d8c42
3 changed files with 14 additions and 23 deletions
@@ -34,6 +34,7 @@ import com.threerings.util.Map;
import com.threerings.io.streamers.MapStreamer;
// GENERATED PREAMBLE END
import com.threerings.util.Integer;
import com.threerings.util.Maps;
import com.threerings.util.Util;
@@ -73,25 +74,10 @@ public class ASStreamableSubset extends SimpleStreamableObject
stringMap.put("one", "1");
stringMap.put("two", "2");
stringMap.put("three", "3");
}
protected static function mapEquals (m1 :Map, m2 :Map) :Boolean
{
if (m1 == m2) {
return true;
}
if (m1 == null) {
return false;
}
if (m1.size() != m2.size()) {
return false;
}
for each (var key :Object in m1.keys()) {
if (!m2.containsKey(key) || !Util.equals(m1.get(key), m2.get(key))) {
return false;
}
}
return true;
stringIntMap = Maps.newMapOf(String);
stringIntMap.put("one", Integer.valueOf(1));
stringIntMap.put("two", Integer.valueOf(2));
stringIntMap.put("three", Integer.valueOf(3));
}
public function equals (o :ASStreamableSubset) :Boolean
@@ -103,8 +89,8 @@ public class ASStreamableSubset extends SimpleStreamableObject
Util.equals(ints, o.ints) && Util.equals(nullBools, o.nullBools) &&
Util.equals(nullBytes, o.nullBytes) && Util.equals(nullInts, o.nullInts) &&
Util.equals(strings, o.strings) && Util.equals(nullStrings, o.nullStrings) &&
mapEquals(stringMap, o.stringMap) &&
mapEquals(nullStringMap, o.nullStringMap);
Maps.equals(stringMap, o.stringMap) && Maps.equals(stringIntMap, o.stringIntMap)
Maps.equals(nullStringMap, o.nullStringMap);
}
@@ -128,6 +114,7 @@ public class ASStreamableSubset extends SimpleStreamableObject
public var strings :TypedArray;
public var nullStrings :TypedArray;
public var stringMap :Map;
public var stringIntMap :Map;
public var nullStringMap :Map;
override public function readObject (ins :ObjectInputStream) :void
@@ -152,6 +139,7 @@ public class ASStreamableSubset extends SimpleStreamableObject
strings = ins.readField(ArrayStreamer.INSTANCE);
nullStrings = ins.readField(ArrayStreamer.INSTANCE);
stringMap = ins.readField(MapStreamer.INSTANCE);
stringIntMap = ins.readField(MapStreamer.INSTANCE);
nullStringMap = ins.readField(MapStreamer.INSTANCE);
}
@@ -177,6 +165,7 @@ public class ASStreamableSubset extends SimpleStreamableObject
out.writeField(strings, ArrayStreamer.INSTANCE);
out.writeField(nullStrings, ArrayStreamer.INSTANCE);
out.writeField(stringMap, MapStreamer.INSTANCE);
out.writeField(stringIntMap, MapStreamer.INSTANCE);
out.writeField(nullStringMap, MapStreamer.INSTANCE);
}
// GENERATED STREAMING END
@@ -57,7 +57,8 @@ public class StreamableTest extends TestCase
"0003010001010000000301020301000000030000000100000002000000030000000100000003fffe" +
"00106a6176612e6c616e672e537472696e6700036f6e650002000374776f00020005746872656500" +
"01000000030002000374776f0002000132000200036f6e6500020001310002000574687265650002" +
"00013300");
"00013301000000030002000374776ffffd00116a6176612e6c616e672e496e746567657200000002" +
"000200036f6e6500030000000100020005746872656500030000000300");
var input:ObjectInputStream = new ObjectInputStream(javaData);
var read :ASStreamableSubset = input.readObject(ASStreamableSubset);
assertTrue(sub.equals(read));
@@ -55,6 +55,7 @@ public class ASStreamableSubset extends SimpleStreamableObject
public List<String> nullStrings;
public Map<String, String> stringMap = Mapping.of("one", "1", "two", "2", "three", "3");
public Map<String, Integer> stringIntMap = Mapping.of("one", 1, "two", 2, "three", 3);
public Map<String, String> nullStringMap;
@Override
@@ -84,7 +85,7 @@ public class ASStreamableSubset extends SimpleStreamableObject
Objects.equal(strings, ow.strings) && Objects.equal(nullStrings, ow.nullStrings)
&&
Objects.equal(stringMap, ow.stringMap)
Objects.equal(stringMap, ow.stringMap) && Objects.equal(stringIntMap, ow.stringIntMap)
&& Objects.equal(nullStringMap, ow.nullStringMap);
}
}