Skip to content

Commit c71fd91

Browse files
Merge pull request #90 from paulpach/moretests
They pass now
2 parents 6acc618 + 5ce43ae commit c71fd91

File tree

2 files changed

+1469
-16
lines changed

2 files changed

+1469
-16
lines changed

MLAPI.Tests/NetworkingManagerComponents/Binary/BitStreamTest.cs

Lines changed: 166 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,21 +120,23 @@ public void TestInOutPacked64Bit()
120120

121121
long someNumber = -1469598103934656037;
122122
ulong uNumber = 81246971249124124;
123-
123+
ulong uNumber2 = 2287;
124+
ulong uNumber3 = 235;
124125

125126
BitStream outStream = new BitStream(buffer);
126127
outStream.WriteInt64Packed(someNumber);
127128
outStream.WriteUInt64Packed(uNumber);
128-
129+
outStream.WriteUInt64Packed(uNumber2);
130+
outStream.WriteUInt64Packed(uNumber3);
129131

130132
// the bit should now be stored in the buffer, lets see if it comes out
131133

132134
BitStream inStream = new BitStream(buffer);
133-
long result = inStream.ReadInt64Packed();
134-
ulong result1 = inStream.ReadUInt64Packed();
135135

136-
Assert.That(result, Is.EqualTo(someNumber));
137-
Assert.That(result1, Is.EqualTo(uNumber));
136+
Assert.That(inStream.ReadInt64Packed(), Is.EqualTo(someNumber));
137+
Assert.That(inStream.ReadUInt64Packed(), Is.EqualTo(uNumber));
138+
Assert.That(inStream.ReadUInt64Packed(), Is.EqualTo(uNumber2));
139+
Assert.That(inStream.ReadUInt64Packed(), Is.EqualTo(uNumber3));
138140
}
139141

140142
[Test]
@@ -331,7 +333,21 @@ public void TestWriteDouble()
331333
}
332334

333335
[Test]
334-
public void TestWriteDoublePacked()
336+
public void TestWritePackedSingle()
337+
{
338+
float somenumber = (float)Math.PI;
339+
BitStream outStream = new BitStream();
340+
341+
outStream.WriteSinglePacked(somenumber);
342+
byte[] buffer = outStream.GetBuffer();
343+
344+
BitStream inStream = new BitStream(buffer);
345+
346+
Assert.That(inStream.ReadSinglePacked(), Is.EqualTo(somenumber));
347+
}
348+
349+
[Test]
350+
public void TestWritePackedDouble()
335351
{
336352
double somenumber = Math.PI;
337353
BitStream outStream = new BitStream();
@@ -379,6 +395,39 @@ public void TestWriteMisaligned()
379395
Assert.That(inStream.ReadByte(), Is.EqualTo(0));
380396
}
381397

