public void FixedListByte128ToFixedListByte32() { var a = new FixedListByte128(); for (var i = 0; i < 126; ++i) { a.Add((byte)i); } Assert.Throws <IndexOutOfRangeException> (() => { var b = new FixedListByte32(a); }); }
public void FixedListByte32HasExpectedCapacity() { var list = new FixedListByte32(); var expectedCapacity = 30; for (int i = 0; i < expectedCapacity; ++i) { list.Add((byte)i); } Assert.Throws <IndexOutOfRangeException> (() => { list.Add((byte)expectedCapacity); }); }
public void FixedListByte32Sort() { var list = new FixedListByte32(); for (var i = 0; i < 5; ++i) { list.Add((byte)(4 - i)); } list.Sort(); for (var i = 0; i < 5; ++i) { Assert.AreEqual(i, list[i]); } }
public void FixedListByte32RemoveRange() { var list = new FixedListByte32(); list.Add(0); list.Add(3); list.Add(3); list.Add(1); list.Add(2); list.RemoveRange(1, 2); for (var i = 0; i < 3; ++i) { Assert.AreEqual(i, list[i]); } }
public void FixedListByte32InsertRange() { var list = new FixedListByte32(); list.Add(0); list.Add(3); list.Add(4); list.InsertRange(1, 2); list[1] = 1; list[2] = 2; for (var i = 0; i < 5; ++i) { Assert.AreEqual(i, list[i]); } }
public void FixedListByte32ToFixedListByte128() { var a = new FixedListByte32(); for (var i = 0; i < 30; ++i) { a.Add((byte)i); } var b = new FixedListByte128(a); for (var i = 0; i < 30; ++i) { Assert.AreEqual((byte)i, b[i]); } }
void ParseAnsi(ref FixedListByte32 escape, ref ColorIndex fg, ref ColorIndex bg) { if (escape.Length < 4) { return; } if (escape[0] != 0x1b || escape[1] != '[') { return; } int offset = 2; FixedListInt64 numbers = default; int number = 0; while (offset < escape.Length) { switch ((char)escape[offset]) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': number *= 10; number += escape[offset] - '0'; break; case ';': numbers.Add(number); number = 0; break; case 'm': numbers.Add(number); ParseAnsiColor(ref numbers, ref fg, ref bg); return; } ++offset; } }
public void FixedListByte32HasExpectedLayout() { var actual = new FixedListByte32(); for (var i = 0; i < 30; ++i) { actual.Add((byte)i); } unsafe { var e = stackalloc byte[32]; e[0] = (byte)((30 >> 0) & 0xFF); e[1] = (byte)((30 >> 8) & 0xFF); for (var i = 0; i < 30; ++i) { var s = (byte)i; UnsafeUtility.MemCpy(e + 2 + sizeof(byte) * i, &s, sizeof(byte)); } Assert.AreEqual(0, UnsafeUtility.MemCmp(e, &actual.length, 32)); } }