/*
* Copyright (C) 2011 Google Inc.
*
* 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.ros.message;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
/**
* @author kwc@willowgarage.com (Ken Conley)
*/
public class DurationTest {
@Before
public void setUp() {
}
@Test
public void testConstructor() {
// Test no args constructor.
Duration t = new Duration();
assertEquals(0, t.nsecs);
assertEquals(0, t.secs);
// Test secs/nsecs constructor with no normalization.
t = new Duration(1, 2);
assertEquals(1, t.secs);
assertEquals(2, t.nsecs);
// Test secs/nsecs constructor with normalization.
t = new Duration(2, -1);
assertEquals(1, t.secs);
assertEquals(1000000000 - 1, t.nsecs);
t = new Duration(2, 1000000000 + 2);
assertEquals(3, t.secs);
assertEquals(2, t.nsecs);
}
@Test
public void testNormalize() {
Duration d = new Duration(0, 0);
d.secs = 1;
d.nsecs = 1000000000;
d.normalize();
assertEquals(2, d.secs);
assertEquals(0, d.nsecs);
d.secs = 1;
d.nsecs = -1;
d.normalize();
assertEquals(0, d.secs);
assertEquals(1000000000 - 1, d.nsecs);
}
@Test
public void testIsZero() {
assertTrue(new Duration(0, 0).isZero());
assertFalse(new Duration(1, 0).isZero());
assertFalse(new Duration(0, 1).isZero());
}
@Test
public void testComparable() {
assertEquals(0, new Duration(0, 0).compareTo(new Duration(0, 0)));
assertEquals(0, new Duration(1, 0).compareTo(new Duration(1, 0)));
assertTrue(new Duration(0, 0).compareTo(new Duration(0, -1)) > 0);
assertTrue(new Duration(0, -1).compareTo(new Duration(0, 0)) < 0);
assertTrue(new Duration(0, 0).compareTo(new Duration(-1, 0)) > 0);
assertTrue(new Duration(-1, 0).compareTo(new Duration(0, 0)) < 0);
assertTrue(new Duration(1, 0).compareTo(new Duration(0, 0)) > 0);
assertTrue(new Duration(0, 0).compareTo(new Duration(1, 0)) < 0);
assertTrue(new Duration(0, 1).compareTo(new Duration(0, 0)) > 0);
assertTrue(new Duration(0, 0).compareTo(new Duration(0, 1)) < 0);
}
}