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); }
public void TitlesDefaultToEmpty() { var reader = new BufferedReader(string.Empty); var titles = new Title.LandedTitles(); titles.LoadTitles(reader); Assert.Empty(titles); }
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); }
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")); }
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")); }
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); }
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 }
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)); }
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); }
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); }
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); }
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")); }
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)); }
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)); }
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, "")); }
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")); }
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, "")); }