Пример #1
0
 public void LoadRegionMappers(ImperatorRegionMapper imperatorRegionMapper, CK3RegionMapper ck3RegionMapper)
 {
     foreach (var mapping in religionMappings)
     {
         mapping.ImperatorRegionMapper = imperatorRegionMapper;
         mapping.CK3RegionMapper       = ck3RegionMapper;
     }
 }
Пример #2
0
 public void LoadRegionMappers(ImperatorRegionMapper imperatorRegionMapper, CK3RegionMapper ck3RegionMapper)
 {
     foreach (var mapping in cultureMappingRules)
     {
         mapping.ImperatorRegionMapper = imperatorRegionMapper;
         mapping.CK3RegionMapper       = ck3RegionMapper;
     }
 }
Пример #3
0
        public void LocationServicesSucceedsForProvinceField()
        {
            var          mapper       = new CK3RegionMapper();
            var          landedTitles = new Title.LandedTitles();
            const string regionPath   = "TestFiles/regions/CK3RegionMapperTests/LocationServicesSucceedsForProvinceField.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.True(mapper.ProvinceIsInRegion(69, "test_region"));
        }
Пример #4
0
        public void RegionMapperCanBeEnabled()
        {
            // We start humble, it's a machine.
            var          mapper       = new CK3RegionMapper();
            var          landedTitles = new Title.LandedTitles();
            const string regionPath   = "TestFiles/regions/CK3RegionMapperTests/empty.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);
            Assert.False(mapper.ProvinceIsInRegion(1, "test"));
            Assert.False(mapper.RegionNameIsValid("test"));
            Assert.Null(mapper.GetParentCountyName(1));
            Assert.Null(mapper.GetParentDuchyName(1));
            Assert.Null(mapper.GetParentRegionName(1));
        }
Пример #5
0
        public void LocationServicesSucceedsForCountyField()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "c_athens = { b_athens = { province = 79 } b_newbarony = { province = 56 } }"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LocationServicesSucceedsForCountyField.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.True(mapper.ProvinceIsInRegion(79, "test_region"));
        }
Пример #6
0
        public void LoadingBrokenCountyWillThrowException()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_anglia = { d_aquitane = { c_mers_broken = { b_hgy = { province = 69 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LoadingBrokenCountyWillThrowException.txt";

            void action() => mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            KeyNotFoundException exception = Assert.Throws <KeyNotFoundException>(action);

            Assert.Equal("Region's test_region county c_mers does not exist!", exception.Message);
        }
Пример #7
0
        public void LocationServicesFailForNonsense()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { c_athens = { b_athens = { province = 79 } b_newbarony = { province = 56 } } } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } b_newbarony2 = { province = 4 } } } }"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LocationServicesFailForNonsense.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.False(mapper.ProvinceIsInRegion(1, "nonsense"));
            Assert.False(mapper.ProvinceIsInRegion(6, "test_superregion"));
        }
Пример #8
0
        public void WrongParentLocationsReturnNull()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "d_testduchy = { 1 2 3 } \n" +
                "d_testduchy2 = { 4 5 6 } "
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/WrongParentLocationsReturnNull.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.Null(mapper.GetParentCountyName(7));
            Assert.Null(mapper.GetParentDuchyName(7));
            Assert.Null(mapper.GetParentRegionName(7));
        }
Пример #9
0
        public void LocationServicesCorrectlyFail()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "d_testduchy = { 1 2 3 } \n" +
                "d_testduchy2 = { 4 5 6 } "
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LocationServicesCorrectlyFail.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.False(mapper.ProvinceIsInRegion(4, "d_testduchy"));             // province in different duchy
            Assert.False(mapper.ProvinceIsInRegion(9, "d_testduchy"));             // province missing completely
            Assert.False(mapper.ProvinceIsInRegion(5, "test_region"));             // province in different region
        }
Пример #10
0
        public void LocationServicesWork()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "d_aquitane = { c_mers = { b_hgy = { province = 69 } } }"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LocationServicesWork.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.True(mapper.ProvinceIsInRegion(69, "c_mers"));
            Assert.True(mapper.ProvinceIsInRegion(69, "d_aquitane"));
            Assert.True(mapper.ProvinceIsInRegion(69, "test_region"));
            Assert.True(mapper.ProvinceIsInRegion(69, "test_region_bigger"));
            Assert.True(mapper.ProvinceIsInRegion(69, "test_region_biggest"));
        }
Пример #11
0
        public void MatchOnRegionFailsForNoProvince()
        {
            var ck3Mapper          = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } b_newbarony2 = { province = 4 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            ck3Mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader  = new BufferedReader("ck3 = dutch imp = german ck3Region = d_hujhu");
            var mapping = ReligionMapping.Parse(reader);

            mapping.CK3RegionMapper       = ck3Mapper;
            mapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(mapping.Match("german", 0, 0));
        }
Пример #12
0
        public void MatchOnRegionFailsForWrongRegion()
        {
            var theMapper          = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            theMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader  = new BufferedReader("ck3 = dutch imp = german ck3Region = test_region1");
            var mapping = ReligionMapping.Parse(reader);

            mapping.CK3RegionMapper       = theMapper;
            mapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(mapping.Match("german", 79, 0));
        }
