ocaml-community / ISO8601.ml

Parser and printer for date-times in ISO8601
https://ocaml-community.github.io/ISO8601.ml
MIT License
29 stars 13 forks source link

updated PR #5 #18

Open c-cube opened 4 years ago

c-cube commented 4 years ago

this is not ready, and I have no time for it, just opening it to signal that #5 is not the most recent. Help to ensure correctness of the changes would be very welcome.

undu commented 3 years ago

I've rebased this PR to the latest master: https://github.com/undu/ISO8601.ml/tree/wip-merge-pr-5

The new ounit tests are failing, as well as making some other fail as well, with the dreaded one-hour drift, which seems to be independent from the timezone the computer is set to:

GMT + DST

==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:2:1979-05-27T00:32:00.999999-07:00

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:1:1979-05-27T00:32:00-07:00

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:0:1979-05-27T07:32:00Z

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
Ran: 64 tests in: 0.02 seconds.
FAILED: Cases: 64 Tried: 64 Errors: 0 Failures: 10 Skip:  0 Todo: 0 Timeouts: 0.

An using Central time + DST (Mexico City):

==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:2:1979-05-27T00:32:00.999999-07:00

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:1:1979-05-27T00:32:00-07:00

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
==============================================================================
Failure: ISO8601:0:[PARSER]:4:[DATETIME WITH TIMEZONE]:0:1979-05-27T07:32:00Z

expected: 1979-05-27T09:32:00 but got: 1979-05-27T10:32:00
------------------------------------------------------------------------------
Ran: 64 tests in: 0.03 seconds.
FAILED: Cases: 64 Tried: 64 Errors: 0 Failures: 10 Skip:  0 Todo: 0 Timeouts: 0.

There are a lot of alcotests failing, but I haven't looked into that