Skip to content

UniformOnePositionManipulator throws Exception if only a single value is allowed #3148

@HeuristicLab-Trac-Bot

Description

@HeuristicLab-Trac-Bot

Issue migrated from trac ticket # 3148

component: Encodings.IntegerVectorEncoding | priority: medium

2022-03-10 13:45:20: @NimZwei created the issue


If the bounds for an UniformOnePositionManipulator limits the value range to a single, admissible value, an Exception is thrown.

This is caused in lines 94-95 in UniformOnePositionManipulator.cs, that were introduced in r8790:

max = FloorFeasible(min, max, step, max - 1);
vector[index] = RoundFeasible(min, max, step, random.Next(min, max));

For instance, the bounds [0, 1[ allowing only allow 0 as value, causes min and max to be 0, causing an exception when calling random.Next(min, max).

I guess, the min == max check in line 88 could be used after adapting the upper bound.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggood first issueGood for newcomers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions