Opened 5 months ago

Last modified 3 days ago

#2971 reviewing feature request

Intervals for RegressionProblemData/SymbolicRegressionSolution

Reported by: chaider Owned by: mkommend
Priority: medium Milestone: HeuristicLab 3.3.16
Component: Problems.DataAnalysis Version: branch
Keywords: Cc:

Description (last modified by chaider)

  • Create a new view NamedIntervalView to represent the intervals
  • Add Intervals to InteractiveSymbolicDataAnalysisSolutionSimplifierView ==> shows calculated intervals for each node

ProblemData:

  • Add a new parameter to RegressionProblemData, which shows the variable ranges of the model
  • Allows to edit the boundaries of input parameters

Solution:

  • Add a new parameter to SymbolicRegressionSolution, which shows the derivates of the model within the NamedIntervalView

Change History (143)

comment:1 Changed 5 months ago by chaider

r16368 added new branch

comment:2 Changed 5 months ago by chaider

r16369 Added Problems.DataAnalysis

comment:3 Changed 5 months ago by chaider

r16370 Added Data

comment:4 Changed 5 months ago by chaider

r16371 Added Data.Views

comment:5 Changed 5 months ago by chaider

r16372

  • Added references to projects
  • Added build events

comment:6 Changed 5 months ago by gkronber

#1299 is related

comment:7 Changed 5 months ago by chaider

r16412 merged trunk into branch

comment:8 Changed 5 months ago by chaider

r16413

  • Added parameter VariableRanges to RegressionProblemData
  • Added VariableRanges class
  • Added View class for VariableRanges

comment:9 Changed 5 months ago by chaider

r16414 Added merge properties

comment:10 Changed 5 months ago by chaider

r16424 removed HeuristicLab.Data from branch

comment:11 Changed 5 months ago by chaider

r16426

  • Added NamedIntervals class
  • Set NamedIntervals Parameter in RegressionProblemData

comment:12 Changed 4 months ago by chaider

r16534 changed structure for NamedIntervals

comment:13 Changed 4 months ago by chaider

r16535 Added Problems.DataAnalysis.Views

comment:14 Changed 4 months ago by chaider

r16536 merged DataAnalysis.Views from trunk to branch

comment:15 Changed 4 months ago by chaider

r16544

  • Added editorconfig
  • Added Getter for intervals in NamedIntervals class
  • Changed GridView to show starting values of dataset

comment:16 Changed 4 months ago by chaider

  • Description modified (diff)
  • Summary changed from Add a new parameter to RegressionProblemData/SymbolicRegressionSolution, which shows variable ranges as intervals to Intervals for RegressionProblemData/SymbolicRegressionSolution

comment:17 Changed 4 months ago by chaider

r16545

  • Added ReadOnly field to NamedIntervals
  • Changes at cell validation of NamedIntervalsView
  • Added save on value changed
Last edited 4 months ago by chaider (previous) (diff)

comment:18 Changed 4 months ago by chaider

r16546 Added Problems.DataAnalysis.Symbolic.Views to branch

comment:19 Changed 4 months ago by chaider

r16547 Added serialization to Interval class

comment:20 Changed 4 months ago by chaider

r16548

  • Removed Storable from Intervals
  • Changed copy constructor from NamedIntervals class

comment:21 Changed 4 months ago by chaider

r16549 Added interval ranges to InteractiveSymbolicDataAnalysisSolutionSimplifierView

comment:22 Changed 4 months ago by chaider

r16556 Added derivates of intervals as result collection to solution view

comment:23 Changed 4 months ago by chaider

r16581

  • Check if treeNode exists for specific intervals in SimplifierView
  • GridView fills space in NamedIntevalsView

comment:24 Changed 3 months ago by chaider

r16586 Added IntervalConstraint Parameter and some fixes

comment:25 Changed 3 months ago by chaider

r16587

  • Added TextValueView
  • Added IntervalConstraint Parser
  • This two classes will be moved to another plugin

comment:26 Changed 3 months ago by chaider

r16588 Changed variableIntervals from ObservableDictionary to Dictionary

Last edited 3 months ago by chaider (previous) (diff)

comment:27 Changed 3 months ago by chaider

r16589

  • Added new Evaluator to evaulate Pearson RSquared with repsect to given constraints
  • changes in SymbolicRegressionSolution

comment:28 Changed 3 months ago by chaider

r16590:

  • Interval-Parser:
  • Changed Parser ==> after last group there can be now an infinite amount of whitepsaces
  • Save userinput as property
  • Save variable case-sensitive
  • NamedIntervals
  • Changed Storable attribute from IEnumerable to KeyValuePair, because old Persistance cant handle IEnumerable
  • Added SymbolicRegressionConstraintAnalyzer
  • SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator
  • Fixed checking if a given interval is in another interval

comment:29 Changed 3 months ago by chaider

r16591 Fixed checking if a given interval is in another interval

comment:30 Changed 3 months ago by chaider

r16592

  • Added ContainsInterval method in Interval
  • Some renaming
  • Added ConstraintAnalyzer to SymbolicRegressionProblem
  • Added Counter for constraint violations in analyzer

comment:31 Changed 3 months ago by chaider

r16593 changed cubic and square symbol at interval arithmetic

comment:32 Changed 3 months ago by chaider

r16596

  • Extended evaluator with linear scaling
  • Added constructor to IntervalConstraint

comment:33 Changed 3 months ago by gkronber

r16627: fixed update of interval results when solution changes (e.g. in the simplifier)

comment:34 Changed 3 months ago by gkronber

r16628: made branch compile with current version of trunk

comment:35 Changed 3 months ago by gkronber

r16632: fixed a small problem (trailing \r) in the parser for constraints

comment:36 Changed 3 months ago by gkronber

r16633: fixed exception message

comment:37 Changed 3 months ago by gkronber

r16634: disabled validation check in NamedIntervalsView because it is problematic when NamedIntervals are updated (e.g. while the algorithm is running)

comment:38 Changed 3 months ago by gkronber

r16635: fixed updating of IntervalResults for SymbolicRegressionSolution

comment:39 Changed 3 months ago by gkronber

r16636: set copy local for references to false, used project references for projects within the branch

comment:40 Changed 3 months ago by gkronber

I'm not sure how exactly this branch was created. However, it is effectively impossible to merge changes from the trunk to this branch. :(

comment:41 Changed 3 months ago by gkronber

r16637: merged changesets r16356:16565 from trunk/HeuristicLab.Data.Views to branch/HeuristicLab.Data.Views

comment:42 Changed 3 months ago by gkronber

r16638: merged r16527:16625 from trunk/HeuristicLab.Problems.DataAnalysis.Views to branch/HeuristicLab.Problems.DataAnalysis.Views

comment:43 Changed 3 months ago by gkronber

r16639: merged r16527:16565 from trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Views to branch/HeuristicLab.Problems.DataAnalysis.Symbolic.Views

comment:44 Changed 3 months ago by gkronber

r16640: merged r16565:16631 from trunk/HeuristicLab.Problems.DataAnalysis to branch/HeuristicLab.Problems.DataAnalysis (resolving all conflicts)

comment:45 Changed 3 months ago by gkronber

r16641: merged r16527:16625 from trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression to branch/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression (resolving all conflicts)

Branch is now up-to-date with trunk. Damage was self-inflicted because I added all the StorableType attributes in the branch.

comment:46 Changed 3 months ago by gkronber

r16642: fixed a StorableType attribute after merge from trunk

comment:47 Changed 3 months ago by gkronber

r16643: fixed project references (removing obsolete references to HEAL.Attic, since we are using packagereferences now)

comment:48 Changed 3 months ago by gkronber

