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=9ce4b3fac560782504610de75cd1851125286ba7;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=8e485bb192b3a4ef87a212d8c7e7dca455e5f790;hpb=29407f5d8ece76f7e4f3c47b05362d7ae7855e90;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 8e485bb19..9ce4b3fac 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 @@ -15,14 +15,22 @@ import java.math.BigDecimal; import java.util.Arrays; import java.util.Map; import org.junit.Test; -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.transportpce.common.ServiceRateConstant; +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.rev211210.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev211210.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.rev211210.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.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(119)); + assertEquals("Wavelength index should be 15", 15, GridUtils.getWaveLengthIndexFromSpectrumAssigment(647)); } @Test @@ -33,12 +41,12 @@ public class GridUtilsTest { expectedFrequencies[i] = frequency; frequency = frequency.add(BigDecimal.valueOf(0.00625)); } - assertEquals("Frequency should be 191.325", expectedFrequencies[0], - GridUtils.getFrequencyFromIndex(0)); - assertEquals("Frequency should be 193.1", expectedFrequencies[284].setScale(1), - GridUtils.getFrequencyFromIndex(284)); - assertEquals("Frequency should be 196.11875", expectedFrequencies[767], - GridUtils.getFrequencyFromIndex(767)); + 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))); } @Test @@ -52,4 +60,143 @@ public class GridUtilsTest { assertTrue("Should have available freq map", Arrays.equals(byteArray, availFreqMaps.get(key).getFreqMap())); } + @Test + public void getIndexFromFrequencyTest() { + assertEquals("Index should be 693", 693, GridUtils.getIndexFromFrequency(Decimal64.valueOf("195.65625"))); + assertEquals("Index should be 0", 0, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.325"))); + assertEquals("Index should be 767", 767, GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.11875"))); + assertEquals("Index should be 8", 8, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.375"))); + assertEquals("Index should be 15", 15, GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.41875"))); + assertEquals("Index should be 768", 768, GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.125"))); + } + + @Test(expected = IllegalArgumentException.class) + public void getIndexFromFrequencyExceptionTest() { + GridUtils.getIndexFromFrequency(Decimal64.valueOf("196.13125")); + } + + @Test(expected = IllegalArgumentException.class) + public void getIndexFromFrequencyException2Test() { + GridUtils.getIndexFromFrequency(Decimal64.valueOf("191.31875")); + } + + @Test + public void getWidthFromRateAndModulationFormatTest() { + assertEquals("Width should be 75", new FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_75)), + GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_400, + ModulationFormat.DpQam16)); + } + + @Test + public void getWidthFromRateAndModulationFormatNotFoundTest() { + assertEquals("As not found width should be 40", new FrequencyGHz(Decimal64.valueOf(GridConstant.WIDTH_40)), + GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_100, + ModulationFormat.DpQam16)); + } + + @Test + public void getCentralFrequencyTest() { + assertEquals("Central frequency should be 191.350", + new FrequencyTHz(Decimal64.valueOf(BigDecimal.valueOf(191.35).setScale(3))), + GridUtils.getCentralFrequency(BigDecimal.valueOf(191.325), BigDecimal.valueOf(191.375))); + } + + @Test + public void getCentralFrequencyWithPrecisionTest() { + assertEquals("Central frequency should be 191.3500", + 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)); + } + + @Test + public void getCentralFrequencyWithPrecisionAndRoundTest() { + assertEquals("Central frequency should be 191.3499", + 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)); + } + + @Test + public 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("Width should be 40", BigDecimal.valueOf(40), spectrumInformation.getWidth()); + assertEquals("Wavelength should be 1", Uint32.valueOf(1), spectrumInformation.getWaveLength()); + assertEquals("Center freq should be 196.1", BigDecimal.valueOf(196.1).setScale(4), + spectrumInformation.getCenterFrequency()); + assertEquals("Lower slot number should be 761", 761, spectrumInformation.getLowerSpectralSlotNumber()); + assertEquals("Higher slot number should be 768", 768, spectrumInformation.getHigherSpectralSlotNumber()); + assertEquals("Min freq should be 196.075", BigDecimal.valueOf(196.075).setScale(4), + spectrumInformation.getMinFrequency()); + assertEquals("Max freq should be 196.125", BigDecimal.valueOf(196.125).setScale(4), + spectrumInformation.getMaxFrequency()); + } + + @Test + public 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("Width should be 40", BigDecimal.valueOf(40), spectrumInformation.getWidth()); + assertEquals("Wavelength should be 1", Uint32.valueOf(1), spectrumInformation.getWaveLength()); + assertEquals("Center freq should be 196.1", BigDecimal.valueOf(196.1).setScale(4), + spectrumInformation.getCenterFrequency()); + assertEquals("Lower slot number should be 761", 761, spectrumInformation.getLowerSpectralSlotNumber()); + assertEquals("Higher slot number should be 768", 768, spectrumInformation.getHigherSpectralSlotNumber()); + assertEquals("Min freq should be 196.075", BigDecimal.valueOf(196.075).setScale(4), + spectrumInformation.getMinFrequency()); + assertEquals("Max freq should be 196.125", BigDecimal.valueOf(196.125).setScale(4), + spectrumInformation.getMaxFrequency()); + } + + @Test + public 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("Width should be 40", BigDecimal.valueOf(40), spectrumInformation.getWidth()); + assertEquals("Wavelength should be 1", Uint32.valueOf(1), spectrumInformation.getWaveLength()); + assertEquals("Center freq should be 196.1", BigDecimal.valueOf(196.1).setScale(4), + spectrumInformation.getCenterFrequency()); + assertEquals("Lower slot number should be 761", 761, spectrumInformation.getLowerSpectralSlotNumber()); + assertEquals("Higher slot number should be 768", 768, spectrumInformation.getHigherSpectralSlotNumber()); + assertEquals("Min freq should be 196.075", BigDecimal.valueOf(196.075).setScale(4), + spectrumInformation.getMinFrequency()); + assertEquals("Max freq should be 196.125", BigDecimal.valueOf(196.125).setScale(4), + spectrumInformation.getMaxFrequency()); + } + + @Test(expected = IllegalArgumentException.class) + public void initSpectrumInformationFromServicePathInputNoSlotTest() { + GridUtils.initSpectrumInformationFromServicePathInput(new ServicePathInputBuilder().build()); + } }