Skip to content

Releases: imaginationtech/constrainedrandom

1.2.1

07 Jun 18:57
Compare
Choose a tag to compare

Minor release, as there are no new API features and no API changes.

However, this is quite a major update.

Fixes:

  • Issue with cached randomization results when relying on member variables that are not themselves random variables.
  • Performance issue for class based variables.

Improvements:

  • Debugging experience is vastly improved with overhauled exceptions and reporting.
  • Performance graphs for assessing the performance impact of changes.
  • Docmentation updates.
  • Benchmark now uses unit testing framework, so code is shared. Benchmark test cases now much easier to create.

1.2.0

22 Apr 13:19
Compare
Choose a tag to compare
  • Add support for using class instance methods as constraints
    • Now supports inheritance and method overriding, better allowing constrainedrandom to be used in an object-oriented manner.
  • Add documentation for using class features
  • Add testing for using class features
  • Expose sparsities to user via set_solver_mode()
  • Fix obscure issue around random-length lists

Full Changelog: 1.1.2...1.2.0

https://pypi.org/project/constrainedrandom/1.2.0/

1.1.2

15 Nov 16:44
Compare
Choose a tag to compare
  • Fix overflow bug for large variables in multi-var problems

https://pypi.org/project/constrainedrandom/1.1.2/

1.1.1

06 Nov 19:04
Compare
Choose a tag to compare

Bug fixes:

  • Fix strange user bug when using non-pure function as a constraint.
  • Add unit test to catch this bug.

Misc improvements:

  • Change input sanity parsing to use exceptions, not asserts.

https://pypi.org/project/constrainedrandom/1.1.1/

1.1.0

06 Sep 14:46
Compare
Choose a tag to compare

1.1.0

New features:

  • Add random-length lists by specifying rand_length in add_rand_var

Documentation:

  • Documentation for random-length lists

Testing:

  • Many new test cases for lists

Bug fixes:

  • Very rare corner case for random lists using CSP found and fixed.

https://pypi.org/project/constrainedrandom/1.1.0/

1.0.3

18 Aug 16:40
Compare
Choose a tag to compare
  • Better testing and bug fixes for globally-seeded objects.
  • Fixed issue where list objects weren't deterministic when resetting the global seed with random.seed(x).
  • Fixed issue that caused an unhandled exception when calling copy.deepcopy on a RandObj instance using global seeding.
  • Split random list solver into naive and fast, add user-facing option to disable naive.
    • Previously this was optimized manually, but in a stateful way that impacted determinism.
    • Therefore this is considered a bug fix rather than a feature addition.
    • Change benchmarking for this accordingly.

1.0.2

16 Aug 17:34
Compare
Choose a tag to compare
  • Fix issues when trying to call copy.deepcopy on a RandObj instance.
  • Fix determinism issues between copied RandObj instances.
  • Minor performance improvement for MultiVarProblem.

1.0.1

10 Aug 14:35
Compare
Choose a tag to compare

Bug fixes:

  • Fix issues with list randomization quality of results.
  • Fix bug with caching non-hashable types in sparse solver.

1.0.0

28 Jul 17:30
Compare
Choose a tag to compare

API changes:

  • Constructor no longer mandates an instance of random.Random.
    • Determinism can be controlled globally via random.seed().
    • See documentation for details.
  • add_multi_var_constraint -> add_constraint
    • Now supports adding extra single-var constraints too.
  • set_naive_solve -> set_solver_mode
    • See documentation.
  • Add with_constraints and with_values arguments to RandObj.randomize()
    • See documentation.
  • add_variable now supports a length argument for random lists.
    • See documentation.

Other changes:

  • Debugging information when constraints are unsolvable.
  • Performance improvements.
  • Determinism bugfixes around PYTHONHASHSEED.
  • Improved "How to" guide.
  • Much better unit tests.

0.0.1

26 May 16:26
Compare
Choose a tag to compare