Added the source code file for profiled units (src/model/formulations/base/punit.jl).
src/instance/migrate.jl
Added migration to 0.4.
src/instance/read.jl
Changed the generator units part to identify the Type attribute and include profiled units.
src/instance/structs.jl
Added the structs for profiled units, changed the bus and instance to include profiled units.
src/model/build.jl
Added a for-loop to build the optimization model of the profiled units part, calls the function defined in punit.jl file below.
src/model/formulations/base/punit.jl
Created this file to append a profiled unit to the optimization model (decision variables, constraints and objective function).
test/instance/migrate_test.jl
Added test case for migration to 0.4.
Note that in Fixture, a file with name ucjl-0.4.json.gz is added.
test/instance/read_test.jl
Added test case for reading.
It seems that case14.json.gz is solved somewhere else and if the profiled units are added those results may change.
Instead I created a new file named case14-profiled.json.gz. I added two more generators into the file (and I think ucjl-0.3.json.gz and case14.json.gz are related, if so, then ucjl-0.4 and case14-profiled should also be related.)
The test case uses exactly the same code as the first read_benchmark test case, with an additional check on the number of profiled units (==2) and an additional check on whether the code reads the second profiled unit correctly.
src/UnitCommitment.jl
src/model/formulations/base/punit.jl
).src/instance/migrate.jl
src/instance/read.jl
Type
attribute and include profiled units.src/instance/structs.jl
src/model/build.jl
punit.jl
file below.src/model/formulations/base/punit.jl
test/instance/migrate_test.jl
ucjl-0.4.json.gz
is added.test/instance/read_test.jl
case14-profiled.json.gz
. I added two more generators into the file (and I think ucjl-0.3.json.gz and case14.json.gz are related, if so, then ucjl-0.4 and case14-profiled should also be related.)read_benchmark
test case, with an additional check on the number of profiled units (==2
) and an additional check on whether the code reads the second profiled unit correctly.