public static void SortedDictionary_ConatinsValueTest()
            {
                Driver <RefX1 <int>, ValX1 <string> > IntDriver = new Driver <RefX1 <int>, ValX1 <string> >();

                RefX1 <int>[] intArr1 = new RefX1 <int> [100];
                for (int i = 0; i < 100; i++)
                {
                    intArr1[i] = new RefX1 <int>(i);
                }

                RefX1 <int>[] intArr2 = new RefX1 <int> [10];
                for (int i = 0; i < 10; i++)
                {
                    intArr2[i] = new RefX1 <int>(i + 100);
                }

                Driver <ValX1 <string>, RefX1 <int> > StringDriver = new Driver <ValX1 <string>, RefX1 <int> >();

                ValX1 <string>[] stringArr1 = new ValX1 <string> [100];
                for (int i = 0; i < 100; i++)
                {
                    stringArr1[i] = new ValX1 <string>("SomeTestString" + i.ToString());
                }

                ValX1 <string>[] stringArr2 = new ValX1 <string> [10];
                for (int i = 0; i < 10; i++)
                {
                    stringArr2[i] = new ValX1 <string>("SomeTestString" + (i + 100).ToString());
                }

                //Ref<val>,Val<Ref>
                IntDriver.BasicContainsValue(intArr1, stringArr1);
                IntDriver.ContainsValueNegative(intArr1, stringArr1, stringArr2);
                IntDriver.ContainsValueNegative(new RefX1 <int>[] { }, new ValX1 <string>[] { }, stringArr2);
                IntDriver.AddRemoveKeyContainsValue(intArr1, stringArr1, 0);
                IntDriver.AddRemoveKeyContainsValue(intArr1, stringArr1, 50);
                IntDriver.AddRemoveKeyContainsValue(intArr1, stringArr1, 99);
                IntDriver.AddRemoveAddKeyContainsValue(intArr1, stringArr1, 0, 1);
                IntDriver.AddRemoveAddKeyContainsValue(intArr1, stringArr1, 50, 2);
                IntDriver.AddRemoveAddKeyContainsValue(intArr1, stringArr1, 99, 3);


                //Val<Ref>,Ref<Val>
                StringDriver.BasicContainsValue(stringArr1, intArr1);
                StringDriver.BasicContainsValue(new ValX1 <string>[] { new ValX1 <string>("str") }, new RefX1 <int>[] { null });
                StringDriver.ContainsValueNegative(stringArr1, intArr1, intArr2);
                StringDriver.ContainsValueNegative(new ValX1 <string>[] { }, new RefX1 <int>[] { }, intArr2);
                StringDriver.ContainsValueNegative(new ValX1 <string>[] { }, new RefX1 <int>[] { }, new RefX1 <int>[] { null });
                StringDriver.AddRemoveKeyContainsValue(stringArr1, intArr1, 0);
                StringDriver.AddRemoveKeyContainsValue(stringArr1, intArr1, 50);
                StringDriver.AddRemoveKeyContainsValue(stringArr1, intArr1, 99);
                StringDriver.AddRemoveAddKeyContainsValue(stringArr1, intArr1, 0, 1);
                StringDriver.AddRemoveAddKeyContainsValue(stringArr1, intArr1, 50, 2);
                StringDriver.AddRemoveAddKeyContainsValue(stringArr1, intArr1, 99, 3);
            }