blob: e55fefad280dae4a47439198b8aa5e4a0f87a688 [file] [log] [blame]
Sho SHIMIZUea560282015-04-27 11:29:56 -07001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2015-present Open Networking Laboratory
Sho SHIMIZUea560282015-04-27 11:29:56 -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.onlab.util;
17
18import com.google.common.testing.EqualsTester;
19import org.junit.Test;
20import org.onlab.junit.ImmutableClassChecker;
21
22import static org.hamcrest.MatcherAssert.assertThat;
Sho SHIMIZU2908d9e2015-05-08 16:40:06 -070023import static org.hamcrest.Matchers.greaterThan;
Sho SHIMIZUea560282015-04-27 11:29:56 -070024import static org.hamcrest.Matchers.is;
Sho SHIMIZU2908d9e2015-05-08 16:40:06 -070025import static org.hamcrest.Matchers.lessThan;
Sho SHIMIZUea560282015-04-27 11:29:56 -070026
27public class FrequencyTest {
28
29 private final Frequency frequency1 = Frequency.ofMHz(1000);
30 private final Frequency sameFrequency1 = Frequency.ofMHz(1000);
31 private final Frequency frequency2 = Frequency.ofGHz(1000);
32 private final Frequency sameFrequency2 = Frequency.ofGHz(1000);
33 private final Frequency moreSameFrequency2 = Frequency.ofTHz(1);
34 private final Frequency frequency3 = Frequency.ofTHz(193.1);
35 private final Frequency sameFrequency3 = Frequency.ofGHz(193100);
36
37 /**
38 * Tests immutability of Frequency.
39 */
40 @Test
41 public void testImmutability() {
42 ImmutableClassChecker.assertThatClassIsImmutable(Frequency.class);
43 }
44
45 /**
46 * Tests equality of Frequency instances.
47 */
48 @Test
49 public void testEquality() {
50 new EqualsTester()
51 .addEqualityGroup(frequency1, sameFrequency1)
52 .addEqualityGroup(frequency2, sameFrequency2, moreSameFrequency2)
53 .addEqualityGroup(frequency3, sameFrequency3)
54 .testEquals();
55 }
56
57 /**
Sho SHIMIZU2908d9e2015-05-08 16:40:06 -070058 * Tests the first object is less than the second object.
59 */
60 @Test
61 public void testLessThan() {
62 assertThat(frequency1, is(lessThan(frequency2)));
63 assertThat(frequency1.isLessThan(frequency2), is(true));
64 }
65
66 @Test
67 public void testGreaterThan() {
68 assertThat(frequency2, is(greaterThan(frequency1)));
69 assertThat(frequency2.isGreaterThan(frequency1), is(true));
70 }
71
72 /**
Sho SHIMIZUea560282015-04-27 11:29:56 -070073 * Tests add operation of two Frequencies.
74 */
75 @Test
76 public void testAdd() {
77 Frequency low = Frequency.ofMHz(100);
78 Frequency high = Frequency.ofGHz(1);
79 Frequency expected = Frequency.ofMHz(1100);
80
81 assertThat(low.add(high), is(expected));
82 }
83
84 /**
85 * Tests subtract operation of two Frequencies.
86 */
87 @Test
88 public void testSubtract() {
89 Frequency high = Frequency.ofGHz(1);
90 Frequency low = Frequency.ofMHz(100);
91 Frequency expected = Frequency.ofMHz(900);
92
93 assertThat(high.subtract(low), is(expected));
94 }
95
96 /**
97 * Tests multiply operation of Frequency.
98 */
99 @Test
100 public void testMultiply() {
101 Frequency frequency = Frequency.ofMHz(1000);
102 long factor = 5;
103 Frequency expected = Frequency.ofGHz(5);
104
105 assertThat(frequency.multiply(5), is(expected));
106 }
Karthik Vegesna976efe32017-06-26 15:39:27 -0700107 /**
108 * Tests floorDivision operation of Frequency.
109 */
110 @Test
111 public void testfloorDivision() {
112 Frequency frequency = Frequency.ofGHz(1);
113 long factor = 5;
114 Frequency expected = Frequency.ofMHz(200);
115
116 assertThat(frequency.floorDivision(factor), is(expected));
117 }
118 /**
119 * Tests asHz operation of Frequency.
120 */
121 @Test
122 public void testasHz() {
123 Frequency frequency = Frequency.ofKHz(1);
124
125 assertThat(frequency.asHz(), is(1000L));
126 }
127 /**
128 * Tests asKHz operation of Frequency.
129 */
130 @Test
131 public void testasKHz() {
132 Frequency frequency = Frequency.ofMHz(1);
133
134 assertThat(frequency.asKHz(), is(1000.0));
135 }
136 /**
137 * Tests asMHz operation of Frequency.
138 */
139 @Test
140 public void testasMHz() {
141 Frequency frequency = Frequency.ofGHz(1);
142
143 assertThat(frequency.asMHz(), is(1000.0));
144 }
145 /**
146 * Tests asGHz operation of Frequency.
147 */
148 @Test
149 public void testasGHz() {
150 Frequency frequency = Frequency.ofTHz(1);
151
152 assertThat(frequency.asGHz(), is(1000.0));
153 }
154 /**
155 * Tests asThz operation of Frequency.
156 */
157 @Test
158 public void testasTHz() {
159 Frequency frequency = Frequency.ofHz(1_000_000_000_000L);
160
161 assertThat(frequency.asTHz(), is(1.0));
162 }
163
164 /**
165 * Tests the ofKHz (with a double parameter) operation of Frequency.
166 */
167 @Test
168 public void testofKHz() {
169 Frequency frequency = Frequency.ofKHz(1.0);
170 assertThat(frequency.asHz(), is(1000L));
171 }
172 /**
173 * Tests the ofMHz (with a double parameter) operation of Frequency.
174 */
175 @Test
176 public void testofMHz() {
177 Frequency frequency = Frequency.ofMHz(1.0);
178 assertThat(frequency.asKHz(), is(1000.0));
179 }
180 /**
181 * Tests the ofGHz (with a double parameter) operation of Frequency.
182 */
183 @Test
184 public void testofGHz() {
185 Frequency frequency = Frequency.ofGHz(1.0);
186 assertThat(frequency.asMHz(), is(1000.0));
187 }
188 /**
189 * Tests the ofTHz (with a double parameter) operation of Frequency.
190 */
191 @Test
192 public void testofTHz() {
193 Frequency frequency = Frequency.ofTHz(1.0);
194 assertThat(frequency.asGHz(), is(1000.0));
195 }
196
197
198
Sho SHIMIZUea560282015-04-27 11:29:56 -0700199}
Karthik Vegesna976efe32017-06-26 15:39:27 -0700200