public static byte[] quints2bytes(string quints) { var parts = quints.Split('-'); var pattern = "[a-z]{5}-[a-z]{5}(-[a-z]{5}-[a-z]{5})*"; if (!Regex.IsMatch(quints, pattern)) { throw new Exception("bad input fformat - expected CVCVC-CVCVC(-CVCVC-CVCVC)*"); } if (parts.Length % 2 != 0) { throw new Exception("number of dashed parts must be divisible by 2"); } var ret = new byte[parts.Length / 2 * 4]; var byteIdx = 0; for (var i = 0; i < parts.Length; i += 2) { var value = new Quint32(String.Format("{0}-{1}", parts[i], parts[i + 1])); ret[byteIdx] = (byte)(value >> 24 & 0x000000FF); ret[byteIdx + 1] = (byte)(value >> 16 & 0x000000FF); ret[byteIdx + 2] = (byte)(value >> 8 & 0x000000FF); ret[byteIdx + 3] = (byte)(value & 0x000000FF); byteIdx += 4; } return(ret); }
public void Proquint_IPs() { var quads = new Dictionary <string, string> { { "127.0.0.1", "lusab-babad" }, { "63.84.220.193", "gutih-tugad" }, { "63.118.7.35", "gutuk-bisog" }, { "140.98.193.141", "mudof-sakat" }, { "64.255.6.200", "haguz-biram" }, { "128.30.52.45", "mabiv-gibot" }, { "147.67.119.2", "natag-lisaf" }, { "212.58.253.68", "tibup-zujah" }, { "216.35.68.215", "tobog-higil" }, { "216.68.232.21", "todah-vobij" }, { "198.81.129.136", "sinid-makam" }, { "12.110.110.204", "budov-kuras" } }; foreach (var q in quads) { var i = ToInt(q.Key); var qu = new Quint32(i); var i2 = (uint)qu; Assert.AreEqual(q.Value, qu.ToString()); Assert.AreEqual(i, i2); } }
public void Proquint_Random() { var a = Quint32.NewQuint(); var b = Quint32.NewQuint(); Assert.AreEqual(11, a.ToString().Length); Assert.AreEqual(11, b.ToString().Length); Assert.AreNotEqual(a, b); }
public void Quint_Test() { var q = new Quint32(123456); uint i = (uint)q; string s = (string)q; var q2 = new Quint32(s); var q3 = new Quint32(123499); Assert.AreEqual((uint)123456, i); Assert.AreEqual((uint)123456, (uint)q2); Assert.IsTrue(q.Equals(q2)); Assert.IsTrue(q.Equals((uint)123456)); Assert.IsTrue(q == q2); Assert.IsTrue(q <= q2); Assert.IsFalse(q != q2); Assert.IsTrue(q3 > q2); Assert.IsTrue(q3 >= q2); }
/// <summary> /// Determines whether the specified <see cref="Quint32" /> is equal to this instance. /// </summary> /// <param name="value">The <see cref="Quint32" /> to compare with this instance.</param> /// <returns><c>true</c> if the specified <see cref="Quint32" /> is equal to this instance; otherwise, <c>false</c>.</returns> public bool Equals(Quint32 value) { return(_value.Equals(value._value)); }