private void TstDirection(Set4 direction)
 {
     _direction = direction;
     TstQueryingFrom(_setA);
     TstQueryingFrom(_setB);
     TstQueryingFrom(_setBoth);
 }
 private void TstWithDeletedObjectsIn(Set4 containers)
 {
     _containersWithDeletedObjects = containers;
     TstDirection(_setA);
     TstDirection(_setB);
     TstDirection(_setBoth);
 }
 private void TstWithNewObjectsIn(Set4 containersWithNewObjects)
 {
     _containersWithNewObjects = containersWithNewObjects;
     TstWithChangedObjectsIn(None);
     TstWithChangedObjectsIn(_setA);
     TstWithChangedObjectsIn(_setB);
     TstWithChangedObjectsIn(_setBoth);
 }
 private void TstQueryingFrom(Set4 containersToQueryFrom)
 {
     _containersToQueryFrom = containersToQueryFrom;
     TstWithNewObjectsIn(None);
     TstWithNewObjectsIn(_setA);
     TstWithNewObjectsIn(_setB);
     TstWithNewObjectsIn(_setBoth);
 }
        void Start()
        {
            var totallength = Set1.Length + Set2.Length + Set3.Length + Set4.Length;

            allSets = new Sprite[totallength];
            Set1.CopyTo(allSets, 0);
            Set2.CopyTo(allSets, Set1.Length);
            Set3.CopyTo(allSets, Set1.Length + Set2.Length);
            Set4.CopyTo(allSets, Set1.Length + Set2.Length + Set3.Length);
        }
        private void TstWithChangedObjectsIn(Set4 containers)
        {
            _containersWithChangedObjects = containers;
            TstWithContainerStateToPrevail(_setA);
            return;

            TstWithContainerStateToPrevail(None);
            TstWithContainerStateToPrevail(_setA);
            TstWithContainerStateToPrevail(_setB);
            TstWithContainerStateToPrevail(null);
        }
 private string Print(Set4 containerSet)
 {
     if (containerSet == null)
     {
         return("null");
     }
     if (containerSet.IsEmpty())
     {
         return("NONE");
     }
     if (containerSet.Size() == 2)
     {
         return("BOTH");
     }
     return(First(containerSet));
 }
 private void TstWithContainerStateToPrevail(Set4 containers)
 {
     _containerStateToPrevail = containers;
     RunCurrentCombination();
 }
 private string First(Set4 containerSet)
 {
     return(First(containerSet.GetEnumerator()));
 }