2006-11-10 14:50:00 +00:00
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using libsecondlife;
|
|
|
|
|
using libsecondlife.Packets;
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
|
|
|
|
namespace libsecondlife.Tests
|
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
|
|
|
|
public class TypeTests : Assert
|
|
|
|
|
{
|
|
|
|
|
[Test]
|
|
|
|
|
public void LLUUIDs()
|
|
|
|
|
{
|
|
|
|
|
// Comparison
|
|
|
|
|
LLUUID a = new LLUUID(new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
|
|
|
|
|
0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, 0);
|
|
|
|
|
LLUUID b = new LLUUID(new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
|
|
|
|
|
0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, 0);
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(a == b, "LLUUID comparison operator failed, " + a.ToString() + " should equal " +
|
|
|
|
|
b.ToString());
|
|
|
|
|
|
|
|
|
|
// From string
|
|
|
|
|
a = new LLUUID(new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
|
|
|
|
|
0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, 0);
|
|
|
|
|
b = new LLUUID("00010203-0405-0607-0809-0a0b0c0d0e0f");
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(a == b, "LLUUID hyphenated string constructor failed, should have " + a.ToString() +
|
|
|
|
|
" but we got " + b.ToString());
|
|
|
|
|
|
2006-11-27 21:42:46 +00:00
|
|
|
// TODO: CRC test
|
2006-11-10 14:50:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void Quaternions()
|
|
|
|
|
{
|
|
|
|
|
LLQuaternion a = new LLQuaternion(1, 0, 0, 0);
|
|
|
|
|
LLQuaternion b = new LLQuaternion(1, 0, 0, 0);
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(a == b, "LLQuaternion comparison operator failed");
|
|
|
|
|
|
|
|
|
|
LLQuaternion expected = new LLQuaternion(0, 0, 0, -1);
|
|
|
|
|
LLQuaternion result = a * b;
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result == expected, a.ToString() + " * " + b.ToString() + " produced " + result.ToString() +
|
|
|
|
|
" instead of " + expected.ToString());
|
|
|
|
|
|
|
|
|
|
a = new LLQuaternion(1, 0, 0, 0);
|
|
|
|
|
b = new LLQuaternion(0, 1, 0, 0);
|
|
|
|
|
expected = new LLQuaternion(0, 0, 1, 0);
|
|
|
|
|
result = a * b;
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result == expected, a.ToString() + " * " + b.ToString() + " produced " + result.ToString() +
|
|
|
|
|
" instead of " + expected.ToString());
|
|
|
|
|
|
|
|
|
|
a = new LLQuaternion(0, 0, 1, 0);
|
|
|
|
|
b = new LLQuaternion(0, 1, 0, 0);
|
|
|
|
|
expected = new LLQuaternion(-1, 0, 0, 0);
|
|
|
|
|
result = a * b;
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result == expected, a.ToString() + " * " + b.ToString() + " produced " + result.ToString() +
|
|
|
|
|
" instead of " + expected.ToString());
|
|
|
|
|
}
|
2007-01-24 00:45:44 +00:00
|
|
|
|
2006-11-10 14:50:00 +00:00
|
|
|
[Test]
|
|
|
|
|
public void VectorQuaternionMath()
|
|
|
|
|
{
|
|
|
|
|
;
|
|
|
|
|
}
|
2007-01-24 00:45:44 +00:00
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void FloatsToTerseStrings()
|
|
|
|
|
{
|
|
|
|
|
float f = 1.20f;
|
|
|
|
|
string a = String.Empty;
|
|
|
|
|
string b = "1.2";
|
|
|
|
|
|
|
|
|
|
a = Helpers.FloatToTerseString(f);
|
|
|
|
|
Assert.IsTrue(a == b, f.ToString() + " converted to " + a + ", expecting " + b);
|
|
|
|
|
|
|
|
|
|
f = 24.00f;
|
|
|
|
|
b = "24";
|
|
|
|
|
|
|
|
|
|
a = Helpers.FloatToTerseString(f);
|
|
|
|
|
Assert.IsTrue(a == b, f.ToString() + " converted to " + a + ", expecting " + b);
|
|
|
|
|
|
|
|
|
|
f = -0.59f;
|
|
|
|
|
b = "-.59";
|
|
|
|
|
|
|
|
|
|
a = Helpers.FloatToTerseString(f);
|
|
|
|
|
Assert.IsTrue(a == b, f.ToString() + " converted to " + a + ", expecting " + b);
|
|
|
|
|
|
|
|
|
|
f = 0.59f;
|
|
|
|
|
b = ".59";
|
|
|
|
|
|
|
|
|
|
a = Helpers.FloatToTerseString(f);
|
|
|
|
|
Assert.IsTrue(a == b, f.ToString() + " converted to " + a + ", expecting " + b);
|
|
|
|
|
}
|
2007-01-31 13:46:16 +00:00
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void BitUnpacking()
|
|
|
|
|
{
|
|
|
|
|
byte[] data = new byte[] { 0x80, 0x00, 0x0F, 0x50, 0x83, 0x7D };
|
|
|
|
|
BitPack bitpacker = new BitPack(data, 0);
|
|
|
|
|
|
|
|
|
|
int b = bitpacker.UnpackBits(1);
|
|
|
|
|
Assert.IsTrue(b == 1, "Unpacked " + b + " instead of 1");
|
|
|
|
|
|
|
|
|
|
b = bitpacker.UnpackBits(1);
|
|
|
|
|
Assert.IsTrue(b == 0, "Unpacked " + b + " instead of 0");
|
|
|
|
|
|
|
|
|
|
bitpacker = new BitPack(data, 2);
|
|
|
|
|
|
|
|
|
|
b = bitpacker.UnpackBits(4);
|
|
|
|
|
Assert.IsTrue(b == 0, "Unpacked " + b + " instead of 0");
|
|
|
|
|
|
|
|
|
|
b = bitpacker.UnpackBits(8);
|
|
|
|
|
Assert.IsTrue(b == 0xF5, "Unpacked " + b + " instead of 0xF5");
|
|
|
|
|
|
|
|
|
|
b = bitpacker.UnpackBits(4);
|
|
|
|
|
Assert.IsTrue(b == 0, "Unpacked " + b + " instead of 0");
|
|
|
|
|
|
|
|
|
|
b = bitpacker.UnpackBits(10);
|
|
|
|
|
Assert.IsTrue(b == 0x0183, "Unpacked " + b + " instead of 0x0183");
|
|
|
|
|
}
|
2006-11-10 14:50:00 +00:00
|
|
|
}
|
|
|
|
|
}
|