RegressionTests__TimeAndDateTest.st
author Claus Gittinger <cg@exept.de>
Tue, 18 Nov 2014 17:25:00 +0100
changeset 1244 850ca3a30a23
parent 1233 c72fec37a673
child 1277 8cebe2c950ad
permissions -rw-r--r--
class: RegressionTests::TimeAndDateTest added: #test_16_readingOtherFormats
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
346
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'exept:regression' }"
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#TimeAndDateTest
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
1077
9cb704988db8 category change
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
     9
	category:'tests-Regression-DateAndTime'
346
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!TimeAndDateTest methodsFor:'Testing'!
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    15
test_01_ReadingTimes
346
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
     self assert:(Time readFrom:'0:00'    ) = (Time hour:0 minute:0 second:0).
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
     self assert:(Time readFrom:'2:00'    ) = (Time hour:2 minute:0 second:0).     
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
     self assert:(Time readFrom:'12:00'   ) = (Time hour:12 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
     self assert:(Time readFrom:'14:00'   ) = (Time hour:14 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
     self assert:(Time readFrom:'23:00'   ) = (Time hour:23 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
     self assert:(Time readFrom:'24:00'   ) = (Time hour:0 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
     self assert:(Time readFrom:'2:30 am' ) = (Time hour:2 minute:30 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
     self assert:(Time readFrom:'2:30 pm' ) = (Time hour:14 minute:30 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
     self assert:(Time readFrom:'14'      ) = (Time hour:14 minute:0 second:0).
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
     self assert:(Time readFrom:'2 am'    ) = (Time hour:2 minute:0 second:0). 
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
     self assert:(Time readFrom:'2 pm'    ) = (Time hour:14 minute:0 second:0). 
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
     self assert:(Time readFrom:'12:05 pm') = (Time hour:12 minute:5 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
     self assert:(Time readFrom:'12:06 am') = (Time hour:0 minute:6 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
     self assert:(Time readFrom:'18:22:00') = (Time hour:18 minute:22 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
     self assert:(Time readFrom:'14:00:11') = (Time hour:14 minute:0 second:11).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
     self assert:(Time readFrom:'7:00:11' ) = (Time hour:7 minute:0 second:11).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
     self assert:(Time readFrom:'24:00:00') = (Time hour:0 minute:0 second:0).     
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
     self assert:(Time readFrom:'0:00:00' ) = (Time hour:0 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
     self assert:(Time readFrom:'12:00:00') = (Time hour:12 minute:0 second:0).     
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
     self assert:(Time readFrom:'0:00:00' ) = (Time hour:0 minute:0 second:0).    
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
     self assert:(Time readFrom:'6:22:00 pm' ) = (Time hour:18 minute:22 second:0).  
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
     self assert:(Time readFrom:'2:00:11 pm' ) = (Time hour:14 minute:0 second:11). 
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
     self assert:(Time readFrom:'7:00:11 am' ) = (Time hour:7 minute:0 second:11). 
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
     self assert:(Time readFrom:'12:00:00 am') = (Time hour:0 minute:0 second:0).  
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
     self assert:(Time readFrom:'0:00:00 am' ) = (Time hour:0 minute:0 second:0). 
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
     self should:[ Time readFrom:'24:00:00 am' ] raise:TimeConversionError.
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
     self assert:(Time readFrom:'12:00:00 pm') = (Time hour:12 minute:0 second:0).  
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
     self assert:(Time readFrom:'0:00:00 pm' onError:'invalid') = 'invalid'.
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
     self should:[ Time readFrom:'24:00:00 pm' ] raise:TimeConversionError.  
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
     self new test_01_Reading
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    "
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    51
!
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    52
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    53
test_02_ReadingDates
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    54
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    55
     self assert:(Date 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    56
                    readFrom:'2-may-2010'
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    57
                    printFormat:'%d-%shortMonthName-%y' 
633
69e6e55c38e2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
    58
                    language:'en' 
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    59
                    onError:[self error]
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    60
                  ) = (Date newDay:2 month:5 year:2010).
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    61
736
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    62
    {
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    63
        {   '3-jan-2012'   .   (Date newDay:3 month:1 year:2012)    } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    64
        {   '15-feb-2012'   .   (Date newDay:15 month:2 year:2012)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    65
        {   '06-mar-2011'   .   (Date newDay:6 month:3 year:2011)   } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    66
        {   '19-apr-2013'   .   (Date newDay:19 month:4 year:2013)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    67
        {   '21-may-2015'   .   (Date newDay:21 month:5 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    68
        {   '21-jun-2015'   .   (Date newDay:21 month:6 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    69
        {   '21-jul-2015'   .   (Date newDay:21 month:7 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    70
        {   '21-aug-2015'   .   (Date newDay:21 month:8 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    71
        {   '21-sep-2015'   .   (Date newDay:21 month:9 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    72
        {   '21-oct-2015'   .   (Date newDay:21 month:10 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    73
        {   '21-nov-2015'   .   (Date newDay:21 month:11 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    74
        {   '21-dec-2015'   .   (Date newDay:21 month:12 year:2015)  } .
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    75
    } do:[:eachTestPair |
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    76
         self assert:(Date 
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    77
                        readFrom:(eachTestPair first)
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    78
                        printFormat:'%d-%shortMonthName-%y' 
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    79
                        language:'en' 
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    80
                        onError:[self error]
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    81
                      ) = (eachTestPair second).
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    82
    ].
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
    83
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    84
     self assert:(Date 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    85
                    readFrom:'2-may-2010'
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    86
                    printFormat:'%d-%monthName-%y' 
633
69e6e55c38e2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
    87
                    language:'en' 
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    88
                    onError:[self error]
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    89
                  ) = (Date newDay:2 month:5 year:2010).
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    90
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
    91
     self assert:(Date 
366
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    92
                    readFrom:'2-may-2010'
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    93
                    printFormat:'%d-%(shortMonthName)-%y' 
633
69e6e55c38e2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
    94
                    language:'en' 
366
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    95
                    onError:[self error]
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    96
                  ) = (Date newDay:2 month:5 year:2010).
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    97
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    98
     self assert:(Date 
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
    99
                    readFrom:'2-may-2010'
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
   100
                    printFormat:'%d-%(monthName)-%y' 
633
69e6e55c38e2 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
   101
                    language:'en' 
366
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
   102
                    onError:[self error]
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
   103
                  ) = (Date newDay:2 month:5 year:2010).
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
   104
e522392004b2 changed #'test_02_ReadingDates'
fm
parents: 365
diff changeset
   105
     self assert:(Date 
365
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   106
                    readFrom:'2-5-2010'
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   107
                    printFormat:'%d-%m-%y' 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   108
                    onError:[self error]
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   109
                  ) = (Date newDay:2 month:5 year:2010).
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   110
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   111
     self assert:(Date 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   112
                    readFrom:'5/2/2010'
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   113
                    printFormat:'%m/%d/%y' 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   114
                    onError:[self error]
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   115
                  ) = (Date newDay:2 month:5 year:2010).
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   116
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   117
     self assert:(Date 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   118
                    readFrom:'2010-5-2'
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   119
                    printFormat:'%y-%m-%d' 
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   120
                    onError:[self error]
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   121
                  ) = (Date newDay:2 month:5 year:2010).
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   122
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   123
    "
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   124
     self new test_02_ReadingDates
b0d27286d78e *** empty log message ***
fm
parents: 346
diff changeset
   125
    "
736
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   126
!
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   127
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   128
test_03_calenderWeek
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   129
    self assert:(Date newDay:5 month:11 year:2012) weekInYear == 45.
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   130
    self assert:(Date newDay:11 month:11 year:2012) weekInYear == 45.
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   131
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   132
    self assert:(Date newDay:4 month:11 year:2012) weekInYear == 44.
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   133
    self assert:(Date newDay:12 month:11 year:2012) weekInYear == 46.
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   134
737
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   135
    self assert:(Date newDay:29 month:12 year:2014) weekInYear == 1.    "/ YES!!
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   136
    self assert:(Date newDay:30 month:12 year:2014) weekInYear == 1.    "/ YES!!
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   137
    self assert:(Date newDay:31 month:12 year:2014) weekInYear == 1.    "/ YES!!
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   138
    self assert:(Date newDay:1 month:1 year:2015) weekInYear == 1.
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   139
    self assert:(Date newDay:2 month:1 year:2015) weekInYear == 1.
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   140
    self assert:(Date newDay:3 month:1 year:2015) weekInYear == 1.
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   141
    self assert:(Date newDay:4 month:1 year:2015) weekInYear == 1.
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   142
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   143
    self assert:(Date newDay:5 month:1 year:2015) weekInYear == 2.
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   144
745
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   145
    "/ every 4th of january is in the 1st week
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   146
    1902 to:2100 do:[:y |
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   147
        |d|
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   148
        d := Date newDay:4 month:1 year:y.
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   149
        self assert:d weekInYear == 1.
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   150
    ].
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   151
736
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   152
    "
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   153
     self new test_03_calenderWeek
b51ba7f6c03f added: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 633
diff changeset
   154
    "
745
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   155
!
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   156
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   157
test_04_calenderWeek_fails
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   158
    <test: broken>
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   159
^ self.
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   160
    "/ currently fails for date before 1901
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   161
    1900 to:1905 do:[:y |
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   162
        |d|
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   163
        d := Date newDay:4 month:1 year:y.
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   164
        self assert:d weekInYear == 1.
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   165
    ].
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   166
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   167
    "
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   168
     self new test_04_calenderWeek_fails
fde865b5dece class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
   169
    "
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   170
!
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   171
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   172
test_05_weekDayConversion
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   173
    {
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   174
        { #( 6 53 2004) "2004-W53-6" . (Date newDay:1 month:1 year:2005) }   .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   175
        { #( 7 53 2004) "2004-W53-7" . (Date newDay:2 month:1 year:2005) }   .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   176
        { #( 6 52 2005) "2005-W52-6" . (Date newDay:31 month:12 year:2005) } .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   177
        { #( 1 1  2007) "2007-W01-1" . (Date newDay:1 month:1 year:2007) }   .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   178
        { #( 7 52 2007) "2007-W52-7" . (Date newDay:30 month:12 year:2007) } .
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   179
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   180
        { #( 1 1  2008) "2008-W01-1" . (Date newDay:31 month:12 year:2007) } .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   181
        { #( 2 1  2008) "2008-W01-2" . (Date newDay:1 month:1 year:2008) }   .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   182
        { #( 7 52 2008) "2008-W52-7" . (Date newDay:28 month:12 year:2008) } .
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   183
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   184
        { #( 1 1  2009) "2009-W01-1" . (Date newDay:29 month:12 year:2008) }     .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   185
        { #( 2 1  2009) "2009-W01-2" . (Date newDay:30 month:12 year:2008) }     .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   186
        { #( 3 1  2009) "2009-W01-3" . (Date newDay:31 month:12 year:2008) }     .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   187
        { #( 4 1  2009) "2009-W01-4" . (Date newDay:1 month:1 year:2009) }       .
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   188
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   189
        { #( 4 53 2009) "2009-W53-4" . (Date newDay:31 month:12 year:2009) }     .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   190
        { #( 5 53 2009) "2009-W53-5" . (Date newDay:1 month:1 year:2010) }       .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   191
        { #( 6 53 2009) "2009-W53-6" . (Date newDay:2 month:1 year:2010) }       .
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   192
        { #( 7 53 2009) "2009-W53-7" . (Date newDay:3 month:1 year:2010) }       .
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   193
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   194
        { #( 1 1  1997) "1997-W01-1" . (Date newDay:30 month:12 year:1996) } .
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   195
    } do:[:eachPair |
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   196
        |dwy d1 d2 dayInWeek weekNr year|
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   197
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   198
        dwy := eachPair first.
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   199
        dayInWeek := dwy first.
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   200
        weekNr := dwy second.
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   201
        year := dwy third.
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   202
        d1 := Date newDayInWeek:dayInWeek week:weekNr year:year.
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   203
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   204
        d2 := eachPair second.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   205
        self assert:(d1 = d2) description:'wrong: ',d1 printString, ' vs. ',d2 printString.
1218
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   206
        self assert:(d1 weekInYear == weekNr).
efecc8c6f1fe class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1217
diff changeset
   207
        self assert:(d1 dayInWeek == dayInWeek).
1217
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   208
    ]
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   209
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   210
    "
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   211
     self new test_05_weekDayConversion
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   212
    "
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   213
!
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   214
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   215
test_06_readingISO8601
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   216
    {
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   217
        { '2004-W53-6'  . 'sat' . (Date newDay:1 month:1 year:2005) }   .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   218
        { '2004-W53-7'  . 'sun' . (Date newDay:2 month:1 year:2005) }   .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   219
        { '2005-W52-6'  . 'sat' . (Date newDay:31 month:12 year:2005) } .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   220
        { '2007-W01-1'  . 'mon' . (Date newDay:1 month:1 year:2007) }   .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   221
        { '2007-W52-7'  . 'sun' . (Date newDay:30 month:12 year:2007) } .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   222
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   223
        { '2008-W01-1'  . 'mon' . (Date newDay:31 month:12 year:2007) } .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   224
        { '2008-W01-2'  . 'tue' . (Date newDay:1 month:1 year:2008) }   .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   225
        { '2008-W52-7'  . 'sun' . (Date newDay:28 month:12 year:2008) } .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   226
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   227
        { '2009-W01-1'  . 'mon' . (Date newDay:29 month:12 year:2008) }     .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   228
        { '2009-W01-2'  . 'tue' . (Date newDay:30 month:12 year:2008) }     .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   229
        { '2009-W01-3'  . 'wed' . (Date newDay:31 month:12 year:2008) }     .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   230
        { '2009-W01-4'  . 'thu' . (Date newDay:1 month:1 year:2009) }       .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   231
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   232
        { '2009-W53-4'  . 'thu' . (Date newDay:31 month:12 year:2009) }     .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   233
        { '2009-W53-5'  . 'fri' . (Date newDay:1 month:1 year:2010) }       .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   234
        { '2009-W53-6'  . 'sat' . (Date newDay:2 month:1 year:2010) }       .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   235
        { '2009-W53-7'  . 'sun' . (Date newDay:3 month:1 year:2010) }       .
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   236
    } do:[:eachTriple |
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   237
        |input expected expectedDayName got gotName|
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   238
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   239
        input := eachTriple first.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   240
        expectedDayName := eachTriple second.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   241
        expected := eachTriple third.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   242
        got := (Timestamp readIso8601FormatFrom:input onError:nil) asDate.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   243
        self assert:(got = expected) description:'wrong: ',input.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   244
        gotName := got abbreviatedDayNameForLanguage:#en.
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   245
        self assert:gotName = expectedDayName description:'expected: ',expectedDayName asString,' got: ',gotName asString. 
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   246
    ]
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   247
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   248
    "
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   249
     self new test_06_calenderWeek_fails
ee9044742185 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1077
diff changeset
   250
    "
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   251
!
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   252
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   253
test_07_readingISO8601
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   254
    "tests reading into a 'natural' timestamp - that is if there was a TZ info,
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   255
     that will be printed. If not, it will remain a local timestamp.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   256
     Presenting timestamps this way is not usually a good idea, except for GUI
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   257
     (but not for data exchange)"
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   258
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   259
    {
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   260
     { '1995-02-20T13:11:06.123'   . '1995-02-20 13:11:06.123' } . 
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   261
     { '1995-02-20T13:11:06'       . '1995-02-20 13:11:06' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   262
     { '1995-02T13:11:06'          . '1995-02-01 13:11:06' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   263
     { '1995T13:11:06'             . '1995-01-01 13:11:06' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   264
     { '1995T13:11'                . '1995-01-01 13:11' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   265
     { '1995T13:11.5'              . '1995-01-01 13:11:30' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   266
     { '1995T13:11,5'              . '1995-01-01 13:11:30' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   267
     { '1995T13'                   . '1995-01-01 13:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   268
     { '1995T13.25'                . '1995-01-01 13:15' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   269
     { '1995T13.333333'            . '1995-01-01 13:19:59.999' } .   
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   270
     { '1995'                      . '1995-01-01 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   271
     { '1995-02'                   . '1995-02-01 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   272
     { '19950204'                  . '1995-02-04 00:00' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   273
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   274
     "/ day in year
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   275
     { '1995-001'                  . '1995-01-01 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   276
     { '1995-035'                  . '1995-02-04 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   277
     { '1995035'                   . '1995-02-04 00:00' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   278
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   279
     { '1997-01-01'                . '1997-01-01 00:00' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   280
     "/ week and weekday
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   281
     { '1997-W01'                  . '1996-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   282
     { '1997W01'                   . '1996-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   283
     { '1997W01-1'                 . '1996-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   284
     { '1997W011'                  . '1996-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   285
     { '1997W01'                   . '1996-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   286
     { '1997W01-2'                 . '1996-12-31 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   287
     { '1997-W01-2'                . '1996-12-31 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   288
     { '1997W012'                  . '1996-12-31 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   289
     { '2014W40'                   . '2014-09-29 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   290
     { '2014W44-4'                 . '2014-10-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   291
     { '2014W01'                   . '2013-12-30 00:00' } .     
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   292
     { '2014W01-1'                 . '2013-12-30 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   293
     { '2014W01-2'                 . '2013-12-31 00:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   294
     { '2014W01-3'                 . '2014-01-01 00:00' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   295
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   296
     { '1995-02-20 13:11'          . '1995-02-20 13:11' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   297
     { '1995-02-20 1311'           . '1995-02-20 13:11' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   298
     { '1995-02-20 13'             . '1995-02-20 13:00' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   299
     { '1995-02-20 235959'         . '1995-02-20 23:59:59' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   300
     { '19950220 235959'           . '1995-02-20 23:59:59' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   301
     { '19950220 23:59:59.9942'    . '1995-02-20 23:59:59.994' } . 
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   302
     { '19950220 235959.9942'      . '1995-02-20 23:59:59.994' } . 
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   303
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   304
     "/ local vs. UTC
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   305
     { '1995-02-20 13:11:06'       . '1995-02-20 13:11:06' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   306
     { '1995-02-20 13:11:06Z'      . '1995-02-20 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   307
     { '1995-02-20 13:11:06+01'    . '1995-02-20 13:11:06+01' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   308
     { '1995-02-20 13:11:06+01:00' . '1995-02-20 13:11:06+01' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   309
     { '1995-02-20 13:11:06+01:30' . '1995-02-20 13:11:06+01:30' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   310
     { '1995-02-20 13:11:06+0130'  . '1995-02-20 13:11:06+01:30' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   311
     { '1995-02-20 13:11:06-01'    . '1995-02-20 13:11:06-01' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   312
     { '1995-02-20 13:11:06-01:00' . '1995-02-20 13:11:06-01' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   313
     { '1995-02-20 13:11:06-01:30' . '1995-02-20 13:11:06-01:30' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   314
     { '1995-02-20 13:11:06-0130'  . '1995-02-20 13:11:06-01:30' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   315
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   316
     "/ 24 is allowed with ISO, and is 00:00 of the next day:
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   317
     { '1995-02-20 24:00:00'       . '1995-02-21 00:00' } . 
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   318
    } do:[:eachPair |
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   319
        |s1 t expected got|
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   320
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   321
        s1 := eachPair first.
1226
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   322
        t := Timestamp readIso8601FormatFrom:s1.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   323
        expected := eachPair second.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   324
        got := t asString.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   325
        self assert:(got = expected) description:'expected: ',expected,' got:',got.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   326
    ].
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   327
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   328
    "
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   329
     self new test_07_readingISO8601
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   330
    "
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   331
!
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   332
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   333
test_07b_readingISO8601UTC
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   334
    "tests reading into an utc timestamp"
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   335
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   336
    {
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   337
     { '1995-02-20T13:11:06.123'   . '1995-02-20 13:11:06.123Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   338
     { '1995-02-20T13:11:06'       . '1995-02-20 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   339
     { '1995-02T13:11:06'          . '1995-02-01 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   340
     { '1995T13:11:06'             . '1995-01-01 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   341
     { '1995T13:11'                . '1995-01-01 13:11Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   342
     { '1995T13:11.5'              . '1995-01-01 13:11:30Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   343
     { '1995T13:11,5'              . '1995-01-01 13:11:30Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   344
     { '1995T13'                   . '1995-01-01 13:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   345
     { '1995T13.25'                . '1995-01-01 13:15Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   346
     { '1995T13.333333'            . '1995-01-01 13:19:59.999Z' } .   
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   347
     { '1995'                      . '1995-01-01 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   348
     { '1995-02'                   . '1995-02-01 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   349
     { '19950204'                  . '1995-02-04 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   350
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   351
     "/ day in year
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   352
     { '1995-001'                  . '1995-01-01 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   353
     { '1995-035'                  . '1995-02-04 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   354
     { '1995035'                   . '1995-02-04 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   355
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   356
     { '1997-01-01'                . '1997-01-01 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   357
     "/ week and weekday
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   358
     { '1997-W01'                  . '1996-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   359
     { '1997W01'                   . '1996-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   360
     { '1997W01-1'                 . '1996-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   361
     { '1997W011'                  . '1996-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   362
     { '1997W01'                   . '1996-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   363
     { '1997W01-2'                 . '1996-12-31 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   364
     { '1997-W01-2'                . '1996-12-31 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   365
     { '1997W012'                  . '1996-12-31 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   366
     { '2014W40'                   . '2014-09-29 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   367
     { '2014W44-4'                 . '2014-10-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   368
     { '2014W01'                   . '2013-12-30 00:00Z' } .     
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   369
     { '2014W01-1'                 . '2013-12-30 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   370
     { '2014W01-2'                 . '2013-12-31 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   371
     { '2014W01-3'                 . '2014-01-01 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   372
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   373
     { '1995-02-20 13:11'          . '1995-02-20 13:11Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   374
     { '1995-02-20 1311'           . '1995-02-20 13:11Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   375
     { '1995-02-20 13'             . '1995-02-20 13:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   376
     { '1995-02-20 235959'         . '1995-02-20 23:59:59Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   377
     { '19950220 235959'           . '1995-02-20 23:59:59Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   378
     { '19950220 23:59:59.9942'    . '1995-02-20 23:59:59.994Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   379
     { '19950220 235959.9942'      . '1995-02-20 23:59:59.994Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   380
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   381
     "/ local vs. UTC
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   382
     { '1995-02-20 13:11:06'       . '1995-02-20 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   383
     { '1995-02-20 13:11:06Z'      . '1995-02-20 13:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   384
     { '1995-02-20 13:11:06+01'    . '1995-02-20 12:11:06Z' } .      "/ notice the changed time here!!!!!!
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   385
     { '1995-02-20 13:11:06+01:00' . '1995-02-20 12:11:06Z' } .      "/ notice the changed time here!!!!!! 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   386
     { '1995-02-20 13:11:06+01:30' . '1995-02-20 11:41:06Z' } .      "/ notice the changed time here!!!!!! 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   387
     { '1995-02-20 13:11:06+0130'  . '1995-02-20 11:41:06Z' } .      "/ notice the changed time here!!!!!! 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   388
     { '1995-02-20 13:11:06-01'    . '1995-02-20 14:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   389
     { '1995-02-20 13:11:06-01:00' . '1995-02-20 14:11:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   390
     { '1995-02-20 13:11:06-01:30' . '1995-02-20 14:41:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   391
     { '1995-02-20 13:11:06-0130'  . '1995-02-20 14:41:06Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   392
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   393
     "/ 24 is allowed with ISO, and is 00:00 of the next day:
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   394
     { '1995-02-20 24:00:00'       . '1995-02-21 00:00Z' } . 
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   395
    } do:[:eachPair |
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   396
        |s1 t expected got|
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   397
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   398
        s1 := eachPair first.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   399
        t := UtcTimestamp readIso8601FormatFrom:s1.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   400
        expected := eachPair second.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   401
        got := t asString.
b5123dd5c3da class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1225
diff changeset
   402
        self assert:(got = expected) description:'expected: ',expected,' got:',got.
1219
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   403
    ].
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   404
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   405
    "
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   406
     self new test_07_readingISO8601
369f5bac6379 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1218
diff changeset
   407
    "
1220
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   408
!
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   409
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   410
test_08_readingISO8601_date
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   411
    "/ the old ISO8601Builder tests moved to here
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   412
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   413
    | ts reader |
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   414
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   415
    reader := Timestamp::TimestampISO8601Builder.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   416
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   417
    ts := UtcTimestamp
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   418
         year: 2005 month: 6 day: 15
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   419
         hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   420
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   421
    "Test common dates"
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   422
    self assert: ts = (reader read: '20050615' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   423
    self assert: ts = (reader read: '2005-06-15'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   424
    self assert: ts = (reader read: '05-06-15'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   425
    self assert: ts = (reader read: '05-0615'  withClass:UtcTimestamp). "/ Is this correct?
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   426
    self assert: ts = (reader read: ':50615'  withClass:UtcTimestamp). "/ Should not happen and should not appear after 2009
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   427
    self assert: ts = (reader read: '200506-15'  withClass:UtcTimestamp). "/ Is this corect?
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   428
    self assert: ts = (reader read: '105-06-15'  withClass:UtcTimestamp). "/ Should not happen
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   429
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   430
    "Test week numbers"
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   431
    self assert: ts = (reader read: '05W243'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   432
    self assert: ts = (reader read: '2005W24-3'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   433
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   434
    "Test day numbers"
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   435
    self assert: ts = (reader read: '2005-166'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   436
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   437
    ts := UtcTimestamp year: 2004 month: 12 day: 31 hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   438
    self assert: ts = (reader read: '2004-366'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   439
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   440
    ts := UtcTimestamp year: 2005 month: 12 day: 31 hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   441
    self assert: ts = (reader read: '2005-365'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   442
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   443
    "Test february"
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   444
    ts := UtcTimestamp year: 2000 month: 2 day: 28 hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   445
    self assert: ts = (reader read: '20000228'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   446
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   447
    ts := UtcTimestamp year: 2000 month: 2 day: 29 hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   448
    self assert: ts = (reader read: '20000229'  withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   449
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   450
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   451
     self new test_08_readingISO8601
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   452
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   453
!
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   454
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   455
test_09_readingISO8601_edge
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   456
    "/ the old ISO8601Builder tests moved to here
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   457
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   458
    | ts reader |
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   459
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   460
    reader := Timestamp::TimestampISO8601Builder.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   461
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   462
    self should: [reader read: '20050229' withClass:UtcTimestamp] raise:ConversionError.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   463
    self should: [reader read: '20050029' withClass:UtcTimestamp] raise:ConversionError.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   464
    self should: [reader read: '20050332' withClass:UtcTimestamp] raise:ConversionError.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   465
    self should: [reader read: '2005-366' withClass:UtcTimestamp] raise:ConversionError.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   466
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   467
    ts := UtcTimestamp year: 2005 month: 1 day: 1 hour: 0 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   468
    self assert: ts = (reader read: '20041231T22-0200' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   469
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   470
    ts := UtcTimestamp year: 2004 month: 12 day: 31 hour: 22 minute: 0 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   471
    self assert: ts = (reader read: '20050101T0000+0200' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   472
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   473
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   474
     self new test_08_readingISO8601
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   475
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   476
!
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   477
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   478
test_10_readingISO8601_time
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   479
    "/ the old ISO8601Builder tests moved to here
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   480
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   481
    | ts reader |
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   482
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   483
    reader := Timestamp::TimestampISO8601Builder.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   484
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   485
    ts := UtcTimestamp  year: 2005 month: 6 day: 15 hour: 17 minute: 37 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   486
    self assert: ts = (reader read: '2005-06-15 17:37' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   487
    self assert: ts = (reader read: '20050615T1737' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   488
    self assert: ts = (reader read: '05-0615T17:3700' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   489
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   490
    ts := UtcTimestamp  year: 2005 month: 6 day: 15 hour: 17 minute: 37 second: 0 millisecond: 30.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   491
    self assert: ts = (reader read: '05-0615T17:3700.03' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   492
    self assert: ts = (reader read: '2005-06-15T17:37:00.0305486-00:00' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   493
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   494
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   495
     self new test_10_readingISO8601_time
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   496
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   497
!
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   498
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   499
test_11_readingISO8601_timezone
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   500
    "/ the old ISO8601Builder tests moved to here
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   501
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   502
    | ts reader |
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   503
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   504
    reader := Timestamp::TimestampISO8601Builder.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   505
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   506
    ts := UtcTimestamp
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   507
         year: 2005 month: 6 day: 15
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   508
         hour: 17 minute: 37 second: 0 millisecond: 0.
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   509
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   510
    self assert: ts = (reader read: '2005-06-15T17:37Z' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   511
    self assert: ts = (reader read: '2005-06-15T17:37+0000' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   512
    self assert: ts = (reader read: '2005-06-15T17:37-00:00' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   513
    self assert: ts = (reader read: '2005-06-15T15:37:00-0200' withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   514
    self assert: ts = (reader read: '2005-06-15T19:37:00+0200'withClass:UtcTimestamp).
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   515
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   516
    "
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   517
     self new test_11_readingISO8601_timezone
e8277d9a8677 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1219
diff changeset
   518
    "
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   519
!
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   520
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   521
test_12_dateQueries
1224
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   522
    |d1 d2 d3|
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   523
1225
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   524
    d1 := Date newDay:1 month:2 year:1940.    
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   525
    d2 := Date newDay:1 month:2 year:1941.   
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   526
    self assert:(d2 - d1) = 366.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   527
1225
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   528
    d1 := Date newDay:1 month:2 year:1840.
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   529
    d2 := Date newDay:1 month:2 year:1841.       
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   530
    self assert:(d2 - d1) = 366.
1225
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   531
    self assert:(d1 addDays:366) = d2.
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   532
1225
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   533
    Date leapYear:1540.    
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   534
    d1 := Date newDay:1 month:2 year:1540.  
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   535
    d2 := Date newDay:1 month:2 year:1541.   
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   536
    self assert:(d2 - d1) = 366.
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   537
1224
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   538
    d1 := Date newDay:1 year:1901.
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   539
    self assert:(d1 day = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   540
    self assert:(d1 month = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   541
    self assert:(d1 year = 1901).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   542
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   543
    "/ 1900 was NOT a leap year
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   544
    self assert:(Date leapYear:1900) not.
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   545
    "/ 2000 was a leap year
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   546
    self assert:(Date leapYear:2000).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   547
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   548
    d2 := d1 subtractDays:365.
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   549
    self assert:(d2 day = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   550
    self assert:(d2 month = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   551
    self assert:(d2 year = 1900).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   552
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   553
    d3 := d2 subtractDays:365.
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   554
    self assert:(d3 day = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   555
    self assert:(d3 month = 1).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   556
    self assert:(d3 year = 1899).
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   557
1229
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   558
    d1 := Date newDay:1 month:2 year:2540.  
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   559
    d2 := Date newDay:1 month:2 year:2541.   
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   560
    self assert:(d2 - d1) = 366.
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   561
1224
85b0ce90c09b class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1222
diff changeset
   562
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   563
    "
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   564
     self new test_12_dateQueries
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   565
    "
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   566
!
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   567
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   568
test_13_timestampQueries
1231
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   569
    |d1 d2 local utc|
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   570
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   571
    d1 := UtcTimestamp newDay:1 month:1 year:2000.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   572
    d2 := UtcTimestamp newDay:1 month:1 year:2001.   
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   573
    self assert:(d2 - d1) days = 366.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   574
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   575
    d1 := UtcTimestamp newDay:2 month:1 year:1940.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   576
    d2 := UtcTimestamp newDay:2 month:1 year:1941.   
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   577
    self assert:d1 asDate year = 1940.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   578
    self assert:d2 asDate year = 1941.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   579
    self assert:d1 asDate month = 1.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   580
    self assert:d2 asDate month = 1.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   581
    self assert:d1 asDate day = 2.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   582
    self assert:d2 asDate day = 2.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   583
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   584
    self assert:d1 asDate isLeapYear.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   585
    self assert:d2 asDate isLeapYear not.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   586
    self assert:(d2 - d1) days = 366.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   587
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   588
    d1 := UtcTimestamp newDay:1 month:1 year:1840.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   589
    d2 := UtcTimestamp newDay:1 month:1 year:1841.   
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   590
    self assert:d1 asDate isLeapYear.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   591
    self assert:d2 asDate isLeapYear not.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   592
    self assert:(d2 - d1) days = 366.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   593
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   594
    self assert:(d1 addDays:366) = d2.
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   595
1225
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   596
    d1 := UtcTimestamp newDay:1 month:1 year:1540.
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   597
    d2 := UtcTimestamp newDay:1 month:1 year:1541.   
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   598
    self assert:d1 asDate isLeapYear.
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   599
    self assert:d2 asDate isLeapYear not.
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   600
    self assert:(d2 - d1) days = 366.
67d011bbcad5 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   601
1227
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   602
    d1 := Timestamp newDay:1 month:1 year:1540.
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   603
    d2 := Timestamp newDay:1 month:1 year:1541.   
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   604
    self assert:d1 asDate isLeapYear.
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   605
    self assert:d2 asDate isLeapYear not.
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   606
    self assert:(d2 - d1) days = 366.
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   607
1229
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   608
    d1 := Timestamp newDay:1 month:1 year:2038.
1230
a26cae3351a6 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   609
    d2 := Timestamp newDay:1 month:1 year:2039.   
a26cae3351a6 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   610
    self assert:d1 asDate isLeapYear not.
1229
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   611
    self assert:d2 asDate isLeapYear not.
1230
a26cae3351a6 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   612
    self assert:(d2 - d1) days = 365.
1229
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   613
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   614
    d1 := Timestamp newDay:1 month:1 year:2540.
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   615
    d2 := Timestamp newDay:1 month:1 year:2541.   
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   616
    self assert:d1 asDate isLeapYear.
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   617
    self assert:d2 asDate isLeapYear not.
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   618
    self assert:(d2 - d1) days = 366.
881b11022fea class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1227
diff changeset
   619
1231
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   620
    d1 := Timestamp newDay:1 month:1 year:3540.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   621
    d2 := Timestamp newDay:1 month:1 year:3541.   
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   622
    self assert:d1 asDate isLeapYear.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   623
    self assert:d2 asDate isLeapYear not.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   624
    self assert:(d2 - d1) days = 366.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   625
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   626
    "/ local time vs. utc time
1231
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   627
    local := Timestamp newDay:1 month:1 year:1940.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   628
    utc := UtcTimestamp newDay:1 month:1 year:1940.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   629
    self assert:(local asUtcTimestamp - utc asUtcTimestamp) asSeconds = Timestamp now utcOffset.
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   630
1227
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   631
    "/ tz time vs. utc time
1231
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   632
    utc := Timestamp readFrom:'20000102T123000Z'.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   633
    local := Timestamp readFrom:'20000102T123000+02'.  
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   634
    self assert:(utc - local) asSeconds = 7200.
1227
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   635
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   636
    "/ tz time vs. utc time
1231
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   637
    utc := UtcTimestamp readFrom:'20000102T123000Z'.
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   638
    local := UtcTimestamp readFrom:'20000102T123000-02'.  
f07f482db8d0 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1230
diff changeset
   639
    self assert:(utc - local) asSeconds = -7200.
1227
d303d4c8b01d class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1226
diff changeset
   640
1222
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   641
    "
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   642
     self new test_13_timestampQueries
b476e1efa7f1 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1220
diff changeset
   643
    "
1232
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   644
!
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   645
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   646
test_14_arithmetic
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   647
    |t1 t2 t3 s|
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   648
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   649
    t1 := UtcTimestamp newDay:1 month:1 year:2000.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   650
    t2 := t1 addDays:1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   651
    self assert:(t2 - t1) days = 1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   652
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   653
    t2 := t1 addHours:1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   654
    self assert:(t2 - t1) hours = 1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   655
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   656
    t2 := t1 addSeconds:1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   657
    self assert:(t2 - t1) seconds = 1.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   658
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   659
    t1 := UtcTimestamp readFrom:'20000102T133045Z'.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   660
    t2 := t1 addDays:1.            
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   661
    self assert:(t2 printString = '2000-01-03 13:30:45Z').
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   662
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   663
    t1 := Timestamp readFrom:'20000102T133045+01'.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   664
    t2 := t1 addDays:1.            
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   665
    self assert:(t2 printString = '2000-01-03 13:30:45+01').
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   666
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   667
    t1 := UtcTimestamp readFrom:'20000102T133045Z'.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   668
    t2 := Timestamp readFrom:'20000102T133045Z'. 
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   669
    self assert:(t1 = t2).
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   670
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   671
    t2 := Timestamp readFrom:'20000102T143045+01'. 
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   672
    self assert:(t1 = t2).
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   673
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   674
    t2 := Timestamp readFrom:'20000102T123045-01'. 
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   675
    self assert:(t1 = t2).
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   676
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   677
    t2 := Timestamp readFrom:'20000102T123045'.     "/ a local one
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   678
    s := t2 storeString.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   679
    t3 := Timestamp readFrom:s.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   680
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   681
    self assert:(t2 = t3).
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   682
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   683
    t1 := TZTimestamp readFrom:'20000102T133045Z'.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   684
    self assert:(t1 printString = '2000-01-02 13:30:45+00').
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   685
    t1 := UtcTimestamp readFrom:'20000102T133045Z'.
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   686
    self assert:(t1 printString = '2000-01-02 13:30:45Z').
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   687
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   688
    "
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   689
     self new test_14_arithmetic         
01e685de57e3 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   690
    "
1233
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   691
!
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   692
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   693
test_15_misc
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   694
    #( 1700  1800  1900  2100  2200 ) do:[:y |
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   695
        self assert:(Date leapYear:y) not
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   696
    ].
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   697
    #( 1600  2000 2400 ) do:[:y |
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   698
        self assert:(Date leapYear:y) 
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   699
    ].
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   700
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   701
    "
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   702
     self new test_15_misc         
c72fec37a673 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   703
    "
1244
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   704
!
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   705
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   706
test_16_readingOtherFormats
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   707
    | ts |
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   708
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   709
    "/ european format
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   710
    ts := Timestamp readFrom: '16-09-2013 00:42:35' readStream.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   711
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   712
    self assert: ts day = 16.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   713
    self assert: ts month = 9.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   714
    self assert: ts year = 2013.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   715
    self assert: ts hours = 0.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   716
    self assert: ts minutes = 42.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   717
    self assert: ts seconds = 35.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   718
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   719
    "/ us format
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   720
    ts := Timestamp readFrom: '11/21/2013 00:42:35' readStream.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   721
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   722
    self assert: ts day = 21.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   723
    self assert: ts month = 11.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   724
    self assert: ts year = 2013.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   725
    self assert: ts hours = 0.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   726
    self assert: ts minutes = 42.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   727
    self assert: ts seconds = 35.
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   728
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   729
    "
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   730
     self new test_16_readingOtherFormats
850ca3a30a23 class: RegressionTests::TimeAndDateTest
Claus Gittinger <cg@exept.de>
parents: 1233
diff changeset
   731
    "
346
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
! !
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
!TimeAndDateTest class methodsFor:'documentation'!
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
version
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
    ^ '$Header$'
737
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   738
!
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   739
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   740
version_CVS
06d8d2821c46 changed: #test_03_calenderWeek
Claus Gittinger <cg@exept.de>
parents: 736
diff changeset
   741
    ^ '$Header$'
346
b2a1db91f556 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   742
! !
1077
9cb704988db8 category change
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
   743