public static Complexity Check(DoubleLoopExercise exercise)
        {
            var column = GetColumn(exercise.OuterLoop);
            var row    = GetRow(exercise.InnerLoop);

            return(Answer[row, column]);
        }
        public void Single(
            [Values(VarType.N)] VarType outerBound,
            [Values(OpType.Increase)] OpType outerOp,
            [Values(VarType.Const)] VarType outerStep,
            [Values(VarType.N)] VarType innerBound,
            [Values(OpType.Multiply)] OpType innerOp,
            [Values(VarType.Prev)] VarType innerStep
            )
        {
            var random   = new Random(1224);
            var outer    = new Loop(outerBound, outerOp, outerStep);
            var inner    = new Loop(innerBound, innerOp, innerStep);
            var exercise = new DoubleLoopExercise(outer, LoopType.For, inner, LoopType.For);

            exercise.GetComplexity()
            .Should()
            .Be(ComplexityChecker.Check(exercise), exercise.GetCode(random));
        }