r16644: removed duplicate usings of HEAL.Attic and unnecessary usings

comment:49 Changed 3 months ago by gkronber

r16645: added an evalutor which optimizes constants first and then checks the constraint violations

comment:50 Changed 3 months ago by gkronber

r16647: merged r16646 from trunk to branch

comment:51 Changed 2 months ago by gkronber

r16685: merged r16658 from trunk to branch

comment:52 Changed 2 months ago by gkronber

r16699: fixed a bug which caused an exception when loading problem instances with string variables (e.g. Miba instances)

comment:53 Changed 8 weeks ago by bburlacu

r16713: Make IntervalConstraintsParser class static, adapt code. Add SymbolicRegressionConstraintSatisfactionEvaluator.

comment:54 Changed 8 weeks ago by gkronber

When a RegressionProblemData is restored from an old file the intervals parameter is missing. As a consequence creating solutions fails.

--> An AfterDeserialization hook is necessary.

comment:55 Changed 7 weeks ago by chaider

r16730 Added validation for NamedInterval. Show validation error inside table.

comment:56 Changed 7 weeks ago by chaider

r16731 Added commented example input for constraints definition.

comment:57 Changed 7 weeks ago by chaider

r16732 Added \n for end-of-line termination to regex

comment:58 Changed 7 weeks ago by chaider

r16735 fixed unicode for derivation symbol

comment:59 Changed 7 weeks ago by gkronber

r16741: fixed method names (for compatibility with r16740)

comment:60 Changed 7 weeks ago by chaider

r16747 Added static CheckConstrain and CheckConstraints methods to SymbolicRegressionConstraintAnalyzer. Changed Apply method to use new CheckConstraints method

comment:61 Changed 7 weeks ago by chaider

r16756

  • Changed Interval Constraints View
  • Added View for successfully parsed Constraints
  • Save Constraints as IntervalConstraints

comment:62 Changed 7 weeks ago by chaider

r16759

  • Added commented infotext into IntervalConstraint Textbox
  • Modified copy constructor

comment:63 Changed 7 weeks ago by chaider

r16761 removed semicolon

comment:64 Changed 6 weeks ago by chaider

r16770 Added Core Views

comment:65 Changed 6 weeks ago by chaider

r16771 Changed references

comment:66 Changed 6 weeks ago by chaider

r16772 Changed IntervalConstraints View

comment:67 Changed 6 weeks ago by chaider

r16773

  • Fixes and updates in IntervalConstraintView
  • Changed Parser

comment:68 Changed 6 weeks ago by chaider

r16774 Changed Parser and IntevalConstraint View

comment:69 Changed 6 weeks ago by chaider

r16775: merged r16757:16763 from trunk to branch

comment:70 Changed 5 weeks ago by chaider

r16776

  • Added Expression change event
  • Added errorProvider Validation

comment:71 Changed 5 weeks ago by chaider

r16777

  • Fixed Dispose problem
  • Added event handling for item selection

comment:72 Changed 5 weeks ago by chaider

r16778

  • Changed field numberOfDerivation
  • Added numberOfDerivation to Expression string
  • Added numberOfDerivation to parser

comment:73 Changed 5 weeks ago by chaider

  • Status changed from new to assigned

comment:74 Changed 5 weeks ago by chaider

  • Owner changed from chaider to mkommend
  • Status changed from assigned to reviewing

Should it be possible to change the Variable of the derivation in the Detail-View if so: Validating the Variable in the IntervalConstraintView needs to get the Target-Variable and the VariableList, therefore I need the ProblemData inside my IntervalConstraints.

comment:75 Changed 5 weeks ago by chaider

r16780

  • Added Target prefix for parsed onstraints in IntervalConstraintParser
  • Added isChecked validation for constraints in ConstraintAnalyzer

comment:76 Changed 5 weeks ago by chaider

r16781

  • Added isChecked validation for SymbolicRegressionSingleObjectiveConstraintConstOptEvaluator

