basic.js (2855B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2022 Igalia, S.L. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-temporal.duration.compare 7 description: Basic comparisons. 8 features: [Temporal] 9 ---*/ 10 11 const td1pos = new Temporal.Duration(0, 0, 0, 0, 5, 5, 5, 5, 5, 5); 12 const td2pos = new Temporal.Duration(0, 0, 0, 0, 5, 4, 5, 5, 5, 5); 13 const td1neg = new Temporal.Duration(0, 0, 0, 0, -5, -5, -5, -5, -5, -5); 14 const td2neg = new Temporal.Duration(0, 0, 0, 0, -5, -4, -5, -5, -5, -5); 15 assert.sameValue(Temporal.Duration.compare(td1pos, td1pos), 0, 16 "time units: equal"); 17 assert.sameValue(Temporal.Duration.compare(td2pos, td1pos), -1, 18 "time units: smaller/larger"); 19 assert.sameValue(Temporal.Duration.compare(td1pos, td2pos), 1, 20 "time units: larger/smaller"); 21 assert.sameValue(Temporal.Duration.compare(td1neg, td1neg), 0, 22 "time units: negative/negative equal"); 23 assert.sameValue(Temporal.Duration.compare(td2neg, td1neg), 1, 24 "time units: negative/negative smaller/larger"); 25 assert.sameValue(Temporal.Duration.compare(td1neg, td2neg), -1, 26 "time units: negative/negative larger/smaller"); 27 assert.sameValue(Temporal.Duration.compare(td1neg, td2pos), -1, 28 "time units: negative/positive"); 29 assert.sameValue(Temporal.Duration.compare(td1pos, td2neg), 1, 30 "time units: positive/negative"); 31 32 const dd1pos = new Temporal.Duration(5, 5, 5, 5, 5, 5, 5, 5, 5, 5); 33 const dd2pos = new Temporal.Duration(5, 5, 5, 5, 5, 4, 5, 5, 5, 5); 34 const dd1neg = new Temporal.Duration(-5, -5, -5, -5, -5, -5, -5, -5, -5, -5); 35 const dd2neg = new Temporal.Duration(-5, -5, -5, -5, -5, -4, -5, -5, -5, -5); 36 const relativeTo = Temporal.PlainDate.from("2017-01-01"); 37 assert.throws(RangeError, () => Temporal.Duration.compare(dd1pos, dd2pos), 38 "date units: relativeTo is required"); 39 assert.sameValue(Temporal.Duration.compare(dd1pos, dd1pos, { relativeTo }), 0, 40 "date units: equal"); 41 assert.sameValue(Temporal.Duration.compare(dd2pos, dd1pos, { relativeTo }), -1, 42 "date units: smaller/larger"); 43 assert.sameValue(Temporal.Duration.compare(dd1pos, dd2pos, { relativeTo }), 1, 44 "date units: larger/smaller"); 45 assert.sameValue(Temporal.Duration.compare(dd1neg, dd1neg, { relativeTo }), 0, 46 "date units: negative/negative equal"); 47 assert.sameValue(Temporal.Duration.compare(dd2neg, dd1neg, { relativeTo }), 1, 48 "date units: negative/negative smaller/larger"); 49 assert.sameValue(Temporal.Duration.compare(dd1neg, dd2neg, { relativeTo }), -1, 50 "date units: negative/negative larger/smaller"); 51 assert.sameValue(Temporal.Duration.compare(dd1neg, dd2pos, { relativeTo }), -1, 52 "date units: negative/positive"); 53 assert.sameValue(Temporal.Duration.compare(dd1pos, dd2neg, { relativeTo }), 1, 54 "date units: positive/negative"); 55 56 reportCompare(0, 0);