hrntsm/Tunny

View on GitHub

Showing 185 of 198 total issues

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

using System;
using System.Windows;
using System.Windows.Controls;

using Optuna.Sampler;
Tunny/WPF/Views/Pages/Settings/Sampler/NSGAIIISettingsPage.xaml.cs on lines 1..97

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 843.

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

using System;
using System.Windows;
using System.Windows.Controls;

using Optuna.Sampler;
Tunny/WPF/Views/Pages/Settings/Sampler/NSGAIISettingsPage.xaml.cs on lines 1..96

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 843.

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 Algorithm.cs has 643 lines of code (exceeds 250 allowed). Consider refactoring.
Open

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
Severity: Major
Found in Tunny/Solver/Algorithm.cs - About 1 day to fix

    File Storage.cs has 600 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    using System;
    using System.Collections.Generic;
    using System.Data.SQLite;
    using System.IO;
    using System.Linq;
    Severity: Major
    Found in Optuna/Storage/RDB/Storage.cs - About 1 day to fix

      File OptimizeViewModel.cs has 550 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      using System;
      using System.Collections.ObjectModel;
      using System.Globalization;
      using System.IO;
      using System.Runtime.InteropServices;
      Severity: Major
      Found in Tunny/WPF/ViewModels/Optimize/OptimizeViewModel.cs - About 1 day to fix

        File GrasshopperInOut.cs has 499 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        using System;
        using System.Collections.Generic;
        using System.Globalization;
        using System.Linq;
        using System.Threading.Tasks;
        Severity: Minor
        Found in Tunny/Util/GrasshopperInOut.cs - About 1 day to fix

          File OutputViewModel.cs has 454 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          using System.Collections.Generic;
          using System.Collections.ObjectModel;
          using System.Globalization;
          using System.IO;
          using System.Linq;
          Severity: Minor
          Found in Tunny/WPF/ViewModels/Output/OutputViewModel.cs - About 6 hrs to fix

            Method GetTargetValue has a Cognitive Complexity of 50 (exceeds 20 allowed). Consider refactoring.
            Open

                    private double GetTargetValue(Trial trial, string target)
                    {
                        if (target == "ID")
                        {
                            return trial.TrialId;
            Severity: Minor
            Found in Tunny/WPF/ViewModels/Output/AnalysisChartViewModel.cs - About 5 hrs 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 Storage.cs has 352 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            using System;
            using System.Collections.Generic;
            using System.IO;
            using System.Linq;
            
            
            Severity: Minor
            Found in Optuna/Storage/Journal/Storage.cs - About 4 hrs to fix

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

              using System.Globalization;
              using System.Windows;
              using System.Windows.Controls;
              
              using Optuna.Sampler.OptunaHub;
              Tunny/WPF/Views/Pages/Settings/Sampler/BruteForceSettingsPage.xaml.cs on lines 1..57
              Tunny/WPF/Views/Pages/Settings/Sampler/RandomSettingsPage.xaml.cs on lines 1..58

              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 294.

              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 3 locations. Consider refactoring.
              Open

              using System;
              using System.Globalization;
              using System.Windows;
              using System.Windows.Controls;
              
              
              Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml.cs on lines 1..57
              Tunny/WPF/Views/Pages/Settings/Sampler/BruteForceSettingsPage.xaml.cs on lines 1..57

              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 294.

              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 3 locations. Consider refactoring.
              Open

              using System.Globalization;
              using System.Windows;
              using System.Windows.Controls;
              
              using Optuna.Sampler;
              Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml.cs on lines 1..57
              Tunny/WPF/Views/Pages/Settings/Sampler/RandomSettingsPage.xaml.cs on lines 1..58

              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 294.

              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

              Class SqliteStorage has 32 methods (exceeds 20 allowed). Consider refactoring.
              Open

                  public class SqliteStorage : IOptunaStorage
                  {
                      private readonly Dictionary<int, Study.Study> _studies = new Dictionary<int, Study.Study>();
                      private readonly SQLiteConnectionStringBuilder _sqliteConnection;
                      private int _nextStudyId;
              Severity: Minor
              Found in Optuna/Storage/RDB/Storage.cs - About 4 hrs to fix

                Class JournalStorage has 30 methods (exceeds 20 allowed). Consider refactoring.
                Open

                    public class JournalStorage : IOptunaStorage
                    {
                        private readonly Dictionary<int, Study.Study> _studies = new Dictionary<int, Study.Study>();
                        private int _nextStudyId;
                        private int _trialId;
                Severity: Minor
                Found in Optuna/Storage/Journal/Storage.cs - About 3 hrs to fix

                  Class Algorithm has 30 methods (exceeds 20 allowed). Consider refactoring.
                  Open

                      public class Algorithm : PythonInit
                      {
                          public Parameter[] OptimalParameters { get; private set; }
                          public EndState EndState { get; private set; }
                  
                  
                  Severity: Minor
                  Found in Tunny/Solver/Algorithm.cs - About 3 hrs to fix

                    Method CreateBaseTables has 90 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                            private void CreateBaseTables()
                            {
                                var commands = new StringBuilder();
                                commands.Append("CREATE TABLE IF NOT EXISTS alembic_version(");
                                commands.Append("   version_num VARCHAR(32) PRIMARY KEY NOT NULL");
                    Severity: Major
                    Found in Optuna/Storage/RDB/Storage.cs - About 3 hrs to fix

                      Method DrawTable has 89 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                              private void DrawTable()
                              {
                                  var table = new DataTable();
                                  table.Columns.Add("ID", typeof(int));
                      
                      
                      Severity: Major
                      Found in Tunny/WPF/ViewModels/Output/AnalysisTableViewModel.cs - About 3 hrs to fix

                        Method DrawTable has a Cognitive Complexity of 39 (exceeds 20 allowed). Consider refactoring.
                        Open

                                private void DrawTable()
                                {
                                    var table = new DataTable();
                                    table.Columns.Add("ID", typeof(int));
                        
                        
                        Severity: Minor
                        Found in Tunny/WPF/ViewModels/Output/AnalysisTableViewModel.cs - About 3 hrs 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

                        Class IOptunaStorage has 28 methods (exceeds 20 allowed). Consider refactoring.
                        Open

                            public interface IOptunaStorage
                            {
                                // Basic study manipulation
                                int CreateNewStudy(StudyDirection[] studyDirections, string studyName);
                                void DeleteStudy(int studyId);
                        Severity: Minor
                        Found in Optuna/Storage/IOptunaStorage.cs - About 3 hrs to fix

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

                          traces.append(
                              go.Scatter(
                                  x=[t.values[0] for t in no_good_trials],
                                  y=[t.values[1] for t in no_good_trials],
                                  mode="markers",
                          Severity: Major
                          Found in Examples/Python/plot_with_coloring_of_results.py and 1 other location - About 3 hrs to fix
                          Examples/Python/plot_with_coloring_of_results.py on lines 34..40

                          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 65.

                          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

                          Severity
                          Category
                          Status
                          Source
                          Language