comment:77 Changed 5 weeks ago by chaider

r16787 Fixed isChecked events

comment:78 Changed 5 weeks ago by chaider

r16790 removed HeuristicLab.Core.Views from branch

comment:79 Changed 5 weeks ago by chaider

r16791 removed HeuristicLab.Data.Views from branch

comment:80 Changed 5 weeks ago by mkommend

Review comments

  • Remove all resx (designer generated) files for the views
  • Check and correct all namespaces (e.g. NameInterval lies in HL.Problems.DataAnalysis.Implementation, What is HeuristicLab.Problems.DataAnalysis.Annotations?)
  • Remove and sort all usings
  • All methods should have Access modifies specified (e.g. ConstaintAnalyzer.CheckConstraint)
  • Remove commented code
  • Check if all classes contain a License Header (e.g. IntervalConstraintView)
  • Unify Encoding(e.g. RegressionProblemData is changed to use Western European instead of UTF8). I have personally never seen such a change.

HL.Problems.DataAnalysis.Symbolic.Views

  • Remove ProblemData casts in InteractiveSymbolicDataAnalysisSolutionSimplifierView

HL.Problems.DataAnalysis.Symbolic.Regression

  • Revert changes in SymbolicRegressionConstantOptimizationEvaluator (storable type attribute on EvaluationsCounter)
  • SymbolicRegressionConstraintAnalyzer
    • EnabledByDefault hides base member instead of overriding it!
    • Remove casts to RegressionProblemData
    • What is the purpose of the check in line 94?
    • What is the purpose of the check in line 110? How can it be that the variable of a constraint is null?
    • Reformat class to use longer lines than 80 char (e.g. line 112, 114, ...)
    • Line 111 should not be there are check for the target variable or variable in general?
    • Handling of error cases / exception in CheckConstraints
    • Please use results parameters for creating / updating results.
    • Don't misuse Dictionaries as result type
  • Is the SymbolicRegressionConstraintSatisfactionEvaluator necessary? Please check with bburlacu
  • SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator
    • Contains lots of commented code
    • What is the out parameter of CheckConstraintsViolations? Why is that necessary?
  • SymbolicRegressionSolution
    • Remove const string EstimatedDerivationInterval (it is not used at all)
    • Line 133: Initialize with empty type (null) if possible to avoid duplicate calculation
    • Adapt AfterDeserializationHook to include new results
    • Line 165 avoid cast and access to values via parameters
    • Line 172 error checking - What happens if the key is the targetVariable
    • Suggestion: What about making GetIntervalEvaluations static? What is your opinion on this?

