/* * 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.onlab.util; import com.google.common.testing.EqualsTester; import org.junit.Test; import org.onlab.junit.ImmutableClassChecker; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.lessThan; public class FrequencyTest { private final Frequency frequency1 = Frequency.ofMHz(1000); private final Frequency sameFrequency1 = Frequency.ofMHz(1000); private final Frequency frequency2 = Frequency.ofGHz(1000); private final Frequency sameFrequency2 = Frequency.ofGHz(1000); private final Frequency moreSameFrequency2 = Frequency.ofTHz(1); private final Frequency frequency3 = Frequency.ofTHz(193.1); private final Frequency sameFrequency3 = Frequency.ofGHz(193100); /** * Tests immutability of Frequency. */ @Test public void testImmutability() { ImmutableClassChecker.assertThatClassIsImmutable(Frequency.class); } /** * Tests equality of Frequency instances. */ @Test public void testEquality() { new EqualsTester() .addEqualityGroup(frequency1, sameFrequency1) .addEqualityGroup(frequency2, sameFrequency2, moreSameFrequency2) .addEqualityGroup(frequency3, sameFrequency3) .testEquals(); } /** * Tests the first object is less than the second object. */ @Test public void testLessThan() { assertThat(frequency1, is(lessThan(frequency2))); assertThat(frequency1.isLessThan(frequency2), is(true)); } @Test public void testGreaterThan() { assertThat(frequency2, is(greaterThan(frequency1))); assertThat(frequency2.isGreaterThan(frequency1), is(true)); } /** * Tests add operation of two Frequencies. */ @Test public void testAdd() { Frequency low = Frequency.ofMHz(100); Frequency high = Frequency.ofGHz(1); Frequency expected = Frequency.ofMHz(1100); assertThat(low.add(high), is(expected)); } /** * Tests subtract operation of two Frequencies. */ @Test public void testSubtract() { Frequency high = Frequency.ofGHz(1); Frequency low = Frequency.ofMHz(100); Frequency expected = Frequency.ofMHz(900); assertThat(high.subtract(low), is(expected)); } /** * Tests multiply operation of Frequency. */ @Test public void testMultiply() { Frequency frequency = Frequency.ofMHz(1000); long factor = 5; Frequency expected = Frequency.ofGHz(5); assertThat(frequency.multiply(5), is(expected)); } }