398+
[Test]
399+
public void TestBits()
400+
{
401+
ulong somevalue = 0b1100101010011;
402+
403+
BitStream outStream = new BitStream();
404+
outStream.WriteBits(somevalue, 5);
405+
406+
byte[] buffer = outStream.GetBuffer();
407+
408+
BitStream inStream = new BitStream(buffer);
409+
410+
Assert.That(inStream.ReadBits(5), Is.EqualTo(0b10011));
411+
//Assert.Fail("There is no way to read back the bits");
412+
413+
}
414+
415+
[Test]
416+
public void TestNibble()
417+
{
418+
byte somevalue = 0b1010011;
419+
420+
BitStream outStream = new BitStream();
421+
outStream.WriteNibble(somevalue);
422+
423+
byte[] buffer = outStream.GetBuffer();
424+
425+
BitStream inStream = new BitStream(buffer);
426+
427+
Assert.That(inStream.ReadNibble(), Is.EqualTo(0b0011));
428+
//Assert.Fail("There is no way to read back Nibbles");
429+
}
430+
382431
[Test]
383432
public void TestReadWriteMissaligned()
384433
{
@@ -393,5 +442,115 @@ public void TestReadWriteMissaligned()
393442
inStream.Read(readTo, 0, 16);
394443
Assert.That(readTo, Is.EquivalentTo(writeBytes));
395444
}
445+
446+
[Test]
447+
public void TestArrays()
448+
{
449+
byte[] byteOutData = new byte[] { 1, 2, 13, 37, 69 };
450+
int[] intOutData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
451+
double[] doubleOutData = new double[] { 0.02, 0.06, 1E40, 256.0 };
452+
453+
BitStream outStream = new BitStream();
454+
outStream.WriteByteArray(byteOutData);
455+
outStream.WriteIntArray(intOutData);
456+
outStream.WriteDoubleArray(doubleOutData);
457+
458+
BitStream inStream = new BitStream(outStream.GetBuffer());
459+
byte[] byteInData = inStream.ReadByteArray();
460+
int[] intInData = inStream.ReadIntArray();
461+
double[] doubleInData = inStream.ReadDoubleArray();
462+
463+
Assert.That(byteOutData, Is.EqualTo(byteInData));
464+
Assert.That(intOutData, Is.EqualTo(intInData));
465+
Assert.That(doubleOutData, Is.EqualTo(doubleInData));
466+
}
467+
468+
[Test]
469+
public void TestArraysPacked()
470+
{
471+
short[] byteOutData = new short[] { 1, 2, 13, 37, 69 };
472+
int[] intOutData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
473+
double[] doubleOutData = new double[] { 0.02, 0.06, 1E40, 256.0 };
474+
475+
BitStream outStream = new BitStream();
476+
outStream.WriteShortArrayPacked(byteOutData);
477+
outStream.WriteIntArrayPacked(intOutData);
478+
outStream.WriteDoubleArrayPacked(doubleOutData);
479+
480+
BitStream inStream = new BitStream(outStream.GetBuffer());
481+
short[] byteInData = inStream.ReadShortArrayPacked();
482+
int[] intInData = inStream.ReadIntArrayPacked();
483+
double[] doubleInData = inStream.ReadDoubleArrayPacked();
484+
485+
Assert.That(byteOutData, Is.EqualTo(byteInData));
486+
Assert.That(intOutData, Is.EqualTo(intInData));
487+
Assert.That(doubleOutData, Is.EqualTo(doubleInData));
488+
}
489+
490+
[Test]
491+
public void TestArraysDiff()
492+
{
493+
// Values changed test
494+
byte[] byteOutDiffData = new byte[] { 1, 2, 13, 29, 44, 15 };
495+
byte[] byteOutData = new byte[] { 1, 2, 13, 37, 69 };
496+
497+
// No change test
498+
int[] intOutDiffData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
499+
int[] intOutData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
500+
501+
// Array resize test
502+
double[] doubleOutDiffData = new double[] { 0.2, 6, 1E39 };
503+
double[] doubleOutData = new double[] { 0.02, 0.06, 1E40, 256.0 };
504+
505+
// Serialize
506+
BitStream outStream = new BitStream();
507+
outStream.WriteByteArrayDiff(byteOutData, byteOutDiffData);
508+
outStream.WriteIntArrayDiff(intOutData, intOutDiffData);
509+
outStream.WriteDoubleArrayDiff(doubleOutData, doubleOutDiffData);
510+
511+
// Deserialize
512+
BitStream inStream = new BitStream(outStream.GetBuffer());
513+
byte[] byteInData = inStream.ReadByteArrayDiff(byteOutDiffData);
514+
int[] intInData = inStream.ReadIntArrayDiff(intOutDiffData);
515+
double[] doubleInData = inStream.ReadDoubleArrayDiff(doubleOutDiffData);
516+
517+
// Compare
518+
Assert.That(byteInData, Is.EqualTo(byteOutData));
519+
Assert.That(intInData, Is.EqualTo(intOutData));
520+
Assert.That(doubleInData, Is.EqualTo(doubleOutData));
521+
}
522+
523+
[Test]
524+
public void TestArraysPackedDiff()
525+
{
526+
// Values changed test
527+
long[] longOutDiffData = new long[] { 1, 2, 13, 29, 44, 15 };
528+
long[] longOutData = new long[] { 1, 2, 13, 37, 69 };
529+
530+
// No change test
531+
int[] intOutDiffData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
532+
int[] intOutData = new int[] { 1337, 69420, 12345, 0, 0, 5 };
533+
534+
// Array resize test
535+
double[] doubleOutDiffData = new double[] { 0.2, 6, 1E39 };
536+
double[] doubleOutData = new double[] { 0.02, 0.06, 1E40, 256.0 };
537+
538+
// Serialize
539+
BitStream outStream = new BitStream();
540+
outStream.WriteLongArrayPackedDiff(longOutData, longOutDiffData);
541+
outStream.WriteIntArrayPackedDiff(intOutData, intOutDiffData);
542+
outStream.WriteDoubleArrayPackedDiff(doubleOutData, doubleOutDiffData);
543+
544+
// Deserialize
545+
BitStream inStream = new BitStream(outStream.GetBuffer());
546+
long[] longInData = inStream.ReadLongArrayPackedDiff(longOutDiffData);
547+
int[] intInData = inStream.ReadIntArrayPackedDiff(intOutDiffData);
548+
double[] doubleInData = inStream.ReadDoubleArrayPackedDiff(doubleOutDiffData);
549+
550+
// Compare
551+
Assert.That(longInData, Is.EqualTo(longOutData));
552+
Assert.That(intInData, Is.EqualTo(intOutData));
553+
Assert.That(doubleInData, Is.EqualTo(doubleOutData));
554+
}
396555
}
397556
}

0 commit comments

Comments
 (0)