public void ThreeListTest()
        {
            List <IdPair <AnchorId, PositionDummy> >     frozenResources = new List <IdPair <AnchorId, PositionDummy> >();
            List <IdPair <AnchorId, PositionDummy> >     spongyResources = new List <IdPair <AnchorId, PositionDummy> >();
            List <IdPair <AnchorId, PositionDummyPair> > displacementResources
                = new List <IdPair <AnchorId, PositionDummyPair> >();
            List <int> intersection = new List <int>();

            /// spongy resources anchorids are generally a subset of frozen ids. First test checks that scenario.
            /// frozen = [1..8], spongy is [2,4,6], expect displacements for [2,4,6]
            for (int i = 1; i < 9; ++i)
            {
                frozenResources.Add(PositionDummy.MakePair(i, i, 0));
            }
            for (int i = 2; i < 9; i += 2)
            {
                spongyResources.Add(PositionDummy.MakePair(i, i, 1));
            }
            for (int i = 2; i < 9; i += 2)
            {
                intersection.Add(i);
            }
            var displacementCreator = new DisplacementTestCreator();

            RunDisplacementTestCopy(displacementCreator, frozenResources, spongyResources, displacementResources);

            CheckDisplacements(displacementCreator, frozenResources, spongyResources, displacementResources);

            spongyResources.Clear();
            spongyResources.Add(PositionDummy.MakePair(4, 4, 1));

            RunDisplacementTestCopy(displacementCreator, frozenResources, spongyResources, displacementResources);

            CheckDisplacements(displacementCreator, frozenResources, spongyResources, displacementResources);

            spongyResources.Clear();
            for (int i = 2; i < 9; i += 2)
            {
                spongyResources.Add(PositionDummy.MakePair(i, i, 1));
            }

            RunDisplacementTestCopy(displacementCreator, frozenResources, spongyResources, displacementResources);

            CheckDisplacements(displacementCreator, frozenResources, spongyResources, displacementResources);

            frozenResources.Clear();
            frozenResources.Add(PositionDummy.MakePair(4, 4, 0));

            RunDisplacementTestCopy(displacementCreator, frozenResources, spongyResources, displacementResources);

            CheckDisplacements(displacementCreator, frozenResources, spongyResources, displacementResources);

            frozenResources.Clear();
            spongyResources.Clear();
            for (int i = 1; i < 10; ++i)
            {
                frozenResources.Add(PositionDummy.MakePair(i, i, 0));
                spongyResources.Add(PositionDummy.MakePair(i, i, 0));
            }

            RunDisplacementTestCopy(displacementCreator, frozenResources, spongyResources, displacementResources);

            Assert.IsTrue(displacementResources.Count == 0);
            CheckDisplacements(displacementCreator, frozenResources, spongyResources, displacementResources);
        }
            public IdPair <AnchorId, PositionDummyPair> CreateDisplacement(AnchorId id, PositionDummy frozen, PositionDummy spongy)
            {
                PositionDummyPair newLine;

                newLine.frozen = frozen.transform.position;
                newLine.spongy = spongy.transform.position;

                return(new IdPair <AnchorId, PositionDummyPair>()
                {
                    id = id,
                    target = newLine
                });
            }