public void TestEncodeDecode() { { OtpOutputStream os = new OtpOutputStream(new Erlang.Atom("abc")); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); Assert.IsTrue("abc" == ins.read_atom()); } { OtpOutputStream os = new OtpOutputStream(new Erlang.String("string")); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); Assert.IsTrue("string" == ins.read_string()); } { Erlang.Pid pid = new Erlang.Pid("abc", 1, 2, 3); OtpOutputStream os = new OtpOutputStream(pid); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); Assert.IsTrue(pid.Equals(ins.read_pid())); } { Erlang.Port p = new Erlang.Port("abc", 1, 2); OtpOutputStream os = new OtpOutputStream(p); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); Assert.IsTrue(p.Equals(ins.read_port())); } { Erlang.Ref p = new Erlang.Ref("abc", new int[3] { 1, 2, 3 }, 2); OtpOutputStream os = new OtpOutputStream(p); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); Assert.IsTrue(p.Equals(ins.read_ref())); } { OtpOutputStream os = new OtpOutputStream(); os.write_long(1); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); long n = ins.read_long(); Assert.IsTrue(1 == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_long(0xFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); long n = ins.read_long(); Assert.IsTrue(0xFFFFFF == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_long(0xFFFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); long n = ins.read_long(); Assert.IsTrue(0xFFFFFFFF == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_ulong((ulong)0xFFFFFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); ulong n = ins.read_ulong(); Assert.IsTrue((ulong)0xFFFFFFFFFF == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_ulong((ulong)0xFFFFFFFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); ulong n = ins.read_ulong(); Assert.IsTrue((ulong)0xFFFFFFFFFFFF == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_ulong((ulong)0xFFFFFFFFFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); ulong n = ins.read_ulong(); Assert.IsTrue((ulong)0xFFFFFFFFFFFFFF == n); } { OtpOutputStream os = new OtpOutputStream(); os.write_ulong((ulong)0xFFFFFFFFFFFFFFFF); OtpInputStream ins = new OtpInputStream(os.getBuffer(), 0, os.size()); ulong n = ins.read_ulong(); Assert.IsTrue((ulong)0xFFFFFFFFFFFFFFFF == n); } }