FilWisher/distributed-project

View on GitHub

Showing 9,368 of 9,368 total issues

Function /home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js has a Cognitive Complexity of 6506 (exceeds 5 allowed). Consider refactoring.
Open

},{"d3":"/home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js"}],"/home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js":[function(require,module,exports){
!function() {
  var d3 = {
    version: "3.5.16"
  };
Severity: Minor
Found in visualization/assets/bundle.js - About 4 mos to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function /home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js has 9543 lines of code (exceeds 25 allowed). Consider refactoring.
Open

},{"d3":"/home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js"}],"/home/william/imperial/group/distributed-project/visualization/node_modules/d3/d3.js":[function(require,module,exports){
!function() {
  var d3 = {
    version: "3.5.16"
  };
Severity: Major
Found in visualization/assets/bundle.js - About 1 mo to fix

    File bundle.js has 9557 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"/home/william/imperial/group/distributed-project/visualization/assets/main.js":[function(require,module,exports){
    var d3 = require('d3')
    
    module.exports = {
      hello: hello,
    Severity: Major
    Found in visualization/assets/bundle.js - About 1 mo to fix

      File cache.py has 2262 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      """Cache replacement policies implementations
      
      This module contains the implementations of all the cache replacement policies
      provided by Icarus.
      """
      Severity: Major
      Found in icarus/icarus/models/cache.py - About 6 days to fix

        File strategy.py has 895 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        """Implementations of all caching and routing strategies
        """
        from __future__ import division
        import random
        import abc
        Severity: Major
        Found in icarus/icarus/models/strategy.py - About 2 days to fix

          File collectors.py has 636 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          """Performance metrics loggers
          
          This module contains all data collectors that record events while simulations
          are being executed and compute performance metrics.
          
          
          Severity: Major
          Found in icarus/icarus/execution/collectors.py - About 1 day to fix

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

              function d3_interpolateHcl(a, b) {
                a = d3.hcl(a);
                b = d3.hcl(b);
                var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
                if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
            Severity: Major
            Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
            visualization/assets/bundle.js on lines 5938..5947

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 260.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Similar blocks of code found in 2 locations. Consider refactoring.
            Open

              function d3_interpolateHsl(a, b) {
                a = d3.hsl(a);
                b = d3.hsl(b);
                var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
                if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
            Severity: Major
            Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
            visualization/assets/bundle.js on lines 5927..5936

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 260.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Function brush has 277 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

              d3.svg.brush = function() {
                var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];
                function brush(g) {
                  g.each(function() {
                    var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
            Severity: Major
            Found in visualization/assets/bundle.js - About 1 day to fix

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                d3.min = function(array, f) {
                  var i = -1, n = array.length, a, b;
                  if (arguments.length === 1) {
                    while (++i < n) if ((b = array[i]) != null && b >= b) {
                      a = b;
              Severity: Major
              Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
              visualization/assets/bundle.js on lines 88..104

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 256.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                d3.max = function(array, f) {
                  var i = -1, n = array.length, a, b;
                  if (arguments.length === 1) {
                    while (++i < n) if ((b = array[i]) != null && b >= b) {
                      a = b;
              Severity: Major
              Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
              visualization/assets/bundle.js on lines 71..87

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 256.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Function zoom has 270 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                d3.behavior.zoom = function() {
                  var view = {
                    x: 0,
                    y: 0,
                    k: 1
              Severity: Major
              Found in visualization/assets/bundle.js - About 1 day to fix

                Similar blocks of code found in 2 locations. Consider refactoring.
                Open

                        } else {
                          sibling = parent.L;
                          if (sibling.C) {
                            sibling.C = false;
                            parent.C = true;
                Severity: Major
                Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
                visualization/assets/bundle.js on lines 5384..5405

                Duplicated Code

                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                Tuning

                This issue has a mass of 239.

                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                Refactorings

                Further Reading

                Similar blocks of code found in 2 locations. Consider refactoring.
                Open

                        if (node === parent.L) {
                          sibling = parent.R;
                          if (sibling.C) {
                            sibling.C = false;
                            parent.C = true;
                Severity: Major
                Found in visualization/assets/bundle.js and 1 other location - About 1 day to fix
                visualization/assets/bundle.js on lines 5405..5426

                Duplicated Code

                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                Tuning

                This issue has a mass of 239.

                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                Refactorings

                Further Reading

                File util.py has 589 lines of code (exceeds 250 allowed). Consider refactoring.
                Open

                """Utility functions
                """
                import time
                import logging
                import collections
                Severity: Major
                Found in icarus/icarus/util.py - About 1 day to fix

                  Function plot_bar_chart has a Cognitive Complexity of 61 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def plot_bar_chart(resultset, desc, filename, plotdir):
                      """Plot a bar chart with characteristics described in the plot descriptor
                      out of the data contained in the resultset and save the plot in given
                      directory.
                      
                  Severity: Minor
                  Found in icarus/icarus/results/plot.py - About 1 day to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  File plot.py has 543 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  #!/usr/bin/env python
                  """Plot results read from a result set
                  """
                  from __future__ import division
                  import os
                  Severity: Major
                  Found in icarus/icarus/results/plot.py - About 1 day to fix

                    Function force has 216 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                      d3.layout.force = function() {
                        var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
                        function repulse(node) {
                          return function(quad, x1, _, x2) {
                            if (quad.point !== node) {
                    Severity: Major
                    Found in visualization/assets/bundle.js - About 1 day to fix

                      File topology.py has 524 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      """Functions for creating or importing topologies for experiments.
                      
                      To create a custom topology, create a function returning an instance of the
                      `IcnTopology` class. An IcnTopology is simply a subclass of a Topology class
                      provided by FNSS.
                      Severity: Major
                      Found in icarus/icarus/scenarios/topology.py - About 1 day to fix

                        Function d3_locale_timeFormat has 214 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                          function d3_locale_timeFormat(locale) {
                            var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;
                            function d3_time_format(template) {
                              var n = template.length;
                              function format(date) {
                        Severity: Major
                        Found in visualization/assets/bundle.js - About 1 day to fix
                          Severity
                          Category
                          Status
                          Source
                          Language