/** * Divides the {@link Duration} by another duration. * @param dividend The {@link Duration} to divide. * @param divisor The {@link Duration} by which to divide the {@link Duration}. * @return The result of dividing the dividend by the divisor. */ @CS2JInfo("This method implements the functionality of the overloaded operator: 'System.Double /(Duration,Duration)'") public static double divide(@Nonnull Duration dividend, @Nonnull Duration divisor) { return dividend.divide(divisor); }
/** * Divides the {@link Duration} by a constant. * @param dividend The {@link Duration} to divide. * @param divisor The constant by which to divide the {@link Duration}. * @return The result of dividing the dividend by the divisor. */ @CS2JInfo("This method implements the functionality of the overloaded operator: 'Duration /(Duration,System.Double)'") @Nonnull public static Duration divide(@Nonnull Duration dividend, double divisor) { return dividend.divide(divisor); }
/** * Tests division of a {@link Duration} by another. */ @Test public final void testDivisionByDuration() { Duration one = new Duration(1, 0.0); Duration two = new Duration(0, 60.0); Assert.assertEquals(86400.0 / 60.0, one.divide(two), Constants.Epsilon10); Assert.assertEquals(60 / 86400.0, Duration.divide(two, one), Constants.Epsilon10); Duration three = new Duration(1, 43200.0); Assert.assertEquals((86400 + 43200) / 60.0, Duration.divide(three, two), Constants.Epsilon10); Assert.assertEquals(60.0 / (86400.0 + 43200.0), two.divide(three), Constants.Epsilon10); Duration four = new Duration(1, 0D); Duration five = new Duration(0, -3600D); Assert.assertEquals(-24D, Duration.divide(four, five), Constants.Epsilon10); Assert.assertEquals(-1.0 / 24.0, Duration.divide(five, four), Constants.Epsilon10); Duration six = new Duration(-2, 0D); Assert.assertEquals(-0.5, Duration.divide(four, six), 0d); Assert.assertEquals(48, Duration.divide(six, five), 0d); Duration seven = new Duration(0, -0.5); Assert.assertEquals(-48 * 3600, Duration.divide(four, seven), 0d); }
public final void testDivisionByConstant() { Duration duration = new Duration(500, 100.0); Duration result = duration.divide(100.0); Assert.assertTrue(result.equalsEpsilon(new Duration(5, 1.0), Constants.Epsilon10)); result = Duration.divide(duration, 100.0); Assert.assertTrue(result.equalsEpsilon(new Duration(5, 1.0), Constants.Epsilon10)); duration = new Duration(5, 68010.0); result = duration.divide(100.0); Assert.assertTrue(result.equalsEpsilon(new Duration(0, 5000.1), Constants.Epsilon10)); result = Duration.divide(duration, 100.0); Assert.assertTrue(result.equalsEpsilon(new Duration(0, 5000.1), Constants.Epsilon10)); duration = new Duration(0, 64800.0); result = duration.divide(0.5); Assert.assertTrue(result.equalsEpsilon(new Duration(1, 43200.0), Constants.Epsilon10)); result = Duration.divide(duration, 0.5); Assert.assertTrue(result.equalsEpsilon(new Duration(1, 43200.0), Constants.Epsilon10)); duration = new Duration(502, 43300.5); result = duration.divide(100.5); Assert.assertTrue(result.equalsEpsilon(new Duration(5, 1.0), Constants.Epsilon10)); result = Duration.divide(duration, 100.5); Assert.assertTrue(result.equalsEpsilon(new Duration(5, 1.0), Constants.Epsilon10)); duration = new Duration(5, 1.0); result = Duration.divide(duration, -2.0); Assert.assertTrue(result.equalsEpsilon(new Duration(-2, -43200.5), Constants.Epsilon10)); duration = new Duration(0, 18 * 3600); result = Duration.divide(duration, -0.5); Assert.assertEquals(-12 * 3600, result.getSeconds(), 0d); Assert.assertEquals((int) -1, (int) result.getDays()); duration = new Duration(1, 4 * 3600);