argument-string-fractional-precision.js (1414B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2022 André Bargull. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-temporal.duration.from 7 description: > 8 Fractional parts are computed using exact mathematical values. 9 includes: [temporalHelpers.js] 10 features: [Temporal] 11 ---*/ 12 13 const tests = { 14 "PT0.999999999H": Temporal.Duration.from({ 15 minutes: 59, 16 seconds: 59, 17 milliseconds: 999, 18 microseconds: 996, 19 nanoseconds: 400, 20 }), 21 "PT0.000000011H": Temporal.Duration.from({ 22 minutes: 0, 23 seconds: 0, 24 milliseconds: 0, 25 microseconds: 39, 26 nanoseconds: 600, 27 }), 28 29 "PT0.999999999M": Temporal.Duration.from({ 30 seconds: 59, 31 milliseconds: 999, 32 microseconds: 999, 33 nanoseconds: 940, 34 }), 35 "PT0.000000011M": Temporal.Duration.from({ 36 seconds: 0, 37 milliseconds: 0, 38 microseconds: 0, 39 nanoseconds: 660, 40 }), 41 42 "PT0.999999999S": Temporal.Duration.from({ 43 milliseconds: 999, 44 microseconds: 999, 45 nanoseconds: 999, 46 }), 47 "PT0.000000011S": Temporal.Duration.from({ 48 milliseconds: 0, 49 microseconds: 0, 50 nanoseconds: 11, 51 }), 52 }; 53 54 for (let [str, expected] of Object.entries(tests)) { 55 let actual = Temporal.Duration.from(str); 56 TemporalHelpers.assertDurationsEqual(actual, expected, str); 57 } 58 59 reportCompare(0, 0);