@@ -153,19 +153,36 @@ public void shouldCreateFromDuration()
153153 }
154154
155155 @ Test
156- public void toStringShouldPrintInIsoStandardFormat () throws Throwable
156+ public void toStringShouldPrintInIsoStandardFormat ()
157157 {
158- assertThat ( new InternalIsoDuration ( 0 , 0 , 0 , 0 ).toString (), equalTo ( "P0M0DT0S" ) );
159- assertThat ( new InternalIsoDuration ( 2 , 45 , 59 , 11 ).toString (), equalTo ( "P2M45DT59.000000011S" ) );
160- assertThat ( new InternalIsoDuration ( 4 , -101 , 1 , 999 ).toString (), equalTo ( "P4M-101DT1.000000999S" ) );
161- assertThat ( new InternalIsoDuration ( -1 , 12 , -19 , 1 ).toString (), equalTo ( "P-1M12DT-19.000000001S" ) );
158+ assertThat ( newDuration ( 0 , 0 , 0 , 0 ).toString (), equalTo ( "P0M0DT0S" ) );
159+ assertThat ( newDuration ( 2 , 45 , 59 , 11 ).toString (), equalTo ( "P2M45DT59.000000011S" ) );
160+ assertThat ( newDuration ( 4 , -101 , 1 , 999 ).toString (), equalTo ( "P4M-101DT1.000000999S" ) );
161+ assertThat ( newDuration ( -1 , 12 , -19 , 1 ).toString (), equalTo ( "P-1M12DT-18.999999999S" ) );
162+ assertThat ( newDuration ( 0 , 0 , -1 , 1 ).toString (), equalTo ( "P0M0DT-0.999999999S" ) );
162163
163164 assertThat ( new InternalIsoDuration ( Period .parse ( "P356D" ) ).toString (), equalTo ( "P0M356DT0S" ) );
164165 assertThat ( new InternalIsoDuration ( Duration .parse ( "PT45S" ) ).toString (), equalTo ( "P0M0DT45S" ) );
165166
166- assertThat ( new InternalIsoDuration ( Period .parse ( "P14D" ), Duration .parse ( "PT16H12M" ) ).toString (), equalTo ( "P0M14DT58320S" ) );
167- assertThat ( new InternalIsoDuration ( Period .parse ( "P5M1D" ), Duration .parse ( "PT12H" ) ).toString (), equalTo ( "P5M1DT43200S" ) );
168- assertThat ( new InternalIsoDuration ( Period .parse ( "P2W3D" ), Duration .parse ( "PT2H0.111222333S" ) ).toString (), equalTo ( "P0M17DT7200.111222333S" ) );
167+ assertThat ( new InternalIsoDuration ( 0 , 14 , Duration .parse ( "PT16H12M" ) ).toString (), equalTo ( "P0M14DT58320S" ) );
168+ assertThat ( new InternalIsoDuration ( 5 , 1 , Duration .parse ( "PT12H" ) ).toString (), equalTo ( "P5M1DT43200S" ) );
169+ assertThat ( new InternalIsoDuration ( 0 , 17 , Duration .parse ( "PT2H0.111222333S" ) ).toString (), equalTo ( "P0M17DT7200.111222333S" ) );
170+
171+ assertThat ( newDuration ( 42 , 42 , 42 , 0 ).toString (), equalTo ( "P42M42DT42S" ) );
172+ assertThat ( newDuration ( 42 , 42 , -42 , 0 ).toString (), equalTo ( "P42M42DT-42S" ) );
173+
174+ assertThat ( newDuration ( 42 , 42 , 0 , 5 ).toString (), equalTo ( "P42M42DT0.000000005S" ) );
175+ assertThat ( newDuration ( 42 , 42 , 0 , -5 ).toString (), equalTo ( "P42M42DT-0.000000005S" ) );
176+
177+ assertThat ( newDuration ( 42 , 42 , 1 , 5 ).toString (), equalTo ( "P42M42DT1.000000005S" ) );
178+ assertThat ( newDuration ( 42 , 42 , -1 , 5 ).toString (), equalTo ( "P42M42DT-0.999999995S" ) );
179+ assertThat ( newDuration ( 42 , 42 , 1 , -5 ).toString (), equalTo ( "P42M42DT0.999999995S" ) );
180+ assertThat ( newDuration ( 42 , 42 , -1 , -5 ).toString (), equalTo ( "P42M42DT-1.000000005S" ) );
181+
182+ assertThat ( newDuration ( 42 , 42 , 28 , 9 ).toString (), equalTo ( "P42M42DT28.000000009S" ) );
183+ assertThat ( newDuration ( 42 , 42 , -28 , 9 ).toString (), equalTo ( "P42M42DT-27.999999991S" ) );
184+ assertThat ( newDuration ( 42 , 42 , 28 , -9 ).toString (), equalTo ( "P42M42DT27.999999991S" ) );
185+ assertThat ( newDuration ( 42 , 42 , -28 , -9 ).toString (), equalTo ( "P42M42DT-28.000000009S" ) );
169186 }
170187
171188 private static IsoDuration newDuration ( long months , long days , long seconds , int nanoseconds )
0 commit comments