|  | 
| 192 | 192 |         dt1 = dt1 + Dates.Day(1) | 
| 193 | 193 |     end | 
| 194 | 194 | end | 
|  | 195 | +@testset "ISO year utils" begin | 
|  | 196 | +    # Tests from https://www.epochconverter.com/weeks | 
|  | 197 | +    @test Dates.weeksinyear(Dates.Year(2023)) == 52 | 
|  | 198 | +    @test Dates.weeksinyear(Dates.Year(2022)) == 52 | 
|  | 199 | +    @test Dates.weeksinyear(Dates.Year(2021)) == 52 | 
|  | 200 | +    @test Dates.weeksinyear(Dates.Year(2020)) == 53 | 
|  | 201 | +    @test Dates.weeksinyear(Dates.Year(2019)) == 52 | 
|  | 202 | +    @test Dates.weeksinyear(Dates.Year(2018)) == 52 | 
|  | 203 | +    @test Dates.weeksinyear(Dates.Year(2017)) == 52 | 
|  | 204 | +    @test Dates.weeksinyear(Dates.Year(2016)) == 52 | 
|  | 205 | +    @test Dates.weeksinyear(Dates.Year(2015)) == 53 | 
|  | 206 | +    @test Dates.weeksinyear(Dates.Year(2014)) == 52 | 
|  | 207 | +    @test Dates.weeksinyear(Dates.Year(2013)) == 52 | 
|  | 208 | +    @test Dates.weeksinyear(Dates.Year(2012)) == 52 | 
|  | 209 | +    @test Dates.weeksinyear(Dates.Year(2011)) == 52 | 
|  | 210 | +    @test Dates.weeksinyear(Dates.Year(2010)) == 52 | 
|  | 211 | +    @test Dates.weeksinyear(Dates.Year(2009)) == 53 | 
|  | 212 | + | 
|  | 213 | +    # From python datetime isocalendar | 
|  | 214 | +    @test Dates.isoweekdate(Dates.Date(2023, 03, 06)) == (2023, 10, 1) | 
|  | 215 | +    @test Dates.isoweekdate(Dates.Date(2023, 03, 07)) == (2023, 10, 2) | 
|  | 216 | +    @test Dates.isoweekdate(Dates.Date(2023, 03, 08)) == (2023, 10, 3) | 
|  | 217 | +    @test Dates.isoweekdate(Dates.Date(2022, 12, 29)) == (2022, 52, 4) | 
|  | 218 | +    @test Dates.isoweekdate(Dates.Date(2022, 12, 30)) == (2022, 52, 5) | 
|  | 219 | +    @test Dates.isoweekdate(Dates.Date(2022, 12, 31)) == (2022, 52, 6) | 
|  | 220 | +    @test Dates.isoweekdate(Dates.Date(2023, 01, 01)) == (2022, 52, 7) | 
|  | 221 | +    @test Dates.isoweekdate(Dates.Date(2023, 01, 02)) == (2023, 1, 1) | 
|  | 222 | +    @test Dates.isoweekdate(Dates.Date(2023, 01, 03)) == (2023, 1, 2) | 
|  | 223 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 28)) == (2021, 52, 2) | 
|  | 224 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 29)) == (2021, 52, 3) | 
|  | 225 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 30)) == (2021, 52, 4) | 
|  | 226 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 31)) == (2021, 52, 5) | 
|  | 227 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 01)) == (2021, 52, 6) | 
|  | 228 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 02)) == (2021, 52, 7) | 
|  | 229 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 03)) == (2022, 1, 1) | 
|  | 230 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 04)) == (2022, 1, 2) | 
|  | 231 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 05)) == (2022, 1, 3) | 
|  | 232 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 06)) == (2022, 1, 4) | 
|  | 233 | +    @test Dates.isoweekdate(Dates.Date(2020, 12, 29)) == (2020, 53, 2) | 
|  | 234 | +    @test Dates.isoweekdate(Dates.Date(2020, 12, 30)) == (2020, 53, 3) | 
|  | 235 | +    @test Dates.isoweekdate(Dates.Date(2020, 12, 31)) == (2020, 53, 4) | 
|  | 236 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 01)) == (2020, 53, 5) | 
|  | 237 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 02)) == (2020, 53, 6) | 
|  | 238 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 03)) == (2020, 53, 7) | 
|  | 239 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 04)) == (2021, 1, 1) | 
|  | 240 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 05)) == (2021, 1, 2) | 
|  | 241 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 31)) == (2021, 52, 5) | 
|  | 242 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 01)) == (2021, 52, 6) | 
|  | 243 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 02)) == (2021, 52, 7) | 
|  | 244 | +    @test Dates.isoweekdate(Dates.Date(2020, 12, 31)) == (2020, 53, 4) | 
|  | 245 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 01)) == (2020, 53, 5) | 
|  | 246 | +    @test Dates.isoweekdate(Dates.Date(2021, 01, 02)) == (2020, 53, 6) | 
|  | 247 | +    @test Dates.isoweekdate(Dates.Date(2021, 12, 31)) == (2021, 52, 5) | 
|  | 248 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 01)) == (2021, 52, 6) | 
|  | 249 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 02)) == (2021, 52, 7) | 
|  | 250 | +    @test Dates.isoweekdate(Dates.Date(2022, 01, 03)) == (2022, 1, 1) | 
|  | 251 | +    @test Dates.isoweekdate(Dates.Date(2019, 12, 31)) == (2020, 1, 2) | 
|  | 252 | +    @test Dates.isoweekdate(Dates.Date(2020, 01, 01)) == (2020, 1, 3) | 
|  | 253 | +    @test Dates.isoweekdate(Dates.Date(2020, 01, 02)) == (2020, 1, 4) | 
|  | 254 | +    @test Dates.isoweekdate(Dates.Date(2018, 12, 31)) == (2019, 1, 1) | 
|  | 255 | +    @test Dates.isoweekdate(Dates.Date(2019, 01, 01)) == (2019, 1, 2) | 
|  | 256 | +    @test Dates.isoweekdate(Dates.Date(2019, 01, 02)) == (2019, 1, 3) | 
|  | 257 | +end | 
| 195 | 258 | @testset "Vectorized accessors" begin | 
| 196 | 259 |     a = Dates.Date(2014, 1, 1) | 
| 197 | 260 |     dr = [a, a, a, a, a, a, a, a, a, a] | 
|  | 
0 commit comments