示例#1
0
        public void TitlesCanBeOverriddenByMods()
        {
            var reader = new BufferedReader(
                "e_empire1 = { k_kingdom2 = { d_duchy3 = { b_barony4 = { province = 12 } } } }\n" +
                "c_county5 = { landless = yes }\n"
                );

            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            var reader2 = new BufferedReader(
                "b_barony4 = { province = 15 }\n" +
                "c_county5 = { landless = no }\n"
                );

            titles.LoadTitles(reader2);

            var barony = titles["b_barony4"];
            var county = titles["c_county5"];

            Assert.Equal(5, titles.Count);
            Assert.Equal((ulong)15, barony.Province);
            Assert.False(county.Landless);
        }
示例#2
0
        public void TitlesDefaultToEmpty()
        {
            var reader = new BufferedReader(string.Empty);
            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            Assert.Empty(titles);
        }
示例#3
0
        public void TitlesCanBeAddedByMods()
        {
            var reader = new BufferedReader(
                "e_empire1 = { k_kingdom2 = { d_duchy3 = { b_barony4 = { province = 12 } } } }\n" +
                "c_county5 = { landless = yes }\n"
                );

            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            var reader2 = new BufferedReader(
                "c_county5 = { landless = no }\n" +                 // Overrides existing instance
                "e_empire6 = { k_kingdom7 = { d_duchy8 = { b_barony9 = { province = 12 } } } }\n" +
                "c_county10 = { landless = yes }\n"
                );

            titles.LoadTitles(reader2);

            Assert.Equal(10, titles.Count);
        }
示例#4
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"));
        }
示例#5
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"));
        }
示例#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 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
        }
示例#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 TitlesCanBeLoadedRecursively()
        {
            var reader = new BufferedReader(
                "e_empire1 = { k_kingdom2 = { d_duchy3 = { b_barony4 = { province = 12 } } } }\n" +
                "c_county5 = { landless = yes }\n"
                );

            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            var barony = titles["b_barony4"];
            var county = titles["c_county5"];

            Assert.Equal(5, titles.Count);
            Assert.Equal((ulong)12, barony.Province);
            Assert.True(county.Landless);
        }
示例#10
0
        public void TitlesCanBeLoaded()
        {
            var reader = new BufferedReader(
                "b_barony = { province = 12 }\n" +
                "c_county = { landless = yes }\n"
                );

            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            var barony = titles["b_barony"];
            var county = titles["c_county"];

            Assert.Equal(2, titles.Count);
            Assert.Equal((ulong)12, barony.Province);
            Assert.True(county.Landless);
        }
示例#11
0
        public void CapitalsAreLinked()
        {
            var reader = new BufferedReader(
                "e_empire = {" +
                "\tcapital=c_county " +
                "\tk_kingdom = { d_duchy = { c_county = { b_barony = { province = 12 } } } } " +
                "}"
                );
            var titles = new Title.LandedTitles();

            titles.LoadTitles(reader);

            var empire        = titles["e_empire"];
            var capitalCounty = empire.CapitalCounty;

            Assert.NotNull(capitalCounty);
            Assert.Equal("c_county", capitalCounty.Id);
            Assert.Equal("c_county", empire.CapitalCountyId);
        }
示例#12
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"));
        }
示例#13
0
        public void MatchOnRegionFailsForNoRegion()
        {
            var ck3Mapper          = new CK3RegionMapper();
            var landedTitles       = new Title.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));
        }
示例#14
0
        public void MatchOnRegionFailsForWrongRegion()
        {
            var theMapper          = 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 } } } } \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));
        }
示例#15
0
        public void MatchOnRegion()
        {
            var theMapper          = new CK3RegionMapper();
            var landedTitles       = new Title.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));
        }
        public void MatchOnRegionFailsForNoRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new Title.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, ""));
        }
示例#17
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"));
        }
示例#18
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));
        }
        public void MatchOnRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new Title.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, ""));
        }
        public void MatchOnRegionFailsForNoProvince()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new Title.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, ""));
        }
        public void MatchOnRegionFailsForWrongRegion()
        {
            var ck3RegionMapper    = new CK3RegionMapper();
            var landedTitles       = new Title.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, ""));
        }