The Trunk: Chronology-Tests-pre.4.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Chronology-Tests-pre.4.mcz

commits-2
Patrick Rein uploaded a new version of Chronology-Tests to project The Trunk:
http://source.squeak.org/trunk/Chronology-Tests-pre.4.mcz

==================== Summary ====================

Name: Chronology-Tests-pre.4
Author: pre
Time: 17 August 2016, 10:40:34.494232 am
UUID: bb438ab5-6837-d74f-9036-cfb85ef62bf7
Ancestors: Chronology-Tests-bf.3

Updates makeUTC test for Dates to cater for the timezone independent behavior of Date objects. (together with Marcel)

=============== Diff against Chronology-Tests-bf.3 ===============

Item was changed:
  ----- Method: DateTest>>testMakeUTC (in category 'testing') -----
  testMakeUTC
+ "Equal dates should compare equal regardless of which TimeZone they are created in."
+
+ | priorTz march31stLocal march31stOcean |
- "Equal dates should compare equal regardless of which TimeZone
- they are created in."
- | priorTz march31stLocal march31stOcean |
- "This test won't work in GMT-9, but nobody lives there."
- self deny: DateAndTime localTimeZone offset hours = -9.
  priorTz := DateAndTime localTimeZone.
+
+ [DateAndTime
+ localTimeZone: (TimeZone
+ offset: 9 hours
+ name: 'Early Test Countries'
+ abbreviation: 'Test Ocean Early').
+  
+ march31stLocal := Date year: 2016 month: 3 day: 31.
+ march31stLocal start: (march31stLocal start offset: DateAndTime localTimeZone offset).
+  
- march31stLocal := Date today.
  DateAndTime
  localTimeZone: (TimeZone
+ offset: -9 hours
+ name: 'Late Test Countries'
+ abbreviation: 'Test Ocean Late').
+  
+ march31stOcean := Date year: 2016 month: 3 day: 31.
+ march31stOcean start: (march31stOcean start offset: DateAndTime localTimeZone offset).]
+ ensure: [DateAndTime localTimeZone: priorTz].
+  
+ self
+ deny: march31stLocal = march31stOcean;
+ assert: march31stOcean > march31stLocal.
+
+   self
+ assert: march31stLocal makeUTC = march31stOcean makeUTC;
+ deny: march31stOcean makeUTC > march31stLocal makeUTC;
+ deny: march31stOcean makeUTC < march31stLocal makeUTC.!
- offset: -9 hours
- name: 'No Countries'
- abbreviation: 'Ocean').
- march31stOcean := Date today.
- DateAndTime localTimeZone: priorTz.
- self assert: march31stLocal makeUTC = march31stOcean makeUTC ;
- deny: march31stOcean makeUTC > march31stLocal makeUTC ;
- deny: march31stOcean makeUTC < march31stLocal makeUTC!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Chronology-Tests-pre.4.mcz

Chris Muller-3
makeUTC should be deprecated (next release).  I added it years ago as
an external "solution" to the equivalence check, but mutating a value
object is a hack, and now we need it anymore.


On Wed, Aug 17, 2016 at 3:40 AM,  <[hidden email]> wrote:

> Patrick Rein uploaded a new version of Chronology-Tests to project The Trunk:
> http://source.squeak.org/trunk/Chronology-Tests-pre.4.mcz
>
> ==================== Summary ====================
>
> Name: Chronology-Tests-pre.4
> Author: pre
> Time: 17 August 2016, 10:40:34.494232 am
> UUID: bb438ab5-6837-d74f-9036-cfb85ef62bf7
> Ancestors: Chronology-Tests-bf.3
>
> Updates makeUTC test for Dates to cater for the timezone independent behavior of Date objects. (together with Marcel)
>
> =============== Diff against Chronology-Tests-bf.3 ===============
>
> Item was changed:
>   ----- Method: DateTest>>testMakeUTC (in category 'testing') -----
>   testMakeUTC
> +       "Equal dates should compare equal regardless of which TimeZone they are created in."
> +
> +       | priorTz march31stLocal march31stOcean |
> -       "Equal dates should compare equal regardless of which TimeZone
> -       they are created in."
> -       | priorTz march31stLocal march31stOcean |
> -       "This test won't work in GMT-9, but nobody lives there."
> -       self deny: DateAndTime localTimeZone offset hours = -9.
>         priorTz := DateAndTime localTimeZone.
> +
> +       [DateAndTime
> +               localTimeZone: (TimeZone
> +               offset: 9 hours
> +               name: 'Early Test Countries'
> +               abbreviation: 'Test Ocean Early').
> +
> +       march31stLocal := Date year: 2016 month: 3 day: 31.
> +       march31stLocal start: (march31stLocal start offset: DateAndTime localTimeZone offset).
> +
> -       march31stLocal := Date today.
>         DateAndTime
>                 localTimeZone: (TimeZone
> +               offset: -9 hours
> +               name: 'Late Test Countries'
> +               abbreviation: 'Test Ocean Late').
> +
> +       march31stOcean := Date year: 2016 month: 3 day: 31.
> +       march31stOcean start: (march31stOcean start offset: DateAndTime localTimeZone offset).]
> +               ensure: [DateAndTime localTimeZone: priorTz].
> +
> +       self
> +               deny: march31stLocal = march31stOcean;
> +               assert: march31stOcean > march31stLocal.
> +
> +       self
> +               assert: march31stLocal makeUTC = march31stOcean makeUTC;
> +               deny: march31stOcean makeUTC > march31stLocal makeUTC;
> +               deny: march31stOcean makeUTC < march31stLocal makeUTC.!
> -                               offset: -9 hours
> -                               name: 'No Countries'
> -                               abbreviation: 'Ocean').
> -       march31stOcean := Date today.
> -       DateAndTime localTimeZone: priorTz.
> -       self assert: march31stLocal makeUTC = march31stOcean makeUTC ;
> -                deny: march31stOcean makeUTC > march31stLocal makeUTC ;
> -                deny: march31stOcean makeUTC < march31stLocal makeUTC!
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Chronology-Tests-pre.4.mcz

