public void Serialization_SerializeAndDeserialize_NeverThrowsAndPropertiesAsEqual() { try { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(0, true); instance.SetBitAt(242, true); using (MemoryStream stream = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, instance); stream.Position = 0; IBitCharger actual = formatter.Deserialize(stream) as IBitCharger; Assert.That(actual, Is.Not.Null); Assert.That(actual.Capacity, Is.EqualTo(instance.Capacity)); Assert.That(actual.Length, Is.EqualTo(instance.Length)); Assert.That(actual.Content, Is.EqualTo(instance.Content)); } } catch (Exception error) { Assert.That(false, error.Message); } }
public void GetBytes_OffsetZeroLengthUnused_ResultAsExpected() { IBitCharger instance = this.CreateInstance(); // 10101100 (0xAC, 172) instance.SetBitAt(2, true); instance.SetBitAt(3, true); instance.SetBitAt(5, true); instance.SetBitAt(7, true); Byte[] actual = instance.GetBytes(0); Assert.That(actual.Length, Is.EqualTo(1)); Assert.That(actual[0], Is.EqualTo(172)); }
public void SetBytes_SourceIsEmptyOffsetUnused_ContentRemainsUnchanged() { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(2, true); instance.SetBitAt(3, true); instance.SetBitAt(5, true); instance.SetBitAt(7, true); String expected = instance.Content; instance.SetBytes(new Byte[0]); Assert.That(instance.Content, Is.EqualTo(expected)); }
public void GetBytes_OffsetZeroLengthZero_ResultIsEmpty() { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(15, false); Assert.That(instance.GetBytes(0, 0), Is.Empty); }
public void GetBytes_OffsetZeroLengthBeyondMax_ThrowsArgumentOutOfRangeException() { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(15, false); Assert.That(() => instance.GetBytes(0, instance.Bytes + 1), Throws.InstanceOf <ArgumentOutOfRangeException>()); }
public void HasBitAt_IndexIsInRange_ResultAsExpected(Int32 index, Int32 actual, Boolean expected) { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(index, true); Assert.That(instance.HasBitAt(actual), Is.EqualTo(expected)); }
public void SetBitAt_WithIndexAndEnabled_ContentAsExpected(Int32 index, String expected) { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(index, true); Assert.That(instance.Content, Is.EqualTo(expected)); }
public void SetBitAt_IndexIsLessThanDefaultLength_PropertiesAsExpected() { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(7, true); Assert.That(instance.Length, Is.EqualTo(8)); }
public void SetBitAt_IndexIsGreaterThanDefaultLength_PropertiesAsExpected() { IBitCharger instance = this.CreateInstance(); instance.SetBitAt(135, true); Assert.That(instance.Capacity, Is.EqualTo(264)); Assert.That(instance.Length, Is.EqualTo(136)); }
public void SetBytes_SourceThreeBytesOffsetThreeBE_ContentAsExpected() { IBitCharger instance = this.CreateInstance(); this.byteOrder.SetupGet(x => x.IsLittleEndian).Returns(false); // 10101100 (0xAC, 172) -> Bits to keep... instance.SetBitAt(2, true); instance.SetBitAt(3, true); instance.SetBitAt(5, true); instance.SetBitAt(7, true); String expected = this.MakeExpected(new Byte[] { 0x81, 0x82, 0x83, 0x00, 0x00, 0xAC }); Byte[] source = new Byte[] { 0x83, 0x82, 0x81 }; instance.SetBytes(source, 3); Assert.That(instance.Content, Is.EqualTo(expected)); }
public void GetBytes_OffsetZeroLengthOne_ResultAsExpected() { IBitCharger instance = this.CreateInstance(); // 10101100 (0xAC, 172) instance.SetBitAt(2, true); instance.SetBitAt(3, true); instance.SetBitAt(5, true); instance.SetBitAt(7, true); // 11110000 (0xF0, 240) instance.SetBitAt(12, true); instance.SetBitAt(13, true); instance.SetBitAt(14, true); instance.SetBitAt(15, true); Byte[] actual = instance.GetBytes(0, 2); Assert.That(actual.Length, Is.EqualTo(2)); Assert.That(actual[0], Is.EqualTo(240)); Assert.That(actual[1], Is.EqualTo(172)); }
public void Clone_CloneInstance_ClonePropertiesAreEqual() { IBitCharger instance = this.CreateInstance(); // 0x02 => 00000010 instance.SetBitAt(0, false); instance.SetBitAt(1, true); instance.SetBitAt(2, false); instance.SetBitAt(3, false); instance.SetBitAt(4, false); instance.SetBitAt(5, false); instance.SetBitAt(6, false); instance.SetBitAt(7, false); // 0xCE => 11001110 instance.SetBitAt(8, false); instance.SetBitAt(9, true); instance.SetBitAt(10, true); instance.SetBitAt(11, true); instance.SetBitAt(12, false); instance.SetBitAt(13, false); instance.SetBitAt(14, true); instance.SetBitAt(15, true); // 0xDA => 11011010 instance.SetBitAt(16, false); instance.SetBitAt(17, true); instance.SetBitAt(18, false); instance.SetBitAt(19, true); instance.SetBitAt(20, true); instance.SetBitAt(21, false); instance.SetBitAt(22, true); instance.SetBitAt(23, true); IBitCharger actual = instance.Clone() as IBitCharger; Assert.That(actual, Is.Not.Null); Assert.That(actual.Capacity, Is.EqualTo(instance.Capacity)); Assert.That(actual.Length, Is.EqualTo(instance.Length)); Assert.That(actual.Bytes, Is.EqualTo(instance.Bytes)); Assert.That(actual.Content, Is.EqualTo(instance.Content)); }
public void GetBytes_SourceInt32OffsetZeroBE_ResultAsExpected() { IBitCharger instance = this.CreateInstance(); this.byteOrder.SetupGet(x => x.IsLittleEndian).Returns(false); Int32 expected = 47110815; // BE: 0x02CEDA9F => 00000010 11001110 11011010 10011111 // BE: 0x9F => 10011111 instance.SetBitAt(0, true); instance.SetBitAt(1, true); instance.SetBitAt(2, true); instance.SetBitAt(3, true); instance.SetBitAt(4, true); instance.SetBitAt(5, false); instance.SetBitAt(6, false); instance.SetBitAt(7, true); // BE: 0xDA => 11011010 instance.SetBitAt(8, false); instance.SetBitAt(9, true); instance.SetBitAt(10, false); instance.SetBitAt(11, true); instance.SetBitAt(12, true); instance.SetBitAt(13, false); instance.SetBitAt(14, true); instance.SetBitAt(15, true); // BE: 0xCE => 11001110 instance.SetBitAt(16, false); instance.SetBitAt(17, true); instance.SetBitAt(18, true); instance.SetBitAt(19, true); instance.SetBitAt(20, false); instance.SetBitAt(21, false); instance.SetBitAt(22, true); instance.SetBitAt(23, true); // BE: 0x02 => 00000010 instance.SetBitAt(24, false); instance.SetBitAt(25, true); instance.SetBitAt(26, false); instance.SetBitAt(27, false); instance.SetBitAt(28, false); instance.SetBitAt(29, false); instance.SetBitAt(30, false); instance.SetBitAt(31, false); Byte[] result = instance.GetBytes(0, sizeof(Int32)); Int32 actual = BitConverter.ToInt32(result, 0); Assert.That(actual, Is.EqualTo(expected)); }
public void SetBitAt_IndexIsLessThanZero_ThrowsArgumentOutOfRangeException() { IBitCharger instance = this.CreateInstance(); Assert.That(() => instance.SetBitAt(-1, false), Throws.InstanceOf <ArgumentOutOfRangeException>()); }