NcCracUtilsTest.java
/*
* Copyright (c) 2023, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.powsybl.openrao.data.crac.io.nc.craccreator;
import com.powsybl.openrao.commons.OpenRaoException;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class NcCracUtilsTest {
@Test
void testDurationConversionNoYearNoMonth() {
assertEquals(90063, NcCracUtils.convertDurationToSeconds("P1DT1H1M3S"));
assertEquals(10920, NcCracUtils.convertDurationToSeconds("PT3H2M0S"));
assertEquals(315, NcCracUtils.convertDurationToSeconds("P0DT5M15S"));
assertEquals(172800, NcCracUtils.convertDurationToSeconds("P2DT0H0S"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0DT1H0M"));
assertEquals(62, NcCracUtils.convertDurationToSeconds("PT1M2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("PT0H2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0DT2S"));
assertEquals(240, NcCracUtils.convertDurationToSeconds("PT0H4M"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0DT1M"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0DT1H"));
assertEquals(5, NcCracUtils.convertDurationToSeconds("PT5S"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("PT1M"));
assertEquals(0, NcCracUtils.convertDurationToSeconds("PT0H"));
assertEquals(86400, NcCracUtils.convertDurationToSeconds("P1D"));
}
@Test
void testDurationConversionNoMonth() {
assertEquals(90063, NcCracUtils.convertDurationToSeconds("P0Y1DT1H1M3S"));
assertEquals(10920, NcCracUtils.convertDurationToSeconds("P0YT3H2M0S"));
assertEquals(315, NcCracUtils.convertDurationToSeconds("P0Y0DT5M15S"));
assertEquals(172800, NcCracUtils.convertDurationToSeconds("P0Y2DT0H0S"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0Y0DT1H0M"));
assertEquals(62, NcCracUtils.convertDurationToSeconds("P0YT1M2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0YT0H2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0Y0DT2S"));
assertEquals(240, NcCracUtils.convertDurationToSeconds("P0YT0H4M"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0Y0DT1M"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0Y0DT1H"));
assertEquals(5, NcCracUtils.convertDurationToSeconds("P0YT5S"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0YT1M"));
assertEquals(0, NcCracUtils.convertDurationToSeconds("P0YT0H"));
assertEquals(86400, NcCracUtils.convertDurationToSeconds("P0Y1D"));
}
@Test
void testDurationConversionNoYear() {
assertEquals(90063, NcCracUtils.convertDurationToSeconds("P0M1DT1H1M3S"));
assertEquals(10920, NcCracUtils.convertDurationToSeconds("P0MT3H2M0S"));
assertEquals(315, NcCracUtils.convertDurationToSeconds("P0M0DT5M15S"));
assertEquals(172800, NcCracUtils.convertDurationToSeconds("P0M2DT0H0S"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0M0DT1H0M"));
assertEquals(62, NcCracUtils.convertDurationToSeconds("P0MT1M2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0MT0H2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0M0DT2S"));
assertEquals(240, NcCracUtils.convertDurationToSeconds("P0MT0H4M"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0M0DT1M"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0M0DT1H"));
assertEquals(5, NcCracUtils.convertDurationToSeconds("P0MT5S"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0MT1M"));
assertEquals(0, NcCracUtils.convertDurationToSeconds("P0MT0H"));
assertEquals(86400, NcCracUtils.convertDurationToSeconds("P0M1D"));
}
@Test
void testDurationConversionWithYearAndMonth() {
assertEquals(90063, NcCracUtils.convertDurationToSeconds("P0Y0M1DT1H1M3S"));
assertEquals(10920, NcCracUtils.convertDurationToSeconds("P0Y0MT3H2M0S"));
assertEquals(315, NcCracUtils.convertDurationToSeconds("P0Y0M0DT5M15S"));
assertEquals(172800, NcCracUtils.convertDurationToSeconds("P0Y0M2DT0H0S"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0Y0M0DT1H0M"));
assertEquals(62, NcCracUtils.convertDurationToSeconds("P0Y0MT1M2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0Y0MT0H2S"));
assertEquals(2, NcCracUtils.convertDurationToSeconds("P0Y0M0DT2S"));
assertEquals(240, NcCracUtils.convertDurationToSeconds("P0Y0MT0H4M"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0Y0M0DT1M"));
assertEquals(3600, NcCracUtils.convertDurationToSeconds("P0Y0M0DT1H"));
assertEquals(5, NcCracUtils.convertDurationToSeconds("P0Y0MT5S"));
assertEquals(60, NcCracUtils.convertDurationToSeconds("P0Y0MT1M"));
assertEquals(0, NcCracUtils.convertDurationToSeconds("P0Y0MT0H"));
assertEquals(86400, NcCracUtils.convertDurationToSeconds("P0Y0M1D"));
}
@Test
void testInvalidDurationPattern() {
assertThrows(OpenRaoException.class, () -> NcCracUtils.convertDurationToSeconds("P1R"));
assertThrows(OpenRaoException.class, () -> NcCracUtils.convertDurationToSeconds("P2Y"));
assertThrows(OpenRaoException.class, () -> NcCracUtils.convertDurationToSeconds("P1YT3S"));
assertThrows(OpenRaoException.class, () -> NcCracUtils.convertDurationToSeconds("P5Y4M"));
assertThrows(OpenRaoException.class, () -> NcCracUtils.convertDurationToSeconds("P0Y5MT3S"));
}
@Test
void testEicFromUrl() {
assertEquals("10XES-REE------E", NcCracUtils.getEicFromUrl("http://energy.referencedata.eu/EIC/10XES-REE------E"));
assertEquals("10XPT-REN------9", NcCracUtils.getEicFromUrl("http://energy.referencedata.eu/EIC/10XPT-REN------9"));
assertEquals("10XFR-RTE------Q", NcCracUtils.getEicFromUrl("http://energy.referencedata.eu/EIC/10XFR-RTE------Q"));
assertNull(NcCracUtils.getEicFromUrl("Hello world!"));
}
}