/* * Copyright 2015-present Open Networking Laboratory * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onosproject.net; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.testing.EqualsTester; import static org.junit.Assert.*; import static org.onosproject.net.ChannelSpacing.CHL_25GHZ; import static org.onosproject.net.ChannelSpacing.CHL_50GHZ; import static org.onosproject.net.DefaultOchSignalComparator.newOchSignalTreeSet; import static org.onosproject.net.OchSignal.newDwdmSlot; import static org.onosproject.net.OchSignal.newFlexGridSlot; import java.util.SortedSet; import org.junit.Test; /** * Test for OchSignal. */ public class OchSignalTest { @Test public void testEquality() { OchSignal och1 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 1); OchSignal sameOch1 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 1); OchSignal och2 = new OchSignal(GridType.CWDM, ChannelSpacing.CHL_100GHZ, 4, 8); OchSignal sameOch2 = new OchSignal(GridType.CWDM, ChannelSpacing.CHL_100GHZ, 4, 8); OchSignal och3 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 3); OchSignal sameOch3 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 3); OchSignal och4 = newFlexGridSlot(3); OchSignal sameOch4 = newFlexGridSlot(3); new EqualsTester() .addEqualityGroup(och1, sameOch1) .addEqualityGroup(och2, sameOch2) .addEqualityGroup(och3, sameOch3) .addEqualityGroup(och4, sameOch4) .testEquals(); } @Test public void testToFlexgrid50() { OchSignal input = newDwdmSlot(CHL_50GHZ, 0); SortedSet<OchSignal> expected = newOchSignalTreeSet(); expected.addAll(ImmutableList.of( newFlexGridSlot(-3), newFlexGridSlot(-1), newFlexGridSlot(+1), newFlexGridSlot(+3))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFlexgrid50Plus1() { OchSignal input = newDwdmSlot(CHL_50GHZ, 1); SortedSet<OchSignal> expected = newOchSignalTreeSet(); // Note: 8 = 50Ghz / 6.25Ghz expected.addAll(ImmutableList.of( newFlexGridSlot(8 - 3), newFlexGridSlot(8 - 1), newFlexGridSlot(8 + 1), newFlexGridSlot(8 + 3))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFlexgrid50minus1() { OchSignal input = newDwdmSlot(CHL_50GHZ, -1); SortedSet<OchSignal> expected = newOchSignalTreeSet(); // Note: 8 = 50Ghz / 6.25Ghz expected.addAll(ImmutableList.of( newFlexGridSlot(-8 - 3), newFlexGridSlot(-8 - 1), newFlexGridSlot(-8 + 1), newFlexGridSlot(-8 + 3))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFlexgrid25() { OchSignal input = newDwdmSlot(CHL_25GHZ, 0); SortedSet<OchSignal> expected = newOchSignalTreeSet(); expected.addAll(ImmutableList.of( newFlexGridSlot(-1), newFlexGridSlot(+1))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFlexgrid25Plus2() { OchSignal input = newDwdmSlot(CHL_25GHZ, 2); SortedSet<OchSignal> expected = newOchSignalTreeSet(); // Note: 8 = 25Ghz / 6.25Ghz * 2 expected.addAll(ImmutableList.of( newFlexGridSlot(8 - 1), newFlexGridSlot(8 + 1))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFlexgrid25minus2() { OchSignal input = newDwdmSlot(CHL_25GHZ, -2); SortedSet<OchSignal> expected = newOchSignalTreeSet(); // Note: 8 = 50Ghz / 6.25Ghz * 2 expected.addAll(ImmutableList.of( newFlexGridSlot(-8 - 1), newFlexGridSlot(-8 + 1))); SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input); assertEquals(expected, flexGrid); } @Test public void testToFixedgrid50() { SortedSet<OchSignal> input = newOchSignalTreeSet(); input.addAll(ImmutableList.of( newFlexGridSlot(-3), newFlexGridSlot(-1), newFlexGridSlot(+1), newFlexGridSlot(+3))); OchSignal expected = newDwdmSlot(CHL_50GHZ, 0); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ)); } @Test public void testToFixedgrid50plus1() { SortedSet<OchSignal> input = newOchSignalTreeSet(); // Note: 8 = 50Ghz / 6.25Ghz input.addAll(ImmutableList.of( newFlexGridSlot(8 - 3), newFlexGridSlot(8 - 1), newFlexGridSlot(8 + 1), newFlexGridSlot(8 + 3))); OchSignal expected = newDwdmSlot(CHL_50GHZ, 1); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ)); } @Test public void testToFixedgrid50minus1() { SortedSet<OchSignal> input = newOchSignalTreeSet(); // Note: 8 = 50Ghz / 6.25Ghz input.addAll(ImmutableList.of( newFlexGridSlot(-8 - 3), newFlexGridSlot(-8 - 1), newFlexGridSlot(-8 + 1), newFlexGridSlot(-8 + 3))); OchSignal expected = newDwdmSlot(CHL_50GHZ, -1); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ)); } @Test public void testToFixedgrid25() { SortedSet<OchSignal> input = newOchSignalTreeSet(); input.addAll(ImmutableList.of( newFlexGridSlot(-1), newFlexGridSlot(+1))); OchSignal expected = newDwdmSlot(CHL_25GHZ, 0); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ)); } @Test public void testToFixedgrid25plus2() { SortedSet<OchSignal> input = newOchSignalTreeSet(); // Note: 8 = 25Ghz / 6.25Ghz * 2 input.addAll(ImmutableList.of( newFlexGridSlot(8 - 1), newFlexGridSlot(8 + 1))); OchSignal expected = newDwdmSlot(CHL_25GHZ, 2); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ)); } @Test public void testToFixedgrid25minus2() { SortedSet<OchSignal> input = newOchSignalTreeSet(); // Note: 8 = 25Ghz / 6.25Ghz * 2 input.addAll(ImmutableList.of( newFlexGridSlot(-8 - 1), newFlexGridSlot(-8 + 1))); OchSignal expected = newDwdmSlot(CHL_25GHZ, -2); assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ)); } }