public void With_doubejump_timestop_spindle_and_cardD_should_get_access_to_past()
        {
            var unlockingMap  = new ItemUnlockingMap(Seed.Zero);
            var itemLocations = new ItemLocationMap(new ItemInfoProvider(SeedOptions.None, unlockingMap), unlockingMap, SeedOptions.None);

            var accessableLocations = itemLocations.GetReachableLocations(
                Requirement.DoubleJump | Requirement.GateAccessToPast | Requirement.Swimming)
                                      .ToArray();

            Assert.That(Contains(accessableLocations, new ItemKey(3, 3, 648, 272)));
        }
        public void With_given_requirements_shoud_mark_captians_chests_as_available()
        {
            var unlockingMap  = new ItemUnlockingMap(Seed.Zero);
            var itemLocations = new ItemLocationMap(new ItemInfoProvider(SeedOptions.None, unlockingMap), unlockingMap, SeedOptions.None);

            var accessableLocations = itemLocations.GetReachableLocations(
                Requirement.GassMask | Requirement.AntiWeed | Requirement.Swimming | Requirement.GateLakeSirineRight | Requirement.DoubleJump)
                                      .ToArray();

            Assert.That(Contains(accessableLocations, new ItemKey(1, 18, 1320, 189)));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 18, 1272, 192)));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 18, 1368, 192)));
        }
        public void With_no_items_only_6_item_locatios_should_be_accessable()
        {
            var unlockingMap  = new ItemUnlockingMap(Seed.Zero);
            var itemLocations = new ItemLocationMap(new ItemInfoProvider(SeedOptions.None, unlockingMap), unlockingMap, SeedOptions.None);

            var accessableLocations = itemLocations.GetReachableLocations(Requirement.None).ToArray();

            Assert.That(Contains(accessableLocations, ItemKey.TutorialMeleeOrb));
            Assert.That(Contains(accessableLocations, ItemKey.TutorialSpellOrb));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 1, 1528, 144)));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 15, 264, 144)));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 25, 296, 176)));
            Assert.That(Contains(accessableLocations, new ItemKey(1, 9, 600, 192)));
        }