/// <summary> /// Visits the given input data node. /// </summary> /// <param name="data">Input data node.</param> public override void Visit(MutexGroup data) { Location = "Mutex groups"; HashSet <Tuple <int, int> > uniqueFacts = new HashSet <Tuple <int, int> >(); data.ForEach(mutexFact => uniqueFacts.Add(Tuple.Create(mutexFact.Variable, mutexFact.Value))); if (uniqueFacts.Count != data.Count) { throw GetException("Some mutex group contains duplicated mutex facts, which is invalid."); } }