Example #1
0
        public void UnpackV1Test(int packed, int episode, int release)
        {
            var unpacked = PackedId.Unpack(packed);

            Assert.AreEqual(1, unpacked.Version, "Version is wrong");
            Assert.AreEqual(episode, unpacked.EpisodeId, "Episode is wrong");
            Assert.AreEqual(release, unpacked.ReleaseId, "Release is wrong");
        }
Example #2
0
        public void ConstructorTest()
        {
            var rnd    = new Random();
            var inputs = new[] { rnd.Next(1048575), rnd.Next(2047) };
            var packer = new PackedId(inputs[0], inputs[1]);

            Assert.AreEqual(1, packer.Version, "Version is wrong");
            Assert.AreEqual(inputs[1], packer.EpisodeId, "Episode is wrong");
            Assert.AreEqual(inputs[0], packer.ReleaseId, "Release is wrong");
        }
Example #3
0
        public void PackV0Test(int packed, int episode, int release)
        {
            var packer = new PackedId(release, episode);
            var boxed  = (object)packer;

            typeof(PackedId).GetField(nameof(packer.Version), System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public).SetValue(boxed, 0);
            packer = (PackedId)boxed;
            var actual = packer.Pack();

            Assert.AreEqual(packed, actual, "Wrongly packed");
        }
Example #4
0
        public void RoundRobinTest()
        {
            var rnd = new Random();

            for (int i = 0; i < 100; i++)
            {
                var source = rnd.Next(int.MinValue, int.MaxValue);
                var p1     = PackedId.Unpack(source);
                var p2     = new PackedId(p1.ReleaseId, p1.EpisodeId);
                if (p1.Version == 0)
                {
                    var boxed = (object)p2;
                    typeof(PackedId).GetField(nameof(p2.Version), System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public).SetValue(boxed, 0);
                    p2 = (PackedId)boxed;
                }
                Assert.AreEqual(source, p1.Pack(), "Round-robin 1st iteration didn't work for " + source);
                Assert.AreEqual(p1.Version, p2.Version, "Version wrong");
                Assert.AreEqual(p1.EpisodeId, p2.EpisodeId, "EpisodeId wrong");
                Assert.AreEqual(p1.ReleaseId, p2.ReleaseId, "ReleaseId wrong");
                Assert.AreEqual(source, p2.Pack(), "Round-robin 2rd iteration didn't work for " + source);
            }
        }
Example #5
0
        public void PackV1Test(int packed, int episode, int release)
        {
            var actual = new PackedId(release, episode).Pack();

            Assert.AreEqual(packed, actual, "Wrongly packed");
        }