Skip to content

Temporal.Duration normalization tests, part 2 of 3#3961

Merged
ptomato merged 5 commits intotc39:mainfrom
ptomato:duration-normalize-part-2
Jan 31, 2024
Merged

Temporal.Duration normalization tests, part 2 of 3#3961
ptomato merged 5 commits intotc39:mainfrom
ptomato:duration-normalize-part-2

Conversation

@ptomato
Copy link
Copy Markdown
Contributor

@ptomato ptomato commented Nov 16, 2023

(stacked on top of #3957, will rebase as appropriate)

This PR contains tests that cover a Temporal normative change that reached consensus in July 2023.
Normative PR: tc39/proposal-temporal#2727

@ptomato ptomato requested review from a team as code owners November 16, 2023 01:22
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from c9ccbc4 to 2448b3f Compare November 16, 2023 19:10
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from cbf4da8 to 7e6df92 Compare November 28, 2023 19:47
@ptomato
Copy link
Copy Markdown
Contributor Author

ptomato commented Nov 29, 2023

Added extra tests for the cases that @anba identified, in a fixup commit so it's easy to see what changed. I will squash it before merging.

@ptomato ptomato force-pushed the duration-normalize-part-2 branch from 7e6df92 to 9bbab02 Compare November 29, 2023 00:14
anba added a commit to anba/test262 that referenced this pull request Jan 2, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
anba added a commit to anba/test262 that referenced this pull request Jan 9, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from 9bbab02 to f444710 Compare January 16, 2024 01:46
ptomato pushed a commit to ptomato/test262 that referenced this pull request Jan 17, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
ptomato pushed a commit to ptomato/test262 that referenced this pull request Jan 22, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from 9fb7763 to 60538bc Compare January 22, 2024 23:34
ptomato pushed a commit to ptomato/test262 that referenced this pull request Jan 31, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from 60538bc to 04e26c6 Compare January 31, 2024 00:31
@ptomato
Copy link
Copy Markdown
Contributor Author

ptomato commented Jan 31, 2024

Thanks for the review. Since yesterday I added some tests from @nicolo-ribaudo as well as some tests from @anba, which I've reviewed. So I think this is ready. I'll merge it at the same time as the proposal-temporal PR.

ptomato and others added 5 commits January 30, 2024 17:11
Adapts or removes tests that relied on creating durations that are now out
of range. Adds new tests for maximum in-range and minimum out-of-range
durations.
NormalizedTimeDurationToDays can no longer loop indefinitely, because at
a certain point we will hit the upper bound of MAX_SAFE_INTEGER, so rename
the test to reflect that it can loop an arbitrary but limited number of
times.

Add a test for the RangeError condition in NormalizedTimeDurationToDays
when the time zone calculates a day length that is not a safe integer
number of nanoseconds.

While editing these tests, rename them to match the current name of the AO
and make sure the step numbers are up to date. (Normally I wouldn't care
so much about that, but these tests can be pretty confusing so it's good
to be able to refer to the spec text.)
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in tc39#3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
@ptomato ptomato force-pushed the duration-normalize-part-2 branch from 04e26c6 to 701339e Compare January 31, 2024 01:11
@ptomato ptomato merged commit 584048e into tc39:main Jan 31, 2024
ptomato pushed a commit that referenced this pull request Jan 31, 2024
….hoursInDay

The existing tests didn't cover some edge cases where implementations
have to compute the exact result of `numerator / denominator`, where at
least one of `numerator` and `denominator` can't be exactly represented
by an IEEE-754 double precision floating point value.

"precision-exact-mathematical-values-5.js" gets added in #3961, so the
new tests from this commit start at "precision-exact-mathematical-values-6.js".
@ptomato ptomato deleted the duration-normalize-part-2 branch January 31, 2024 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants