public void benNumberLengthInBytes() { int number = 1635; BEncodedNumber num = number; Assert.AreEqual(number.ToString().Length + 2, num.LengthInBytes()); }
public void benNumberEncoding() { byte[] data = Encoding.UTF8.GetBytes("i12345e"); BEncodedNumber number = 12345; Assert.IsTrue(data.AsSpan().SequenceEqual(number.Encode())); }
public void benNumberEncoding5() { byte[] data = Encoding.UTF8.GetBytes("i-123e"); BEncodedNumber number = -123; Assert.AreEqual(6, number.LengthInBytes()); Assert.IsTrue(data.AsSpan().SequenceEqual(number.Encode())); }
public void benNumberEncodingBuffered() { byte[] data = Encoding.UTF8.GetBytes("i12345e"); BEncodedNumber number = 12345; byte[] result = new byte[number.LengthInBytes()]; number.Encode(result); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); }
public void benNumber_MaxMin([Values(long.MinValue, long.MaxValue)] long value) { var number = new BEncodedNumber(value); foreach (var result in BEncodedValue.DecodingVariants <BEncodedNumber> (number.Encode())) { Assert.AreEqual(result.Number, value); } }
public void benNumberEncoding6() { BEncodedNumber a = -123; foreach (var b in BEncodedValue.DecodingVariants <BEncodedNumber> (a.Encode())) { Assert.AreEqual(a.Number, b.Number, "#1"); } }
/// <summary> /// Decode BEncoded data in the given RawReader /// </summary> /// <param name="reader">The RawReader containing the BEncoded data</param> /// <returns>BEncodedValue containing the data that was in the stream</returns> public static BEncodedValue Decode(RawReader reader) { if (reader == null) { throw new ArgumentNullException("reader"); } BEncodedValue data; switch (reader.PeekByte()) { case ('i'): // Integer data = new BEncodedNumber(); break; case ('d'): // Dictionary data = new BEncodedDictionary(); break; case ('l'): // List data = new BEncodedList(); break; case ('1'): // String case ('2'): case ('3'): case ('4'): case ('5'): case ('6'): case ('7'): case ('8'): case ('9'): case ('0'): data = new BEncodedString(); break; default: throw new BEncodingException("Could not find what value to decode"); } data.DecodeInternal(reader); return(data); }
public void Add(BEncodedNumber item) { this.list.Add(item); }
public void Add(BEncodedString key, BEncodedNumber value) { this.dictionary.Add(key, value); }