Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge development dev bbob noisy #2239

Closed
wants to merge 64 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
1d24370
First Commit working on the bbob-noisy suite
lorenzo-consoli Aug 1, 2023
b499883
First Commit working on the bbob-noisy suite
lorenzo-consoli Aug 1, 2023
cc0f55e
Writing getter functions for random_seed, distribution_theta and last…
lorenzo-consoli Aug 2, 2023
a91f6e8
Defining the functions for the uniform noise model and implementing t…
lorenzo-consoli Aug 2, 2023
4a46a9e
Implementing the functions for sampling following the cauchy noise model
lorenzo-consoli Aug 2, 2023
dfc21bc
Changing approach
lorenzo-consoli Aug 4, 2023
59b459d
Implementing the bbob noisy wrappers around the existing functions
lorenzo-consoli Aug 4, 2023
eb5d63a
Corrected a few bugs I noticed from the previous commit and added the…
lorenzo-consoli Aug 5, 2023
965c133
Testing the c code build and running the first (unsuccessfull) regres…
lorenzo-consoli Aug 5, 2023
a5b84b2
Array initialization was wrong
lorenzo-consoli Aug 7, 2023
445a2f4
Need to handle the schaffers and gallagher functions in a particular way
lorenzo-consoli Aug 9, 2023
fe62a5c
Generating data for regression test for the bbob-noisy suite
lorenzo-consoli Aug 12, 2023
07df4bf
Merge pull request #2212 from FMGS666/master
lorenzo-consoli Aug 12, 2023
a0303ef
Preparing code for regression testing
lorenzo-consoli Aug 24, 2023
b3eecbf
Proceeding with the regression test
lorenzo-consoli Aug 29, 2023
09cb7c4
Having problems with Ellipsoid
lorenzo-consoli Aug 30, 2023
92a3a5b
Solved issue with Griewank-Rosenbrock and Ellipsoid function
lorenzo-consoli Aug 30, 2023
276e315
Regression test completed
lorenzo-consoli Sep 6, 2023
d3b00cf
Cleaning the code
lorenzo-consoli Sep 6, 2023
637d16d
Regression test passed (Hopefully)
lorenzo-consoli Sep 7, 2023
2654a0d
Minor mistake in commit
lorenzo-consoli Sep 7, 2023
4722b40
Still some minor fixes to the commit
lorenzo-consoli Sep 7, 2023
82bb1c1
Problem with the python interface.
lorenzo-consoli Sep 7, 2023
4a7cde7
Still some minor fixes to the commit (python interface)
lorenzo-consoli Sep 7, 2023
04b4bf4
Cleaning the code
lorenzo-consoli Sep 7, 2023
9fe5ae5
Error in the file testing the bbob-noisy suite against the legacy code
lorenzo-consoli Sep 8, 2023
ccf5261
Updating comments to the code
lorenzo-consoli Sep 18, 2023
8f4906c
Started to play around with the pycma package and cleaned a bit the s…
lorenzo-consoli Sep 23, 2023
79ab40b
Fixing issue with indexing of problems, function and other stuff
lorenzo-consoli Sep 26, 2023
24cc517
Adding best_decision_vector to the python interface
lorenzo-consoli Oct 3, 2023
2450a63
Cleaning up before PR, Removing unnecessary files
lorenzo-consoli Oct 9, 2023
3254807
This should be the "final" commit, in the sense that it is the first …
lorenzo-consoli Oct 17, 2023
d8dd1a5
Hopefully this is the right time, but I guess we'll have to see the r…
lorenzo-consoli Oct 18, 2023
7d9f48f
Removing printf statemets after debugging
lorenzo-consoli Oct 18, 2023
a215a0a
Passing structures as void *
lorenzo-consoli Oct 18, 2023
c694887
Changing the allocation of the noisy problems
lorenzo-consoli Oct 24, 2023
d288303
removing python interface to best values/parameters
lorenzo-consoli Oct 24, 2023
db1701f
Creating instrumental branch to safely merge the dev-bbob-noisy branc…
lorenzo-consoli Nov 9, 2023
9cfbf2d
Fixing conflicts
lorenzo-consoli Nov 9, 2023
03bab4d
The signature of the coco_suite_allocate function changed, need to up…
lorenzo-consoli Nov 9, 2023
8bab4b9
Updated the function signature but forgot to do so for its call
lorenzo-consoli Nov 9, 2023
c7cdf40
Merge branch 'development' into merge-development-dev-bbob-noisy
lorenzo-consoli Nov 14, 2023
0f75e39
Patching after review, still need to clean the history and figure out…
lorenzo-consoli Nov 22, 2023
d1fae99
Is this the problem because it is not building under windows??? only …
lorenzo-consoli Nov 22, 2023
36f4a9d
The error changed, now it's not building rust and the test that was n…
lorenzo-consoli Nov 22, 2023
f992a38
ok i may have figured it out...
lorenzo-consoli Nov 22, 2023
4492aa4
ok i may have figured it out... NOOO
lorenzo-consoli Nov 22, 2023
3a36a27
[build] Replace mention of do.py in fabricate
olafmersmann Nov 17, 2023
27fbc80
[build] Replace mention of do.py in postprocessing code
olafmersmann Nov 17, 2023
4eae0d9
[doc] Add developer documentation
olafmersmann Nov 17, 2023
c8e1476
[doc] Update instructions for different dimensions
olafmersmann Nov 17, 2023
a43b99c
[doc] Update unit test README.md
olafmersmann Nov 17, 2023
c223ff3
fix initial solution proposals in mix-int case issue #2235
nikohansen Nov 22, 2023
ae71dbb
fix latex string with backslashes
nikohansen Nov 22, 2023
02c4993
fix open file not closing in cocopp.testbedsettings
nikohansen Nov 22, 2023
1b5768a
improve error handling on missing data
nikohansen Nov 22, 2023
b6c955c
print success of recovery after warning
nikohansen Nov 22, 2023
95c001c
pass raw string to re.compile to prevent warning
nikohansen Nov 22, 2023
8afc184
apply data filter to tarfile.extractall addressing issue #2244
nikohansen Nov 22, 2023
2e605fa
Creating instrumental branch to safely merge the dev-bbob-noisy branc…
lorenzo-consoli Nov 9, 2023
23333cd
Implementing the bbob noisy wrappers around the existing functions
lorenzo-consoli Aug 4, 2023
b0a473f
Adapting the code to the heavy refactoring of the last period
lorenzo-consoli Nov 9, 2023
14cdc62
Not cheating anymore
lorenzo-consoli Nov 22, 2023
edf71d7
Removing the file
lorenzo-consoli Nov 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ code-experiments/build/octave/my_fmincon.m
code-experiments/build/octave/my_optimizer.m
code-experiments/build/python/bbob2009_testcases.txt
code-experiments/build/python/bbob2009_testcases2.txt
code-experiments/build/python/._bbob_problem_best_parameter.txt
code-experiments/build/python/build/
code-experiments/build/python/dist/
code-experiments/build/python/src/cocoex/_version.py
Expand All @@ -51,11 +52,16 @@ code-experiments/test/integration-test/test_bbob-mixint
code-experiments/test/integration-test/test_biobj
code-experiments/test/integration-test/test_coco
code-experiments/test/integration-test/test_instance_extraction
code-experiments/test/regression-test/data/*
code-experiments/test/regression-test/bbob_noisy_regression_test/data_legacy/*.json
code-experiments/test/regression-test/bbob_noisy_regression_test/results

code-postprocessing/build/
code-postprocessing/cocopp/_version.py
code-postprocessing/dist/
code-postprocessing/ppdata/

.version

dist/

123 changes: 123 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
Working with the `coco` code base
=================================

## Before you start

To work with the `coco` source code, you need quite a few tools in very specific versions.
We provide a Conda environment file `env.yaml` and recommend you use it to setup your development environment.
It is regularly tested on Linux, Windows and macOS and is what is used in CI.

Following these steps should setup a fresh `coco` environment:

1. Create or update a new conda environment with all the requirements by running

```sh
conda env create -f env.yaml
```
or if you've already setup a `coco` environment
```sh
conda env update -f env.yaml --prune
```

1. Activate environment
```sh
conda activate coco
```

You now have all required dependencies to work on the code base.
If you notice that something is missing, please let us know by opening an [issue](https://github.com/numbbo/coco/issues/new/choose).

## Working with the Experimental Code

Before any of the bindings can be built and after every change to the core files (in `code-experiments/src/`), you need to run `scripts/fabricate`.
The job of `fabricate` is to bundle the C files and place them in all the right places so that the language specific build tools can find them when building the respective bindings.
`fabricate` also updates the binding metadata to include version information and any other changes that need to be made from one build to the next.
It is harmless to run `fabricate` too often, but forgetting to run it means you might be using stale sources.

### Running unit tests

Change to the unit tests directory
```sh
cd code-experiments/test/unit-test
```

Rerun `fabricate` if not already done
```sh
python ../../../scripts/fabricate
```

Build tests using [`cmake`](https://cmake.org/cmake/help/latest/manual/cmake.1.html)
```sh
cmake -B build
cmake --build build
```

Run tests using [`ctest`](https://cmake.org/cmake/help/latest/manual/ctest.1.html)
```sh
ctest --test-dir build
```

### Regression tests

Note that I'm not sure the regression tests are really useful at the moment. But here goes:

Change to the regression tests directory
```sh
cd code-experiments/test/regression-test
```

The regression tests require the `cocoex` Python package. Install it first
```sh
python -m pip uninstall -y cocoex
python -m pip install ../../build/python/
```

Now run the regression tests

```sh
python test_suites.py
```
and
```sh
python test_logger.py
```

### Integration tests

Still need to fix those up.

### `cocoex` Python package

Change to the `cocoex` Python package directory
```sh
cd code-experiments/build/python
```

Install the package from source
```sh
pip uninstall -y cocoex
pip install .
```

Install and run `pytest`
```sh
pip install pytest
python -m pytest test
```

## Working with the Postprocessing Code

Before you begin, always run `python scripts/fabricate` to update any auto-generated files.
Then, you can install the `cocopp` package using pip:

```sh
python -m pip uninstall -y cocopp
python -m pip install code-postprocessing
```

If you are working on `cocopp`, you can use an editable install and Python will pick up any changes you make without having to reinstall:

```sh
python -m pip uninstall -y cocopp
python -m pip install --editable code-postprocessing
```
Loading
Loading