blob: 5a756e28847b10d24c2157e86bfd047da0f0244e [file] [log] [blame]
Sho SHIMIZUeb350262015-04-30 19:17:28 -07001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2015-present Open Networking Laboratory
Sho SHIMIZUeb350262015-04-30 19:17:28 -07003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.net;
17
HIGUCHI Yutaca8cb4e2015-12-11 13:57:05 -080018import com.google.common.collect.ImmutableList;
19import com.google.common.collect.Lists;
Sho SHIMIZUeb350262015-04-30 19:17:28 -070020import com.google.common.testing.EqualsTester;
HIGUCHI Yutaca8cb4e2015-12-11 13:57:05 -080021
22import static org.junit.Assert.*;
23import static org.onosproject.net.ChannelSpacing.CHL_25GHZ;
24import static org.onosproject.net.ChannelSpacing.CHL_50GHZ;
25import static org.onosproject.net.DefaultOchSignalComparator.newOchSignalTreeSet;
26import static org.onosproject.net.OchSignal.newDwdmSlot;
27import static org.onosproject.net.OchSignal.newFlexGridSlot;
28
29import java.util.SortedSet;
Sho SHIMIZUeb350262015-04-30 19:17:28 -070030import org.junit.Test;
31
Sho SHIMIZUeb350262015-04-30 19:17:28 -070032/**
33 * Test for OchSignal.
34 */
35public class OchSignalTest {
36
Sho SHIMIZUeb350262015-04-30 19:17:28 -070037 @Test
38 public void testEquality() {
HIGUCHI Yutaca8cb4e2015-12-11 13:57:05 -080039 OchSignal och1 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 1);
40 OchSignal sameOch1 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 1);
41 OchSignal och2 = new OchSignal(GridType.CWDM, ChannelSpacing.CHL_100GHZ, 4, 8);
42 OchSignal sameOch2 = new OchSignal(GridType.CWDM, ChannelSpacing.CHL_100GHZ, 4, 8);
43 OchSignal och3 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 3);
44 OchSignal sameOch3 = newDwdmSlot(ChannelSpacing.CHL_100GHZ, 3);
45 OchSignal och4 = newFlexGridSlot(3);
46 OchSignal sameOch4 = newFlexGridSlot(3);
47
Sho SHIMIZUeb350262015-04-30 19:17:28 -070048 new EqualsTester()
49 .addEqualityGroup(och1, sameOch1)
50 .addEqualityGroup(och2, sameOch2)
HIGUCHI Yutaca8cb4e2015-12-11 13:57:05 -080051 .addEqualityGroup(och3, sameOch3)
52 .addEqualityGroup(och4, sameOch4)
Sho SHIMIZUeb350262015-04-30 19:17:28 -070053 .testEquals();
54 }
HIGUCHI Yutaca8cb4e2015-12-11 13:57:05 -080055
56 @Test
57 public void testToFlexgrid50() {
58 OchSignal input = newDwdmSlot(CHL_50GHZ, 0);
59 SortedSet<OchSignal> expected = newOchSignalTreeSet();
60 expected.addAll(ImmutableList.of(
61 newFlexGridSlot(-3), newFlexGridSlot(-1),
62 newFlexGridSlot(+1), newFlexGridSlot(+3)));
63
64 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
65
66 assertEquals(expected, flexGrid);
67 }
68
69 @Test
70 public void testToFlexgrid50Plus1() {
71 OchSignal input = newDwdmSlot(CHL_50GHZ, 1);
72 SortedSet<OchSignal> expected = newOchSignalTreeSet();
73 // Note: 8 = 50Ghz / 6.25Ghz
74 expected.addAll(ImmutableList.of(
75 newFlexGridSlot(8 - 3), newFlexGridSlot(8 - 1),
76 newFlexGridSlot(8 + 1), newFlexGridSlot(8 + 3)));
77
78 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
79
80 assertEquals(expected, flexGrid);
81 }
82
83 @Test
84 public void testToFlexgrid50minus1() {
85 OchSignal input = newDwdmSlot(CHL_50GHZ, -1);
86 SortedSet<OchSignal> expected = newOchSignalTreeSet();
87 // Note: 8 = 50Ghz / 6.25Ghz
88 expected.addAll(ImmutableList.of(
89 newFlexGridSlot(-8 - 3), newFlexGridSlot(-8 - 1),
90 newFlexGridSlot(-8 + 1), newFlexGridSlot(-8 + 3)));
91
92 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
93
94 assertEquals(expected, flexGrid);
95 }
96
97 @Test
98 public void testToFlexgrid25() {
99 OchSignal input = newDwdmSlot(CHL_25GHZ, 0);
100 SortedSet<OchSignal> expected = newOchSignalTreeSet();
101 expected.addAll(ImmutableList.of(
102 newFlexGridSlot(-1),
103 newFlexGridSlot(+1)));
104
105 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
106
107 assertEquals(expected, flexGrid);
108 }
109
110 @Test
111 public void testToFlexgrid25Plus2() {
112 OchSignal input = newDwdmSlot(CHL_25GHZ, 2);
113 SortedSet<OchSignal> expected = newOchSignalTreeSet();
114 // Note: 8 = 25Ghz / 6.25Ghz * 2
115 expected.addAll(ImmutableList.of(
116 newFlexGridSlot(8 - 1),
117 newFlexGridSlot(8 + 1)));
118
119 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
120
121 assertEquals(expected, flexGrid);
122 }
123
124 @Test
125 public void testToFlexgrid25minus2() {
126 OchSignal input = newDwdmSlot(CHL_25GHZ, -2);
127 SortedSet<OchSignal> expected = newOchSignalTreeSet();
128 // Note: 8 = 50Ghz / 6.25Ghz * 2
129 expected.addAll(ImmutableList.of(
130 newFlexGridSlot(-8 - 1),
131 newFlexGridSlot(-8 + 1)));
132
133 SortedSet<OchSignal> flexGrid = OchSignal.toFlexGrid(input);
134
135 assertEquals(expected, flexGrid);
136 }
137
138 @Test
139 public void testToFixedgrid50() {
140 SortedSet<OchSignal> input = newOchSignalTreeSet();
141 input.addAll(ImmutableList.of(
142 newFlexGridSlot(-3), newFlexGridSlot(-1),
143 newFlexGridSlot(+1), newFlexGridSlot(+3)));
144
145 OchSignal expected = newDwdmSlot(CHL_50GHZ, 0);
146 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ));
147 }
148
149 @Test
150 public void testToFixedgrid50plus1() {
151 SortedSet<OchSignal> input = newOchSignalTreeSet();
152 // Note: 8 = 50Ghz / 6.25Ghz
153 input.addAll(ImmutableList.of(
154 newFlexGridSlot(8 - 3), newFlexGridSlot(8 - 1),
155 newFlexGridSlot(8 + 1), newFlexGridSlot(8 + 3)));
156
157 OchSignal expected = newDwdmSlot(CHL_50GHZ, 1);
158 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ));
159 }
160
161 @Test
162 public void testToFixedgrid50minus1() {
163 SortedSet<OchSignal> input = newOchSignalTreeSet();
164 // Note: 8 = 50Ghz / 6.25Ghz
165 input.addAll(ImmutableList.of(
166 newFlexGridSlot(-8 - 3), newFlexGridSlot(-8 - 1),
167 newFlexGridSlot(-8 + 1), newFlexGridSlot(-8 + 3)));
168
169 OchSignal expected = newDwdmSlot(CHL_50GHZ, -1);
170 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_50GHZ));
171 }
172
173 @Test
174 public void testToFixedgrid25() {
175 SortedSet<OchSignal> input = newOchSignalTreeSet();
176 input.addAll(ImmutableList.of(
177 newFlexGridSlot(-1),
178 newFlexGridSlot(+1)));
179
180 OchSignal expected = newDwdmSlot(CHL_25GHZ, 0);
181 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ));
182 }
183
184 @Test
185 public void testToFixedgrid25plus2() {
186 SortedSet<OchSignal> input = newOchSignalTreeSet();
187 // Note: 8 = 25Ghz / 6.25Ghz * 2
188 input.addAll(ImmutableList.of(
189 newFlexGridSlot(8 - 1),
190 newFlexGridSlot(8 + 1)));
191
192 OchSignal expected = newDwdmSlot(CHL_25GHZ, 2);
193 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ));
194 }
195
196 @Test
197 public void testToFixedgrid25minus2() {
198 SortedSet<OchSignal> input = newOchSignalTreeSet();
199 // Note: 8 = 25Ghz / 6.25Ghz * 2
200 input.addAll(ImmutableList.of(
201 newFlexGridSlot(-8 - 1),
202 newFlexGridSlot(-8 + 1)));
203
204 OchSignal expected = newDwdmSlot(CHL_25GHZ, -2);
205 assertEquals(expected, OchSignal.toFixedGrid(Lists.newArrayList(input), CHL_25GHZ));
206 }
207
Sho SHIMIZUeb350262015-04-30 19:17:28 -0700208}