X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Ffixedflex%2FGridUtilsTest.java;h=d6526e3ef739bde9c50fdd1b685dd2c403481da0;hb=HEAD;hp=3e7ed5835d8d8e3636a799d4f3947b031ae6103d;hpb=7e175bf72bc28db4299b1fd76e6d01bdb0854d0f;p=transportpce.git diff --git a/common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java b/common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java index 3e7ed5835..d6526e3ef 100644 --- a/common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java +++ b/common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java @@ -8,91 +8,210 @@ package org.opendaylight.transportpce.common.fixedflex; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.math.BigDecimal; import java.util.Arrays; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.transportpce.common.ServiceRateConstant; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.ServicePathInput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.ServicePathInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev230526.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev230526.FrequencyTHz; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.ModulationFormat; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yangtools.yang.common.Decimal64; +import org.opendaylight.yangtools.yang.common.Uint32; public class GridUtilsTest { @Test - public void getWaveLengthIndexFromSpectrumAssigmentTest() { - assertEquals("Wavelength index should be 15", 15, GridUtils.getWaveLengthIndexFromSpectrumAssigment(647)); + void getWaveLengthIndexFromSpectrumAssigmentTest() { + assertEquals(15, GridUtils.getWaveLengthIndexFromSpectrumAssigment(647), "Wavelength index should be 15"); } @Test - public void getFrequencyFromIndexTest() { + void getFrequencyFromIndexTest() { BigDecimal[] expectedFrequencies = new BigDecimal[768]; BigDecimal frequency = BigDecimal.valueOf(191.325); for (int i = 0; i < expectedFrequencies.length; i++) { expectedFrequencies[i] = frequency; frequency = frequency.add(BigDecimal.valueOf(0.00625)); } - assertEquals("Frequency should be 191.325", 0, expectedFrequencies[0] - .compareTo(GridUtils.getStartFrequencyFromIndex(0))); - assertEquals("Frequency should be 193.1", 0, expectedFrequencies[284] - .compareTo(GridUtils.getStartFrequencyFromIndex(284))); - assertEquals("Frequency should be 196.1188", 0, expectedFrequencies[767] - .compareTo(GridUtils.getStartFrequencyFromIndex(767))); + assertEquals(0, expectedFrequencies[0].compareTo(GridUtils.getStartFrequencyFromIndex(0)), + "Frequency should be 191.325"); + assertEquals(0, expectedFrequencies[284].compareTo(GridUtils.getStartFrequencyFromIndex(284)), + "Frequency should be 193.1"); + assertEquals(0, expectedFrequencies[767].compareTo(GridUtils.getStartFrequencyFromIndex(767)), + "Frequency should be 196.1188"); } @Test - public void initFreqMaps4FixedGrid2AvailableTest() { + void initFreqMaps4FixedGrid2AvailableTest() { AvailFreqMapsKey key = new AvailFreqMapsKey(GridConstant.C_BAND); byte[] byteArray = new byte[GridConstant.NB_OCTECTS]; Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); Map availFreqMaps = GridUtils.initFreqMaps4FixedGrid2Available(); - assertEquals("Should contains 1 element", 1, availFreqMaps.size()); - assertTrue("should contains cband key", availFreqMaps.containsKey(key)); - assertTrue("Should have available freq map", Arrays.equals(byteArray, availFreqMaps.get(key).getFreqMap())); + assertEquals(1, availFreqMaps.size(), "Should contains 1 element"); + assertTrue(availFreqMaps.containsKey(key), "should contains cband key"); + assertTrue(Arrays.equals(byteArray, availFreqMaps.get(key).getFreqMap()), "Should have available freq map"); + } + + @Test + void getIndexFromFrequencyTest() { + assertEquals(693, GridUtils.getIndexFromFrequency(Decimal64.valueOf("195.65625")), "Index should be 693"); + assertEquals(0, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.325")), "Index should be 0"); + assertEquals(767, GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.11875")), "Index should be 767"); + assertEquals(8, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.375")), "Index should be 8"); + assertEquals(15, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.41875")), "Index should be 15"); + assertEquals(768, GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.125")), "Index should be 768"); } @Test - public void getIndexFromFrequencyTest() { - assertEquals("Index should be 693", 693, GridUtils.getIndexFromFrequency(BigDecimal.valueOf(195.65625))); - assertEquals("Index should be 0", 0, GridUtils.getIndexFromFrequency(BigDecimal.valueOf(191.325))); - assertEquals("Index should be 767", 767, GridUtils.getIndexFromFrequency(BigDecimal.valueOf(196.11875))); - assertEquals("Index should be 8", 8, GridUtils.getIndexFromFrequency(BigDecimal.valueOf(191.375))); - assertEquals("Index should be 15", 15, GridUtils.getIndexFromFrequency(BigDecimal.valueOf(191.41875))); + void getIndexFromFrequencyExceptionTest() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.13125")); + }); + assertEquals("Frequency not in range 196.13125", exception.getMessage()); } - @Test(expected = IllegalArgumentException.class) - public void getIndexFromFrequencyExceptionTest() { - GridUtils.getIndexFromFrequency(BigDecimal.valueOf(196.13125)); + @Test + void getIndexFromFrequencyException2Test() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.31875")); + }); + assertEquals("Frequency not in range 191.31875", exception.getMessage()); + } + + @Test + void getWidthFromRateAndModulationFormatTest() { + assertEquals( + new FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_75)), + GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_400, ModulationFormat.DpQam16), + "Width should be 75"); + } + + @Test + void getWidthFromRateAndModulationFormatNotFoundTest() { + assertEquals( + new FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_40)), + GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_100, ModulationFormat.DpQam16), + "As not found width should be 40"); } - @Test(expected = IllegalArgumentException.class) - public void getIndexFromFrequencyException2Test() { - GridUtils.getIndexFromFrequency(BigDecimal.valueOf(191.31875)); + @Test + void getCentralFrequencyTest() { + assertEquals( + new FrequencyTHz(Decimal64.valueOf(BigDecimal.valueOf(191.35).setScale(3))), + GridUtils.getCentralFrequency(BigDecimal.valueOf(191.325), BigDecimal.valueOf(191.375)), + "Central frequency should be 191.350"); + } + + @Test + void getCentralFrequencyWithPrecisionTest() { + assertEquals( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.FrequencyTHz( + Decimal64.valueOf(BigDecimal.valueOf(191.35).setScale(4))), + GridUtils.getCentralFrequencyWithPrecision(BigDecimal.valueOf(191.325), BigDecimal.valueOf(191.375), 4), + "Central frequency should be 191.3500"); + } + + @Test + void getCentralFrequencyWithPrecisionAndRoundTest() { + assertEquals( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.FrequencyTHz( + Decimal64.valueOf("191.3499")), + GridUtils.getCentralFrequencyWithPrecision( + BigDecimal.valueOf(191.3244445), BigDecimal.valueOf(191.3754457788), 4), + "Central frequency should be 191.3499"); + } + + @Test + void initSpectrumInformationFromServicePathInputTest() { + ServicePathInput input = new ServicePathInputBuilder() + .setWaveNumber(Uint32.valueOf(1)) + .setCenterFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyTHz(Decimal64.valueOf("196.1"))) + .setHigherSpectralSlotNumber(Uint32.valueOf(768)) + .setLowerSpectralSlotNumber(Uint32.valueOf(761)) + .setMaxFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyTHz(Decimal64.valueOf("196.125"))) + .setMinFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyTHz(Decimal64.valueOf("196.075"))) + .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_40))) + .build(); + SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input); + assertEquals(BigDecimal.valueOf(40), spectrumInformation.getWidth(), "Width should be 40"); + assertEquals(Uint32.valueOf(1), spectrumInformation.getWaveLength(), "Wavelength should be 1"); + assertEquals(BigDecimal.valueOf(196.1).setScale(4), spectrumInformation.getCenterFrequency(), + "Center freq should be 196.1"); + assertEquals(761, spectrumInformation.getLowerSpectralSlotNumber(), "Lower slot number should be 761"); + assertEquals(768, spectrumInformation.getHigherSpectralSlotNumber(), "Higher slot number should be 768"); + assertEquals(BigDecimal.valueOf(196.075).setScale(4), spectrumInformation.getMinFrequency(), + "Min freq should be 196.075"); + assertEquals(BigDecimal.valueOf(196.125).setScale(4), spectrumInformation.getMaxFrequency(), + "Max freq should be 196.125"); } @Test - public void getWidthFromRateAndModulationFormatTest() { - assertEquals("Width should be 80", FrequencyGHz.getDefaultInstance("80"), - GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_400, - ModulationFormat.DpQam16)); + void initSpectrumInformationFromServicePathInputNoCenterFreqTest() { + ServicePathInput input = new ServicePathInputBuilder() + .setWaveNumber(Uint32.valueOf(1)) + .setHigherSpectralSlotNumber(Uint32.valueOf(768)) + .setLowerSpectralSlotNumber(Uint32.valueOf(761)) + .setMaxFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyTHz(Decimal64.valueOf("196.125"))) + .setMinFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyTHz(Decimal64.valueOf("196.075"))) + .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_40))) + .build(); + SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input); + assertEquals(BigDecimal.valueOf(40), spectrumInformation.getWidth(), "Width should be 40"); + assertEquals(Uint32.valueOf(1), spectrumInformation.getWaveLength(), "Wavelength should be 1"); + assertEquals(BigDecimal.valueOf(196.1).setScale(4), spectrumInformation.getCenterFrequency(), + "Center freq should be 196.1"); + assertEquals(761, spectrumInformation.getLowerSpectralSlotNumber(), "Lower slot number should be 761"); + assertEquals(768, spectrumInformation.getHigherSpectralSlotNumber(), "Higher slot number should be 768"); + assertEquals(BigDecimal.valueOf(196.075).setScale(4), spectrumInformation.getMinFrequency(), + "Min freq should be 196.075"); + assertEquals(BigDecimal.valueOf(196.125).setScale(4), spectrumInformation.getMaxFrequency(), + "Max freq should be 196.125"); } @Test - public void getWidthFromRateAndModulationFormatNotFoundTest() { - assertEquals("As not found width should be 40", FrequencyGHz.getDefaultInstance("40"), - GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_100, - ModulationFormat.DpQam16)); + void initSpectrumInformationFromServicePathInputNoFreqTest() { + ServicePathInput input = new ServicePathInputBuilder() + .setWaveNumber(Uint32.valueOf(1)) + .setHigherSpectralSlotNumber(Uint32.valueOf(768)) + .setLowerSpectralSlotNumber(Uint32.valueOf(761)) + .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019 + .FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_40))) + .build(); + SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input); + assertEquals(BigDecimal.valueOf(40), spectrumInformation.getWidth(), "Width should be 40"); + assertEquals(Uint32.valueOf(1), spectrumInformation.getWaveLength(), "Wavelength should be 1"); + assertEquals(BigDecimal.valueOf(196.1).setScale(4), spectrumInformation.getCenterFrequency(), + "Center freq should be 196.1"); + assertEquals(761, spectrumInformation.getLowerSpectralSlotNumber(), "Lower slot number should be 761"); + assertEquals(768, spectrumInformation.getHigherSpectralSlotNumber(), "Higher slot number should be 768"); + assertEquals(BigDecimal.valueOf(196.075).setScale(4), spectrumInformation.getMinFrequency(), + "Min freq should be 196.075"); + assertEquals(BigDecimal.valueOf(196.125).setScale(4), spectrumInformation.getMaxFrequency(), + "Max freq should be 196.125"); } @Test - public void getCentralFrequencyTest() { - assertEquals("Central frequency should be 191.350", - new FrequencyTHz(BigDecimal.valueOf(191.35).setScale(3)), - GridUtils.getCentralFrequency(BigDecimal.valueOf(191.325), BigDecimal.valueOf(191.375))); + void initSpectrumInformationFromServicePathInputNoSlotTest() { + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + GridUtils.initSpectrumInformationFromServicePathInput(new ServicePathInputBuilder().build()); + }); + assertEquals("low and higher spectral slot numbers cannot be null", exception.getMessage()); } }