|  | 
| 1 | 1 | /* | 
| 2 |  | - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. | 
|  | 2 | + * Copyright (c) 2012, 2025, Oracle and/or its affiliates. All rights reserved. | 
| 3 | 3 |  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
| 4 | 4 |  * | 
| 5 | 5 |  * This code is free software; you can redistribute it and/or modify it | 
|  | 
| 71 | 71 | import static java.time.temporal.ChronoUnit.WEEKS; | 
| 72 | 72 | import static java.time.temporal.ChronoUnit.YEARS; | 
| 73 | 73 | import static org.testng.Assert.assertEquals; | 
|  | 74 | +import static org.testng.Assert.assertNotEquals; | 
|  | 75 | +import static org.testng.Assert.assertThrows; | 
| 74 | 76 | import static org.testng.Assert.assertTrue; | 
| 75 | 77 | import static org.testng.Assert.fail; | 
| 76 | 78 | 
 | 
| @@ -115,6 +117,44 @@ public void test_zero() { | 
| 115 | 117 |         assertEquals(Duration.ZERO.getNano(), 0); | 
| 116 | 118 |     } | 
| 117 | 119 | 
 | 
|  | 120 | +    @Test | 
|  | 121 | +    public void test_min() { | 
|  | 122 | +        assertEquals(Duration.MIN.getSeconds(), Long.MIN_VALUE); | 
|  | 123 | +        assertEquals(Duration.MIN.getNano(), 0); | 
|  | 124 | +        // no duration minimally less than MIN | 
|  | 125 | +        assertThrows(ArithmeticException.class, () -> Duration.MIN.minusNanos(1)); | 
|  | 126 | +    } | 
|  | 127 | + | 
|  | 128 | +    @Test | 
|  | 129 | +    public void test_max() { | 
|  | 130 | +        assertEquals(Duration.MAX.getSeconds(), Long.MAX_VALUE); | 
|  | 131 | +        assertEquals(Duration.MAX.getNano(), 999_999_999); | 
|  | 132 | +        // no duration minimally greater than MAX | 
|  | 133 | +        assertThrows(ArithmeticException.class, () -> Duration.MAX.plusNanos(1)); | 
|  | 134 | +    } | 
|  | 135 | + | 
|  | 136 | +    @Test | 
|  | 137 | +    public void test_constant_properties() { | 
|  | 138 | +        assertTrue(Duration.MIN.compareTo(Duration.MIN) == 0); | 
|  | 139 | +        assertEquals(Duration.MIN, Duration.MIN); | 
|  | 140 | +        assertTrue(Duration.ZERO.compareTo(Duration.ZERO) == 0); | 
|  | 141 | +        assertEquals(Duration.ZERO, Duration.ZERO); | 
|  | 142 | +        assertTrue(Duration.MAX.compareTo(Duration.MAX) == 0); | 
|  | 143 | +        assertEquals(Duration.MAX, Duration.MAX); | 
|  | 144 | + | 
|  | 145 | +        assertTrue(Duration.MIN.compareTo(Duration.ZERO) < 0); | 
|  | 146 | +        assertTrue(Duration.ZERO.compareTo(Duration.MIN) > 0); | 
|  | 147 | +        assertNotEquals(Duration.ZERO, Duration.MIN); | 
|  | 148 | + | 
|  | 149 | +        assertTrue(Duration.ZERO.compareTo(Duration.MAX) < 0); | 
|  | 150 | +        assertTrue(Duration.MAX.compareTo(Duration.ZERO) > 0); | 
|  | 151 | +        assertNotEquals(Duration.ZERO, Duration.MAX); | 
|  | 152 | + | 
|  | 153 | +        assertTrue(Duration.MIN.compareTo(Duration.MAX) < 0); | 
|  | 154 | +        assertTrue(Duration.MAX.compareTo(Duration.MIN) > 0); | 
|  | 155 | +        assertNotEquals(Duration.MIN, Duration.MAX); | 
|  | 156 | +    } | 
|  | 157 | + | 
| 118 | 158 |     //----------------------------------------------------------------------- | 
| 119 | 159 |     // ofSeconds(long) | 
| 120 | 160 |     //----------------------------------------------------------------------- | 
|  | 
0 commit comments