HL.Problems.DataAnalysis ==

  • RegressionProblemData
    • Add variable ranges and constraints to the according interface
    • Move comment message to parsedConstraint as this has nothing todo with the ProblemData. Adapt comment to actually use reasonable variable names that actually occur in the problem data
  • NamedInterval
    • cloning ctor line 38 - create new interval from existing one to be extra safe although intervals are immutable
    • Remove unused method InsertMany
    • Why is there an add method, but no other manipulations methods? Furthermore, there are no events present that indicate changes to the underlying collection/dictionary.
    • Maybe its better to expose an observable dictionary directly?!
  • IntervalConstraint
    • Not all setters fire the changed event.
    • IsCheck should be renamed to either Check or Enabled
    • I would remove the default ctor and the ctor with just a name, cause these are useless
  • Remove ITextValue from the plugin (see ticket #2931).
  • ParsedConstraint
    • LicenseHeader is missing
    • Contains unused using
    • Never expose protected fields
    • Is the reference to the problemData really necessary? I have seen that you forward the problemData to the parser for variable validation. Is there no other way around?
    • Cloning constructor does not clone the values.
    • Ctor base calls are missing.
    • Ctors should forward to each other

HL.Problems.DataAnalysis.View

  • IntervalConstraintView
    • ctor line 31 set derivationInput.Checked to false, because the content is always null at this time
    • UpdateControls line 97 - select emptyItem if constraint is no derivation
    • UpdateExpression - make method static that returns a string
    • Create a separate formater parse that is the inverse to the constraint parser
    • lowerboundInput_Validating use preconditions and early exit (e.g. line 152 if(double.IsNan(value)) { e.Cancel = true; return;}
    • Check calls to UpdateControls! These shouldn't be necessary in most cases, because the changed event should automatically trigger a GUI update!
    • TextValueView and Type will soon be integrated with #2391 and should be afterwards removed from this branch

Testing

  • Variable Ranges - Clicking on columns names for sorting throws an exception
  • White space in IntervalConstraint commented text
  • Parser does not work with variable containing a white space in their name (e.g. PowerMeter problem data)
  • Creation of new constraint by the plus button does not work
  • Genetic Programming - Symbolic Regression Sample does not work anymore (Exception during execution). A possible reason might be that variable ranges are missing.
Last edited 5 weeks ago by mkommend (previous) (diff)

comment:81 Changed 5 weeks ago by mkommend

  • Owner changed from mkommend to chaider
  • Status changed from reviewing to assigned

comment:82 Changed 5 weeks ago by chaider

r16800 Several changes regarding review comments

comment:83 Changed 5 weeks ago by chaider

r16809

  • Added possibilty to use variables with whitespaces or derivation in constraint-definitions

comment:84 Changed 5 weeks ago by chaider

r16810 Added AfterDeserialization hook to RegressionProblemData to add VariableRanges and IntervalConstraints

comment:85 Changed 5 weeks ago by chaider

r16817 fixed sorting of columns in NamedIntervalsView

comment:86 Changed 4 weeks ago by gkronber

The branch cannot be compiled with the current trunk!

comment:87 Changed 4 weeks ago by gkronber

In r16800 the datatype for variableRanges was changed from Dictionary<...> to IDictionary<...> in method CheckConstraintViolations

https://dev.heuristiclab.com/trac.fcgi/changeset/16800/branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveConstraintPearsonRSquaredEvaluator.cs

However, since IntervalInterpreter in the trunk expects Dictionary this fails.

comment:88 Changed 4 weeks ago by gkronber

I made the necessary changes to trunk in order to fix this. See #2966, r16822

comment:89 Changed 4 weeks ago by gkronber

r16823: also use IDictionary instead of Dictionary in SimplifierView

comment:90 Changed 4 weeks ago by gkronber

  • r16824: merged changes from trunk/HeuristicLab.Problems.DataAnalysis to branch
  • r16825: merged r16763 from trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression to branch
Last edited 4 weeks ago by gkronber (previous) (diff)

comment:91 Changed 4 weeks ago by chaider

r16830 fixed review comments

comment:92 Changed 4 weeks ago by chaider

r16841 added getter and setter for variable ranges and interval constraints

comment:93 Changed 4 weeks ago by chaider

r16843 Removed Properties/Annotations.cs

comment:94 Changed 4 weeks ago by chaider

r16844

  • removed/reordered usings
  • removed storabletype in ConstantOptimizationEvaluator
  • Added/Changed License informations

comment:95 Changed 4 weeks ago by chaider

r16845 Changed nodeIntervals in InteractiveSymbolicDataAnalysisSolutionSimlifierView

comment:96 Changed 4 weeks ago by chaider

r16846 Added SymbolicRegressionConstraintAnalyzer to AfterDeserailization Hook

comment:97 Changed 4 weeks ago by chaider

r16851 Refactored Constraint Evaluator and Analyzer

comment:98 Changed 4 weeks ago by chaider

r16862 Changed some views

comment:99 Changed 4 weeks ago by chaider

r16865 Added variable block-symbol (') for constraint parser

comment:100 Changed 4 weeks ago by chaider

r16866 changed ConstraintParser description text and example to meet new parser requirements

comment:101 Changed 4 weeks ago by chaider

r16870 changed content events in ParsedConstraintView

comment:102 Changed 3 weeks ago by chaider

r16879 Removed unused parser method

comment:103 Changed 3 weeks ago by chaider

r16880

  • Disabled variable input field in IntervalConstraintView
  • Added update definition method in IntervalConstraintView
  • Added onChanged event for definition

comment:104 Changed 3 weeks ago by chaider

r16881

  • removed unused constructors
  • changed creation of IntervalConstraint in IntervalConstraintParser

comment:105 Changed 3 weeks ago by chaider

r16882 Added TODO issue for floating point calculation

comment:106 Changed 3 weeks ago by chaider

r16883 merged trunk into branch

comment:107 Changed 3 weeks ago by chaider

r16884 fixed storable problem within RegressionProblemData

comment:108 Changed 3 weeks ago by chaider

r16885

  • removed/fixed usings
  • removed .resx file

comment:109 Changed 3 weeks ago by chaider

r16886 Added Storable-Attribues to IntervalConstraint

comment:110 Changed 3 weeks ago by chaider

r16887

  • Changed resizing to all cells instead of headers
  • Update OnContentChangedMethod

comment:111 Changed 3 weeks ago by chaider

r16888 fixed NamedIntervalsView

comment:112 Changed 2 weeks ago by chaider

r16895 Changed IntervalConstraint

comment:113 Changed 2 weeks ago by chaider

r16896 Renaming and moving files:

Renamed: NamedIntervals => IntervalCollection

ParsedConstraint => ProblemDataConstraint

NamedIntervalsView => IntervalCollectionView

Folder Parser => Interval Moved: IntervalCollectionView from Regression/IntervalCollectionView => ./IntervalCollectionView

Interval, IntervalCollection from /Implementation => /Implementation/Interval

comment:114 Changed 2 weeks ago by chaider

r16898

  • Added all fields to IntervalConstraintView
  • Rearanged fields
  • Updated NumberOfDerivation event

comment:115 Changed 2 weeks ago by chaider

r16900

  • Added field Target to IntervalConstraint
  • Prefixed Target-Item with Target:
  • Removed prefixed Target: at derivations ==> show target field instead

comment:116 Changed 13 days ago by chaider

r16903 Added variable definition without escape chars

comment:117 Changed 13 days ago by chaider

r16904 Renamed NamedIntervals to IntervalCollection

comment:118 Changed 13 days ago by chaider

r16904 Changed OnRemoved event int ParsedConstraintView ==> Removing the constraint_changed event

comment:119 follow-up: Changed 13 days ago by gkronber

The combobox for #Derivation and checkboxes in the "Interval Constraints Detail" are not disabled (set readonly).

Last edited 13 days ago by gkronber (previous) (diff)

comment:120 Changed 12 days ago by chaider

r16917 Reformated code and added null-condition to Intervals

comment:121 in reply to: ↑ 119 Changed 12 days ago by chaider

Replying to gkronber:

The combobox for #Derivation and checkboxes in the "Interval Constraints Detail" are not disabled (set readonly).

The #Derivation is only disabled at the Target-Constraint, because there we don't have a derivation. For the Derivation-Constraints it should be possible to change the number of derivation in the "Interval Constraints Detail View". The checkboxes should also be changeable in the Detail-View (inclusive or exclusive upper- or lower-bound and disabled/enabled)

comment:122 Changed 12 days ago by chaider

r16918

  • changed VariableIntervals from ObservableDictionary to IDictionary
  • Added methods to get single intervals and all intervals

comment:123 Changed 12 days ago by chaider

r16919 updated description text for constraints input

comment:124 Changed 12 days ago by chaider

r16920 Fixed displayed value in #Derivation-field for target constraints

Last edited 12 days ago by chaider (previous) (diff)

comment:125 Changed 12 days ago by chaider

r16921

  • Changed getInterval method to return Interval instead of KeyValuePair
  • Calling getMethods from IntervalsCollection

comment:126 Changed 12 days ago by chaider

r16924 Added isEnabled to constructor

comment:127 Changed 12 days ago by chaider

r16925 Set the dictionary to private, renamed methods, added methods to operate on dictionary

comment:128 Changed 12 days ago by chaider

r16927 use methodes to operate on IntervalCollection dictionary

comment:129 Changed 12 days ago by chaider

r16928 Fixed cloning in ProblemDataConstraint

comment:130 Changed 12 days ago by chaider

r16930

  • removed setter from VariableRanges and IntervalConstraints
  • changed protected method in sealed class to private

comment:131 Changed 12 days ago by chaider

r16932 Use partial differential directly in strings instead of unicode

comment:132 Changed 11 days ago by gkronber

    public ProblemDataConstraint() :base () {
      this.Input = exampleInput;
      this.constraints = new CheckedItemList<IntervalConstraint>();
      this.ProblemData = null;
    }

    public ProblemDataConstraint(IRegressionProblemData problemData) : base() {
      this.Input = exampleInput;
      this.constraints = new List<IntervalConstraint>();
      

Why do you use CheckedItemList in the first ctor and List in the second?

comment:133 Changed 11 days ago by gkronber

Persistence of problems with intervals doesn't work at all.

It is never allowed to access data members of objects as long as serialization is not complete. You have many storable properties where in the setter you update the GUI. For example

    [Storable]
    public bool InclusiveUpperBound {
      get => inclusiveUpperBound;
      set {
        if (inclusiveUpperBound != value) {
          inclusiveUpperBound = value;
          UpdateExpression();
          OnChanged();
        }
      }

This fails because value is not yet completely restored by HEAL.Attic. Attach the Storable property to the backing field instead.

    [Storable(Name = "InclusiveUpperBound")]
    private bool inclusiveUpperBound;
    public bool InclusiveUpperBound {
      get => inclusiveUpperBound;
      set {
        if (inclusiveUpperBound != value) {
          inclusiveUpperBound = value;
          UpdateExpression();
          OnChanged();
        }
      }
    }

In ProblemDataConstraint.cs the property can be set to any enumerable (even a WhereSelect iterator!). It is strange to set the field to a lazy(!) enumerable and HEAL.Attic does not support serialization of lazy enumerables.


 [Storable]
    public IEnumerable<IntervalConstraint> Constraints {
      get => constraints;
      set {
        if (constraints == value) return;
        constraints = value;
        OnChanged();
      }
    }

`

comment:134 Changed 11 days ago by chaider

r16935 fixed persisting of problems

  • Attached Storable propperty to backing fields
  • Changed the lazy enumerable of the Constraints field

comment:135 Changed 11 days ago by chaider

r16936 Added #Derivation combobox and checkboxes to EnableStateOfControls to lock it while running

comment:136 Changed 11 days ago by chaider

r16937 Removed Name from Storable attribute and initialized constraints with empty List

comment:137 Changed 11 days ago by chaider

r16938 Added Changed event for ProblemDataConstraint

  • Updated parseBtn_Click

comment:138 Changed 5 days ago by chaider

r16957 Fixed parsing of seperator between lower- and upper-bound to match exactly two points

comment:139 Changed 5 days ago by chaider

r16959 Changed unicode to derivative symbol in exampleInput

comment:140 Changed 5 days ago by chaider

r16960 Removed unused ReadOnly property from IntervalCollection

comment:141 Changed 3 days ago by chaider

r16963 Added OnTextChange event for constraints input; Added lock of constraints input

comment:142 Changed 3 days ago by chaider

r16964 Changed setter conditions to precondiation checks

comment:143 Changed 3 days ago by chaider

  • Owner changed from chaider to mkommend
  • Status changed from assigned to reviewing
Note: See TracTickets for help on using tickets.