196 lines
5.2 KiB
C#
196 lines
5.2 KiB
C#
using NUnit.Framework;
|
|
using System;
|
|
|
|
|
|
namespace UniJSON.MsgPack
|
|
{
|
|
[TestFixture]
|
|
public class IntTest
|
|
{
|
|
[Test]
|
|
public void positive_fixnum()
|
|
{
|
|
for (Byte i = 0; i < 128; ++i)
|
|
{
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[] { i }, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void negative_fixnum()
|
|
{
|
|
for (SByte i = -32; i < 0; ++i)
|
|
{
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void uint8()
|
|
{
|
|
{
|
|
Byte i = 0x7F + 20;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xcc, 0x93,
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void cast_large_type()
|
|
{
|
|
{
|
|
Byte i = 0x7F + 20;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xcc, 0x93,
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void uint16()
|
|
{
|
|
{
|
|
UInt16 i = 0xFF + 20;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xcd, 0x01, 0x13
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void uint32()
|
|
{
|
|
{
|
|
UInt32 i = 0xFFFF + 20;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xce, 0x00, 0x01, 0x00, 0x13
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void uint64()
|
|
{
|
|
{
|
|
UInt64 i = 0xFFFFFFFF;
|
|
i += 20;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void int8()
|
|
{
|
|
{
|
|
SByte i = -64;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
|
|
Assert.AreEqual(new Byte[]{
|
|
0xd0, 0xc0,
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void int128Test()
|
|
{
|
|
int i = 128;
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
Assert.AreEqual(new Byte[]{
|
|
0xcc, 0x80,
|
|
}, bytes.ToEnumerable());
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
|
|
[Test]
|
|
public void int16()
|
|
{
|
|
{
|
|
Int16 i = -150;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
|
|
Assert.AreEqual(new Byte[]{
|
|
0xd1, 0xFF, 0x6a
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void int32()
|
|
{
|
|
{
|
|
Int32 i = -35000;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
|
|
Assert.AreEqual(new Byte[]{
|
|
0xd2, 0xff, 0xff, 0x77, 0x48
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void int64()
|
|
{
|
|
{
|
|
Int64 i = -2147483650;
|
|
|
|
var bytes = new MsgPackFormatter().Value(i).GetStore().Bytes;
|
|
|
|
Assert.AreEqual(new Byte[]{
|
|
0xd3, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfe
|
|
}, bytes.ToEnumerable());
|
|
|
|
var j = MsgPackParser.Parse(bytes).GetValue();
|
|
Assert.AreEqual(i, j);
|
|
}
|
|
}
|
|
}
|
|
}
|