marcel.taeumel
Chris Muller-3 wrote
makeUTC should be deprecated (next release).  I added it years ago as
an external "solution" to the equivalence check, but mutating a value
object is a hack, and now we need it anymore.


On Wed, Aug 17, 2016 at 3:40 AM,  <[hidden email]> wrote:
> Patrick Rein uploaded a new version of Chronology-Tests to project The Trunk:
> http://source.squeak.org/trunk/Chronology-Tests-pre.4.mcz
>
> ==================== Summary ====================
>
> Name: Chronology-Tests-pre.4
> Author: pre
> Time: 17 August 2016, 10:40:34.494232 am
> UUID: bb438ab5-6837-d74f-9036-cfb85ef62bf7
> Ancestors: Chronology-Tests-bf.3
>
> Updates makeUTC test for Dates to cater for the timezone independent behavior of Date objects. (together with Marcel)
>
> =============== Diff against Chronology-Tests-bf.3 ===============
>
> Item was changed:
>   ----- Method: DateTest>>testMakeUTC (in category 'testing') -----
>   testMakeUTC
> +       "Equal dates should compare equal regardless of which TimeZone they are created in."
> +
> +       | priorTz march31stLocal march31stOcean |
> -       "Equal dates should compare equal regardless of which TimeZone
> -       they are created in."
> -       | priorTz march31stLocal march31stOcean |
> -       "This test won't work in GMT-9, but nobody lives there."
> -       self deny: DateAndTime localTimeZone offset hours = -9.
>         priorTz := DateAndTime localTimeZone.
> +
> +       [DateAndTime
> +               localTimeZone: (TimeZone
> +               offset: 9 hours
> +               name: 'Early Test Countries'
> +               abbreviation: 'Test Ocean Early').
> +
> +       march31stLocal := Date year: 2016 month: 3 day: 31.
> +       march31stLocal start: (march31stLocal start offset: DateAndTime localTimeZone offset).
> +
> -       march31stLocal := Date today.
>         DateAndTime
>                 localTimeZone: (TimeZone
> +               offset: -9 hours
> +               name: 'Late Test Countries'
> +               abbreviation: 'Test Ocean Late').
> +
> +       march31stOcean := Date year: 2016 month: 3 day: 31.
> +       march31stOcean start: (march31stOcean start offset: DateAndTime localTimeZone offset).]
> +               ensure: [DateAndTime localTimeZone: priorTz].
> +
> +       self
> +               deny: march31stLocal = march31stOcean;
> +               assert: march31stOcean > march31stLocal.
> +
> +       self
> +               assert: march31stLocal makeUTC = march31stOcean makeUTC;
> +               deny: march31stOcean makeUTC > march31stLocal makeUTC;
> +               deny: march31stOcean makeUTC < march31stLocal makeUTC.!
> -                               offset: -9 hours
> -                               name: 'No Countries'
> -                               abbreviation: 'Ocean').
> -       march31stOcean := Date today.
> -       DateAndTime localTimeZone: priorTz.
> -       self assert: march31stLocal makeUTC = march31stOcean makeUTC ;
> -                deny: march31stOcean makeUTC > march31stLocal makeUTC ;
> -                deny: march31stOcean makeUTC < march31stLocal makeUTC!
>
>
Hmm... instead of deprecating #makeUTC, we should make adding a time zone offset to a date instance much easier than:

march31stLocal := Date year: 2016 month: 3 day: 31.
march31stLocal start: (march31stLocal start offset: DateAndTime localTimeZone offset).

Then, #makeUTC could be the inverse operation for that. Then, if you ever need to work with "time-zoned dates", you can do it easily.

Best,
Marcel