public void MainTest()
{
AssertEncode(
writer => writer.WriteValue(EmberId.CreateApplication(0), true),
0x60, 0x03, 0x01, 0x01, 0xFF);
AssertEncode(
writer => writer.WriteValue(EmberId.CreateContextSpecific(1), 0x80),
0xA1, 0x04, 0x02, 0x02, 0x00, 0x80);
AssertEncode(
writer => writer.WriteValue(EmberId.CreateApplication(2), new byte[] { 0x42 }),
0x62, 0x03, 0x04, 0x01, 0x42);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), 0.0), 0xA3, 0x02, 0x09, 0x00);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), double.PositiveInfinity), 0xA3, 0x03, 0x09, 0x01, 0x40);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), double.NegativeInfinity), 0xA3, 0x03, 0x09, 0x01, 0x41);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), double.NaN), 0xA3, 0x03, 0x09, 0x01, 0x42);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), -0.0), 0xA3, 0x03, 0x09, 0x01, 0x43);
AssertEncode(writer => writer.WriteValue(EmberId.CreateContextSpecific(3), -1.0), 0xA3, 0x05, 0x09, 0x03, 0xC0, 0x00, 0x01);
AssertEncode(
writer => writer.WriteValue(EmberId.CreateApplication(4), "A"),
0x64, 0x03, 0x0C, 0x01, 0x41);
AssertEncode(
writer => writer.WriteValue(EmberId.CreateContextSpecific(5), new[] { 15 }),
0xA5, 0x03, 0x0D, 0x01, 0x0F);
AssertEncode(
writer => writer.WriteStartSequence(EmberId.CreateApplication(6)),
0x66, 0x80, 0x30, 0x80);
AssertEncode(
writer => writer.WriteStartSet(EmberId.CreateContextSpecific(7)),
0xA7, 0x80, 0x31, 0x80);
AssertEncode(
writer => writer.WriteStartApplicationDefinedType(
EmberId.CreateContextSpecific(7), InnerNumber.FirstApplication),
0xA7, 0x80, 0x60, 0x80);
AssertEncode(
writer => writer.WriteEndContainer(),
0x00, 0x00, 0x00, 0x00);
}