Пример #13
0
        public void MatchOnRegion()
        {
            var theMapper          = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { c_athens = { b_athens = { province = 79 } } } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_newbarony2 = { province = 4 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            theMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader  = new BufferedReader("ck3 = dutch imp = german ck3Region = test_region1");
            var mapping = ReligionMapping.Parse(reader);

            mapping.CK3RegionMapper       = theMapper;
            mapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Equal("dutch", mapping.Match("german", 4, 0));
        }
Пример #14
0
        public void MatchOnRegionFailsForNoRegion()
        {
            var ck3Mapper          = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { } } \n" +
                "k_ghef = { d_hujhu = { } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            ck3Mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader  = new BufferedReader("ck3 = dutch imp = german ck3Region = test_region3");
            var mapping = ReligionMapping.Parse(reader);

            mapping.CK3RegionMapper       = ck3Mapper;
            mapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(mapping.Match("german", 17, 0));
        }
Пример #15
0
        public void CorrectParentLocationsReported()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { c_athens = { b_athens = { province = 79 } b_newbarony = { province = 56 } } } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } b_newbarony2 = { province = 4 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/CorrectParentLocationsReported.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.Equal("c_athens", mapper.GetParentCountyName(79));
            Assert.Equal("d_wakaba", mapper.GetParentDuchyName(79));
            Assert.Equal("test_region", mapper.GetParentRegionName(79));
            Assert.Equal("c_defff", mapper.GetParentCountyName(6));
            Assert.Equal("d_hujhu", mapper.GetParentDuchyName(6));
            Assert.Equal("test_region2", mapper.GetParentRegionName(6));
        }
Пример #16
0
        public void LocationNameValidationWorks()
        {
            var mapper             = new CK3RegionMapper();
            var landedTitles       = new Title.LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { c_athens = { b_athens = { province = 79 } b_newbarony = { province = 56 } } } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } b_newbarony2 = { province = 4 } } } } \n" +
                "c_county = { b_barony = { province = 69 } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CK3RegionMapperTests/LocationNameValidationWorks.txt";

            mapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            Assert.True(mapper.RegionNameIsValid("d_wakaba"));
            Assert.True(mapper.RegionNameIsValid("test_region2"));
            Assert.True(mapper.RegionNameIsValid("test_region3"));
            Assert.True(mapper.RegionNameIsValid("c_county"));
            Assert.False(mapper.RegionNameIsValid("nonsense"));
        }
Пример #17
0
        public void MatchOnRegionFailsForNoRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(string.Empty);

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CultureMappingTests/empty.txt";

            ck3RegionMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader = new BufferedReader(
                "ck3 = dutch imp = german ck3Region = test_region3"
                );
            var theMapping = CultureMappingRule.Parse(reader);

            theMapping.CK3RegionMapper       = ck3RegionMapper;
            theMapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(theMapping.Match("german", "", 17, 0, ""));
        }
Пример #18
0
        public void MatchOnRegionFailsForNoProvince()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } b_newbarony2 = { province = 4 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CultureMappingTests/empty.txt";

            ck3RegionMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader = new BufferedReader(
                "ck3 = dutch imp = german ck3Region = d_hujhu"
                );
            var theMapping = CultureMappingRule.Parse(reader);

            theMapping.CK3RegionMapper       = ck3RegionMapper;
            theMapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(theMapping.Match("german", "", 0, 0, ""));
        }
Пример #19
0
        [Fact] public void MatchOnRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ghef = { d_hujhu = { c_defff = { b_newbarony2 = { province = 4 } } } }"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CultureMappingTests/MatchOnRegion.txt";

            ck3RegionMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader = new BufferedReader(
                "ck3 = dutch imp = german ck3Region = test_region1"
                );
            var theMapping = CultureMappingRule.Parse(reader);

            theMapping.CK3RegionMapper       = ck3RegionMapper;
            theMapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Equal("dutch", theMapping.Match("german", "", 4, 0, ""));
        }
Пример #20
0
        public void MatchOnRegionFailsForWrongRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new LandedTitles();
            var landedTitlesReader = new BufferedReader(
                "k_ugada = { d_wakaba = { c_athens = { b_athens = { province = 79 } } } } \n" +
                "k_ghef = { d_hujhu = { c_defff = { b_cringe = { province = 6 } } } } \n"
                );

            landedTitles.LoadTitles(landedTitlesReader);
            const string regionPath = "TestFiles/regions/CultureMappingTests/MatchOnRegionFailsForWrongRegion";

            ck3RegionMapper.LoadRegions(landedTitles, regionPath, islandRegionPath);

            var reader = new BufferedReader(
                "ck3 = dutch imp = german ck3Region = test_region2"
                );
            var theMapping = CultureMappingRule.Parse(reader);

            theMapping.CK3RegionMapper       = ck3RegionMapper;
            theMapping.ImperatorRegionMapper = new ImperatorRegionMapper();

            Assert.Null(theMapping.Match("german", "", 79, 0, ""));
        }