public static bool TestAreEqual(SpaceImpl a, SpaceImpl b) { foreach (KeyValuePair<CoordPair, Connection> kvp in a.m_connections) { if (b.m_connections[kvp.Key] != kvp.Value) { return false; } } foreach (KeyValuePair<CoordPair, Connection> kvp in b.m_connections) { if (a.m_connections[kvp.Key] != kvp.Value) { return false; } } foreach (KeyValuePair<Point, HashSet<String>> kvp in a.m_qualifiers) { foreach (String s in kvp.Value) { if (!b.m_qualifiers[kvp.Key].Contains(s)) { return false; } } } foreach (KeyValuePair<Point, HashSet<String>> kvp in b.m_qualifiers) { foreach (String s in kvp.Value) { if (!a.m_qualifiers[kvp.Key].Contains(s)) { return false; } } } return true; }
public ISpace DeepCopy() { SpaceImpl copy = new SpaceImpl(); foreach (KeyValuePair<Point, ScreenConstructionParameters> kvp in m_screenParameters) { copy.m_screenParameters.Add(kvp.Key, kvp.Value.DeepCopy()); } foreach (KeyValuePair<Point, HashSet<String>> kvp in m_qualifiers) { HashSet<String> qualifiers = new HashSet<String>(kvp.Value); copy.m_qualifiers.Add(kvp.Key, qualifiers); } copy.m_connections = new Dictionary<CoordPair, Connection>(this.m_connections); copy.m_openConnections = new Dictionary<CoordPair, Connection>(this.m_openConnections); copy.m_hashCode = this.m_hashCode; return copy; }