public void FamilySerializeDeserialize() { Family fieldFamily = FamilyGenerator.GetData(); Family deserializedFamily = new FamilySerializeHelper( string.Format( ".\\serialized\\{0}.{1}", fieldFamily.Name, FamilySerializeHelper.StandardExtension ) ).Save(fieldFamily).Load(); foreach (Member member in fieldFamily.Members.Values) { Assert.AreEqual( deserializedFamily.Members[member.Id].BirthDate, fieldFamily.Members[member.Id].BirthDate ); Assert.AreEqual( deserializedFamily.Members[member.Id].DeathDate, fieldFamily.Members[member.Id].DeathDate ); Assert.AreEqual( deserializedFamily.Members[member.Id].Refs.ParentId, fieldFamily.Members[member.Id].Refs.ParentId ); Assert.AreEqual( deserializedFamily.Members[member.Id].Refs.ChildrenIds.Count(), fieldFamily.Members[member.Id].Refs.ChildrenIds.Count() ); foreach (DateTime at in new HashSet <DateTime>() { DateTime.Now, FamilyGenerator.KalebWeddingDate, FamilyGenerator.KoreyWeddingDate, FamilyGenerator.RumaysaWeddingDate, FamilyGenerator.HenriettaWeddingDate, FamilyGenerator.SebastianWithKarishmaDate }.Where(d => d >= member.BirthDate)) { Assert.AreEqual( deserializedFamily.Members[member.Id].FullName.Value(at), fieldFamily.Members[member.Id].FullName.Value(at) ); Assert.AreEqual( deserializedFamily.Members[member.Id].Status.Value(at), fieldFamily.Members[member.Id].Status.Value(at) ); } } FamilyTests.CheckFieldFamilyReferences(deserializedFamily); }
private static void CreateAndSeed() { IList <Family> families = new FamilyGenerator().GenerateFamilies(500); string famSerialized = JsonSerializer.Serialize(families, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText("families.txt", famSerialized); DBSeeder.Seed(families); }
public void References() { Family fieldFamily = FamilyGenerator.GetData(); FamilyGenerator.Rumaysa.Refs.RemoveChild(FamilyGenerator.Moesha); Assert.AreEqual(1, FamilyGenerator.Rumaysa.Refs.Children.Count()); FamilyGenerator.Rumaysa.HadChild(FamilyGenerator.Moesha); Assert.AreEqual(2, FamilyGenerator.Rumaysa.Refs.Children.Count()); CheckFieldFamilyReferences(fieldFamily); }
public void TreeSerialize() { Family fieldFamily = FamilyGenerator.GetData(); int i = 0; foreach (SearchSettings settings in new List <SearchSettings>() { new SearchSettings() { At = FamilyGenerator.Kaleb.BirthDate.AddYears(-10), CanBeDead = true, CanBePartnerOtherTime = false }, new SearchSettings() { At = FamilyGenerator.KalebWeddingDate, CanBeDead = true, CanBePartnerOtherTime = true }, new SearchSettings() { At = FamilyGenerator.KalebWeddingDate, CanBeDead = false, CanBePartnerOtherTime = false }, new SearchSettings() { At = FamilyGenerator.HenriettaWeddingDate, CanBeDead = false, CanBePartnerOtherTime = true }, new SearchSettings() { At = DateTime.Now, CanBeDead = true, CanBePartnerOtherTime = false } }) { string name = string.Format( ".\\serialized\\{0}_{1}.{2}", fieldFamily.Name, i++, TreeSerializeHelper.StandardExtension ); new TreeSerializeHelper(name).Save( new Tree(fieldFamily, settings) ); } }
public void RootAncestors() { Family fieldFamily = FamilyGenerator.GetData(); Assert.ThrowsException <HistoryViolationException>( () => new SearchSettings() { At = DateTime.Now.AddDays(7) }, "Future date should have thrown an exception." ); int i = 1; foreach (KeyValuePair <SearchSettings, HashSet <Member> > expected in new Dictionary <SearchSettings, HashSet <Member> >() { { /* 1 */ new SearchSettings() { At = FamilyGenerator.Kaleb.BirthDate.AddYears(-10), CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { } }, { /* 2 */ new SearchSettings() { At = FamilyGenerator.Kaleb.BirthDate, CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { } }, { /* 3 */ new SearchSettings() { At = FamilyGenerator.Kaleb.BirthDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Kaleb } }, { /* 4 */ new SearchSettings() { At = FamilyGenerator.Karishma.BirthDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Kaleb, FamilyGenerator.Karishma } }, { /* 5 */ new SearchSettings() { At = FamilyGenerator.KalebWeddingDate, CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Kaleb, FamilyGenerator.Karishma } }, { /* 6 */ new SearchSettings() { At = FamilyGenerator.KalebWeddingDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Kaleb, FamilyGenerator.Karishma, FamilyGenerator.Fleur, FamilyGenerator.Heena, FamilyGenerator.Sebastian } }, { /* 7 */ new SearchSettings() { At = FamilyGenerator.SebastianWithKarishmaDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Sebastian, FamilyGenerator.Karishma, FamilyGenerator.Kaleb, FamilyGenerator.Hailie, FamilyGenerator.Ahsan } }, { /* 8 */ new SearchSettings() { At = FamilyGenerator.SebastianWithKarishmaDate, CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Sebastian } }, { /* 9 */ new SearchSettings() { At = FamilyGenerator.RumaysaWeddingDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Kaleb, FamilyGenerator.Karishma, FamilyGenerator.Sebastian, FamilyGenerator.Hailie } }, { /* 10 */ new SearchSettings() { At = FamilyGenerator.RumaysaWeddingDate, CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Kaleb } }, { /* 11 */ new SearchSettings() { At = FamilyGenerator.HenriettaWeddingDate, CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Kaleb, FamilyGenerator.Sebastian, FamilyGenerator.Hailie, FamilyGenerator.Ashley, FamilyGenerator.Fleur, FamilyGenerator.John } }, { /* 12 */ new SearchSettings() { At = FamilyGenerator.HenriettaWeddingDate, CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Sebastian, FamilyGenerator.Hailie, FamilyGenerator.Fleur, } }, { /* 13 */ new SearchSettings() { At = FamilyGenerator.HenriettaWeddingDate, CanBePartnerOtherTime = false, CanBeDead = false }, new HashSet <Member>() { FamilyGenerator.Korey, FamilyGenerator.Heena, FamilyGenerator.Klara, FamilyGenerator.Hailie, FamilyGenerator.Fleur } }, { /* 14 */ new SearchSettings() { At = FamilyGenerator.HenriettaWeddingDate, CanBePartnerOtherTime = true, CanBeDead = false }, new HashSet <Member>() { FamilyGenerator.Sebastian, FamilyGenerator.Korey, FamilyGenerator.Heena, FamilyGenerator.Klara, FamilyGenerator.Hailie, FamilyGenerator.Fleur, FamilyGenerator.Rumaysa, FamilyGenerator.John, FamilyGenerator.Ashley } }, { /* 15 */ new SearchSettings() { CanBePartnerOtherTime = false, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Sebastian, FamilyGenerator.Fleur, FamilyGenerator.Hailie } }, { /* 16 */ new SearchSettings() { CanBePartnerOtherTime = false, CanBeDead = false }, new HashSet <Member>() { FamilyGenerator.Korey, FamilyGenerator.Heena, FamilyGenerator.Klara, FamilyGenerator.Hailie, FamilyGenerator.Fleur } }, { /* 17 */ new SearchSettings() { CanBePartnerOtherTime = true, CanBeDead = true }, new HashSet <Member>() { FamilyGenerator.Karishma, FamilyGenerator.Kaleb, FamilyGenerator.Sebastian, FamilyGenerator.Hailie, FamilyGenerator.Fleur } } }) { IEnumerable <Member> actualAncestors = fieldFamily.GetRootAncestors(expected.Key); Assert.AreEqual( expected.Value.Count(), actualAncestors.Count(), string.Format("Different number of ancestors in case {0}.", i) ); foreach (Member ancestor in expected.Value) { Assert.IsTrue( actualAncestors.Any(m => m.Id == ancestor.Id), string.Format( "Missing ancestor '{0}' in case {1}.", ancestor.FullName.Value(expected.Key.At), i ) ); } i++; } }