public void BitwiseCalculator_Solver1()
        {
            BitwiseCalculator calc = new BitwiseCalculator(3);

            calc.NKPairs.Add(new Tuple <int, int>(5, 2), Enumerable.Range(1, 5).ToArray());
            calc.NKPairs.Add(new Tuple <int, int>(8, 5), Enumerable.Range(1, 8).ToArray());
            calc.NKPairs.Add(new Tuple <int, int>(2, 2), Enumerable.Range(1, 2).ToArray());

            string outputString = String.Empty;

            foreach (var pair in calc.NKPairs)
            {
                var biggest = 0;
                calc.N = pair.Key.Item1;
                calc.K = pair.Key.Item2;
                var array    = pair.Value;
                var tempList = Enumerable.Range(2, calc.N - 1).ToList();
                foreach (var number1 in array)
                {
                    foreach (var number2 in tempList)
                    {
                        var result = number1 & number2;
                        if (result > biggest && result < calc.K)
                        {
                            biggest = result;
                        }
                        Console.WriteLine($"{number1} & {number2} = {Convert.ToString(number1,2)} & {Convert.ToString(number2, 2)} = result {Convert.ToString(result,2)}");
                    }
                    if (tempList.Count > 0)
                    {
                        tempList.RemoveAt(0);
                    }
                }

                outputString += biggest + " ";
                Console.WriteLine(biggest);
            }
            //    for (int i = 0; i < calc.N - 1; i++)
            //    {
            //        for (int j = 1; j < calc.N - 1; j++)
            //        {

            //            if (i == j || array[i] > array[j])
            //                continue;
            //            Console.WriteLine($"{array[i]} & {array[j]}");
            //            var result = array[i] & array[j];

            //            if (result > biggest && result < calc.K)
            //                biggest = result;

            //        }
            //    }
            //    outputString += biggest + " ";
            //    Console.WriteLine(biggest);
            //}

            Assert.AreEqual("1 4 0 ", outputString);
        }
        public void BitwiseCalculator_Constructor()
        {
            BitwiseCalculator calc = new BitwiseCalculator(3);

            Assert.AreEqual(3, calc.NumberOfTests);
            Assert.IsNotNull(calc.NKPairs);
            Assert.IsNull(calc.ArrayOfInts);
            Assert.IsNull(calc.BitwiseResultsList);
        }