public AbstractSemanticObject[] BuildBs() { AbstractSemanticObject[] result = new AbstractSemanticObject[5]; SemanticObjectA a = new SemanticObjectA(); SemanticObjectC lastC = null; for (int i = 0; i < 5; i++) { SemanticObjectB b = new SemanticObjectB { IntProperty = i, StringProperty = s_SomeStrings[i] }; for (int j = 0; j < 10; j++) { SemanticObjectC c = new SemanticObjectC { B = b, A = a }; lastC = c; } b.A = a; result[i] = b; } // this creates a loop, as it is downstream, but not a collection a.C = lastC; return(result); }
public void ToLimitedStringTest() { List <AbstractSemanticObject> all = new List <AbstractSemanticObject>(BuildBs()); AbstractSemanticObject aB = all[0]; SemanticObjectB aBasB = (SemanticObjectB)aB; all.Add(aBasB.A); all.AddRange(aBasB.Cs.Cast <AbstractSemanticObject>()); foreach (AbstractSemanticObject aso in all) { string result = aso.LimitedToString(); Trace.WriteLine(result); Trace.Flush(); } }
public void EqualsTest() { List <AbstractSemanticObject> all = new List <AbstractSemanticObject>(BuildBs()); AbstractSemanticObject aB = all[0]; SemanticObjectB aBasB = (SemanticObjectB)aB; all.Add(aBasB.A); all.AddRange(aBasB.Cs.Cast <AbstractSemanticObject>()); bool result = false; foreach (AbstractSemanticObject aso1 in all) { foreach (AbstractSemanticObject aso2 in all) { result = aso1.Equals(aso2); Assert.AreEqual(result, result); } result = aso1.Equals(null); } Assert.AreEqual(result, result); }