Flexgrid for pce and network model
[transportpce.git] / common / src / test / java / org / opendaylight / transportpce / common / fixedflex / GridUtilsTest.java
index 8e485bb192b3a4ef87a212d8c7e7dca455e5f790..3e7ed5835d8d8e3636a799d4f3947b031ae6103d 100644 (file)
@@ -15,6 +15,10 @@ import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Map;
 import org.junit.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.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;
 
@@ -22,7 +26,7 @@ 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 +37,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 +56,43 @@ 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(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)));
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void getIndexFromFrequencyExceptionTest() {
+        GridUtils.getIndexFromFrequency(BigDecimal.valueOf(196.13125));
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void getIndexFromFrequencyException2Test() {
+        GridUtils.getIndexFromFrequency(BigDecimal.valueOf(191.31875));
+    }
+
+    @Test
+    public void getWidthFromRateAndModulationFormatTest() {
+        assertEquals("Width should be 80", FrequencyGHz.getDefaultInstance("80"),
+                GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_400,
+                        ModulationFormat.DpQam16));
+    }
+
+    @Test
+    public void getWidthFromRateAndModulationFormatNotFoundTest() {
+        assertEquals("As not found width should be 40", FrequencyGHz.getDefaultInstance("40"),
+                GridUtils.getWidthFromRateAndModulationFormat(ServiceRateConstant.RATE_100,
+                        ModulationFormat.DpQam16));
+    }
+
+    @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)));
+    }
 }