public static void CalculateSegmentStatesOnRandomPointsUsingOnTheFlyBoolBoolBasedCalculator(
            Tuple <Core.Point[], OnTheFlyBoolMatrixBasedSegmentStateCalculator> tuple)
        {
            Core.Point[] randomPoints = tuple.Item1;
            OnTheFlyBoolMatrixBasedSegmentStateCalculator calculator = tuple.Item2;

            foreach (Axis axis in BoardHelper.AllRealAxes)
            {
                foreach (Core.Point randomPoint in randomPoints)
                {
                    SegmentState segState = calculator.GetSegmentState(axis, randomPoint);
                }
            }
        }
        public static void CalculateSegmentStatesUsingOnTheFlyBoolBoolBasedCalculator(
            Tuple <Core.Point, OnTheFlyBoolMatrixBasedSegmentStateCalculator> tuple)
        {
            Core.Point bottomRight = tuple.Item1;
            OnTheFlyBoolMatrixBasedSegmentStateCalculator calculator = tuple.Item2;

            foreach (Axis axis in BoardHelper.AllRealAxes)
            {
                for (int x = 0; x < bottomRight.X; x++)
                {
                    for (int y = 0; y < bottomRight.Y; y++)
                    {
                        SegmentState segState = calculator.GetSegmentState(axis, x, y);
                    }
                }
            }
        }