Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 /// <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));
 }