summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/test_parse_8601.py
blob: 1f838a83214d80984119f6148e9068314af01c1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from __future__ import annotations

import pytest

from pendulum.parsing.iso8601 import parse_iso8601


@pytest.mark.benchmark(group="Parsing")
def test_parse_iso8601() -> None:
    # Date
    parse_iso8601("2016")
    parse_iso8601("2016-10")
    parse_iso8601("2016-10-06")
    parse_iso8601("20161006")

    # Time
    parse_iso8601("201610")

    # Datetime
    parse_iso8601("2016-10-06T12:34:56.123456")
    parse_iso8601("2016-10-06T12:34:56.123")
    parse_iso8601("2016-10-06T12:34:56.000123")
    parse_iso8601("2016-10-06T12")
    parse_iso8601("2016-10-06T123456")
    parse_iso8601("2016-10-06T123456.123456")
    parse_iso8601("20161006T123456.123456")
    parse_iso8601("20161006 123456.123456")

    # Datetime with offset
    parse_iso8601("2016-10-06T12:34:56.123456+05:30")
    parse_iso8601("2016-10-06T12:34:56.123456+0530")
    parse_iso8601("2016-10-06T12:34:56.123456-05:30")
    parse_iso8601("2016-10-06T12:34:56.123456-0530")
    parse_iso8601("2016-10-06T12:34:56.123456+05")
    parse_iso8601("2016-10-06T12:34:56.123456-05")
    parse_iso8601("20161006T123456,123456-05")
    parse_iso8601("2016-10-06T12:34:56.123456789+05:30")

    # Ordinal date
    parse_iso8601("2012-007")
    parse_iso8601("2012007")
    parse_iso8601("2017-079")

    # Week date
    parse_iso8601("2012-W05")
    parse_iso8601("2008-W39-6")
    parse_iso8601("2009-W53-7")
    parse_iso8601("2009-W01-1")

    # Week date wth time
    parse_iso8601("2008-W39-6T09")