diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 5032660..4d88c2b 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -14,9 +14,40 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest] # macos-latest : Knitro does not yet support Java API on macOS, to be tried later on steps: + - name: Install Knitro (Linux) + if: matrix.os == 'ubuntu-latest' + run: | + wget -nv -O knitro.tar.gz "$KNITRO_LINUX_URL" + mkdir -p $RUNNER_TEMP/knitro + tar xzf knitro.tar.gz -C $RUNNER_TEMP/knitro + echo "KNITRODIR=$RUNNER_TEMP/knitro/knitro-14.1.0-Linux64" >> "$GITHUB_ENV" + env: + KNITRO_LINUX_URL: ${{ secrets.KNITRO_LINUX_URL }} + +# Knitro does not yet support Java API on macOS, to be tried later on +# - name: Install Knitro (macOS) +# if: matrix.os == 'macos-latest' +# run: | +# wget -nv -O knitro.tar.gz "$KNITRO_MACOS_URL" +# mkdir -p $RUNNER_TEMP/knitro +# tar xzf knitro.tar.gz -C $RUNNER_TEMP/knitro +# echo "KNITRODIR=$RUNNER_TEMP/knitro/knitro-14.1.0-ARM-MacOS" >> "$GITHUB_ENV" +# env: +# KNITRO_MACOS_URL: ${{ secrets.KNITRO_MACOS_URL }} + + - name: Install Knitro (Windows) + if: matrix.os == 'windows-latest' + shell: powershell + run: | + C:\msys64\usr\bin\wget.exe -nv -O knitro.zip "$env:KNITRO_WINDOWS_URL" + 7z x -y knitro.zip -oC:\knitro + echo "KNITRODIR=C:\knitro\knitro-14.1.0-Win64" >> "$env:GITHUB_ENV" + env: + KNITRO_WINDOWS_URL: ${{ secrets.KNITRO_WINDOWS_URL }} + - name: Checkout sources uses: actions/checkout@v4 @@ -39,12 +70,22 @@ jobs: - name: Build with Maven (Ubuntu / MacOS) if: matrix.os != 'windows-latest' - run: ./mvnw --batch-mode -Pjacoco install + run: | + ./mvnw install:install-file -Dfile="$KNITRODIR/examples/Java/lib/bridj-0.7.0.jar" -DgroupId=com.artelys -DartifactId=bridj -Dversion=0.7.0 -Dpackaging=jar -DgeneratePom=true + ./mvnw install:install-file -Dfile="$KNITRODIR/examples/Java/lib/Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true + ./mvnw --batch-mode -Pjacoco install + env: + ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }} - name: Build with Maven (Windows) if: matrix.os == 'windows-latest' - run: mvnw.cmd --batch-mode install + run: | + call mvnw.cmd install:install-file -Dfile="%KNITRODIR%\examples\Java\lib\bridj-0.7.0.jar" -DgroupId=com.artelys -DartifactId=bridj -Dversion=0.7.0 -Dpackaging=jar -DgeneratePom=true + call mvnw.cmd install:install-file -Dfile="%KNITRODIR%\examples\Java\lib\Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true + mvnw.cmd --batch-mode install shell: cmd + env: + ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }} # TODO # - name: Run SonarCloud analysis diff --git a/pom.xml b/pom.xml index 7959f12..e7cd105 100644 --- a/pom.xml +++ b/pom.xml @@ -96,16 +96,12 @@ com.artelys knitro-interfaces - 14.0.0 - system - ${project.basedir}/../libs/Knitro-Interfaces-2.5-KN_14.1.0.jar + 14.1.0 com.artelys bridj 0.7.0 - system - ${project.basedir}/../libs/bridj-0.7.0.jar diff --git a/src/test/java/com/powsybl/openloadflow/knitro/solver/AcLoadFlowPhaseShifterTest.java b/src/test/java/com/powsybl/openloadflow/knitro/solver/AcLoadFlowPhaseShifterTest.java index e35a2b6..adca6fc 100644 --- a/src/test/java/com/powsybl/openloadflow/knitro/solver/AcLoadFlowPhaseShifterTest.java +++ b/src/test/java/com/powsybl/openloadflow/knitro/solver/AcLoadFlowPhaseShifterTest.java @@ -558,10 +558,10 @@ void incrementalPhaseShifterSensiTest() { double di2t10 = i2t1 - i2t0; double di1t12 = i1t1 - i1t2; double di2t12 = i2t1 - i2t2; - assertEquals(35.18805497279091, di1t10, 0d); - assertEquals(35.18805497279091, di2t10, 0d); - assertEquals(-45.75648113263733, di1t12, 0d); - assertEquals(-45.75648113263733, di2t12, 0d); + assertEquals(35.18805497279091, di1t10, 1e-6); + assertEquals(35.18805497279091, di2t10, 1e-6); + assertEquals(-45.75648113263733, di1t12, 1e-6); + assertEquals(-45.75648113263733, di2t12, 1e-6); // compare with sensi on tap 1 t2wt.getPhaseTapChanger().setTapPosition(1); @@ -592,13 +592,13 @@ void incrementalPhaseShifterSensiTest() { double sensi1 = sensitivityContext.calculateSensitivityFromA2I(ps1, ps1, TwoSides.ONE); double di1t10p = sensi1 * da10 * ib; double di1t12p = sensi1 * da12 * ib; - assertEquals(43.007011829925496, di1t10p, 0d); - assertEquals(-43.007011829925496, di1t12p, 0d); + assertEquals(43.007011829925496, di1t10p, 1e-6); + assertEquals(-43.007011829925496, di1t12p, 1e-6); double sensi2 = sensitivityContext.calculateSensitivityFromA2I(ps1, ps1, TwoSides.TWO); double di2t10p = sensi2 * da10 * ib; double di2t12p = sensi2 * da12 * ib; - assertEquals(43.007011829925496, di2t10p, 0d); - assertEquals(-43.007011829925496, di2t12p, 0d); + assertEquals(43.007011829925496, di2t10p, 1e-6); + assertEquals(-43.007011829925496, di2t12p, 1e-6); } }