public void Calculate_MethodWithTryCatch_Return2()
        {
            const string method =
                @"try { } catch (Exception ex) { }";

            var calculator = new ComplexityCalculator(factory);
            var complexity = calculator.Calculate(method);

            Assert.That(complexity.Value, Is.EqualTo(2));
        }
        public void Calculate_ThrownsNullReferenceException_Returns1()
        {
            // here the method it self doesnt have to be invalid, the factory is failing
            const string method      = @"if(b1) { }";
            var          stubFactory = SetupFailingStubFactory();

            var calculator = new ComplexityCalculator(stubFactory.Object);
            var complexity = calculator.Calculate(method);

            Assert.That(complexity.Value, Is.EqualTo(1));
        }
Beispiel #3
0
        public static double GetBaseComplexityScore(Event previousEvent)
        {
            double       baseScore    = 0;
            KeyDownEvent keyDownEvent = previousEvent as KeyDownEvent;

            if (keyDownEvent != null && ComplexityCalculator.LastMouseHandedAction != ActionType.Mouse)
            {
                baseScore = ComplexityCalculator.GetReachingForMouseTransitionCost(); // Transitions between mouse and keyboard are expensive!
            }
            ComplexityCalculator.LastMouseHandedAction = ActionType.Mouse;
            return(baseScore);
        }
Beispiel #4
0
        // Test these: "Tab", "CAPSLOCK", "Back", "Return", Escape

        public override double GetMillerComplexityScore(Event previousEvent)
        {
            double baseScore = 0;

            if (ComplexityCalculator.LastMouseHandedAction == ActionType.Mouse)
            {
                baseScore = ComplexityCalculator.GetMouseToKeyboardTransitionCost(this); // Transitions between mouse and keyboard are expensive!
            }
            else
            {
                KeyDownEvent keyDownEvent = previousEvent as KeyDownEvent;
                if (keyDownEvent != null && keyDownEvent.ShiftKeyDown != ShiftKeyDown && Start - keyDownEvent.Start < TimeSpan.FromMilliseconds(750))
                {
                    baseScore = 3; // Transitions between rapidly-typed shifted & normal keys are moderately expensive.
                }
            }

            return(baseScore + ComplexityCalculator.GetKeyCost(Data));
        }
        private IComplexity CalculateMethodComplexity(string method)
        {
            var calculator = new ComplexityCalculator(factory);

            return(calculator.Calculate(method));
        }