Skip to content

Commit

Permalink
Merge pull request #57 from ixc/50_add_performance_tests
Browse files Browse the repository at this point in the history
50 add performance tests
  • Loading branch information
aweakley authored May 28, 2024
2 parents a6c869e + 6c0e239 commit d550274
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 2 deletions.
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
permissions:
checks: write
contents: write
# deployments permission to deploy GitHub pages website
deployments: write
pull-requests: write


Expand Down Expand Up @@ -85,3 +87,39 @@ jobs:
echo "Coverage Tests - ${{ steps.coverageComment.outputs.tests }}"
echo "Coverage Time - ${{ steps.coverageComment.outputs.time }}"
echo "Not Success Test Info - ${{ steps.coverageComment.outputs.notSuccessTestInfo }}"
- name: Run benchmarks
run: |
pytest -m benchmark --benchmark-json=./output.json
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: ${{ runner.os }}-benchmark

- name: Publish benchmark results
uses: benchmark-action/github-action-benchmark@v1
if: github.event_name != 'pull_request'
with:
tool: 'pytest'
auto-push: true
comment-always: true
output-file-path: output.json
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
save-data-file: true
summary-always: true

- name: Comment on benchmark results without publishing
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'pytest'
auto-push: false
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-always: true
output-file-path: output.json
comment-on-alert: false
save-data-file: true
summary-always: true
external-data-json-path: ./cache/benchmark-data.json
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,7 @@ Since the `EDTFField` and the `_earliest` and `_latest` field values are set aut

### Running tests
- From `python-edtf`, run the unit tests: `pytest`
- From `python-edtf`, run `pytest -m benchmark` to run the benchmarks (published [here]( https://ixc.github.io/python-edtf/dev/bench/))
- From `python-edtf/edtf_django_tests`, run the integration tests: `python manage.py test edtf_integration`
- To run CI locally, use `act`, e.g. `act pull_request` or `act --pull=false --container-architecture linux/amd64`. Some steps may require a Github PAT: `act pull_request --container-architecture linux/amd64 --pull=false -s GITHUB_TOKEN=<your PAT>`

Expand Down
2 changes: 2 additions & 0 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
-r requirements.txt # Include all main requirements
django>=4.2,<5.0
pytest
pytest-benchmark
pytest-django
ruff
pre-commit
24 changes: 24 additions & 0 deletions edtf/natlang/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,27 @@ def test_natlang(input_text, expected_output):
assert (
result == expected_output
), f"Failed for input: {input_text} - expected {expected_output}, got {result}"


@pytest.mark.benchmark
@pytest.mark.parametrize(
"input_text,expected_output",
[
("23rd Dynasty", None),
("January 2008", "2008-01"),
("ca1860", "1860~"),
("uncertain: approx 1862", "1862%"),
("January", "XXXX-01"),
("Winter 1872", "1872-24"),
("before approx January 18 1928", "/1928-01-18~"),
("birthday in 1872", "1872"),
("1270 CE", "1270"),
("2nd century bce", "-01XX"),
("1858/1860", "[1858, 1860]"),
],
)
def test_benchmark_natlang(benchmark, input_text, expected_output):
"""
Benchmark selected natural language conversions
"""
benchmark(text_to_edtf, input_text)
10 changes: 10 additions & 0 deletions edtf/parser/grammar.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# ruff: noqa: E402 I001

# It's recommended to `enablePackrat()` immediately after importing pyparsing
# https://github.com/pyparsing/pyparsing/wiki/Performance-Tips

import pyparsing

pyparsing.ParserElement.enablePackrat()

from pyparsing import (
Combine,
NotAny,
Expand All @@ -13,6 +22,7 @@
)
from pyparsing import Literal as L


from edtf.parser.edtf_exceptions import EDTFParseException

# (* ************************** Level 0 *************************** *)
Expand Down
21 changes: 21 additions & 0 deletions edtf/parser/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,20 @@
("2001-34", ("2001-04-01", "2001-06-30")),
)

BENCHMARK_EXAMPLES = (
"2001-02-03",
"2008-12",
"2008",
"-0999",
"2004-01-01T10:10:10+05:00",
"-2005/-1999-02",
"/2006",
"?2004-%06",
"[1667, 1760-12]",
"Y3388E2S3",
"2001-29",
)

BAD_EXAMPLES = (
# parentheses are not used for group qualification in the 2018 spec
None,
Expand Down Expand Up @@ -340,3 +354,10 @@ def test_comparisons():
assert d4 == d5
assert d1 < d5
assert d1 > d6


@pytest.mark.benchmark
@pytest.mark.parametrize("test_input", BENCHMARK_EXAMPLES)
def test_benchmark_parser(benchmark, test_input):
"""Benchmark parsing of selected EDTF strings."""
benchmark(parse, test_input)
8 changes: 6 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ test = [
"django>=4.2,<5.0",
"pytest",
"pytest-django",
"pytest-benchmark",
"ruff",
"pre-commit",
"coverage",
Expand Down Expand Up @@ -81,8 +82,11 @@ legacy_tox_ini = """
python_files = ["tests.py", "test_*.py", "*_test.py", "*_tests.py"]
python_classes = ["Test*", "*Tests"]
python_functions = ["test_*"]
addopts = "--ignore=edtf_django_tests/ --cov=edtf"
plugins = ["pytest_cov"]
markers = [
"benchmark: mark a test as a benchmark",
]
addopts = "--ignore=edtf_django_tests/ --cov=edtf -m 'not benchmark'"
plugins = ["pytest_cov", "pytest_benchmark"]

[tool.coverage.run]
# we run the edtf_integration tests but only care about them testing fields.py in the main package
Expand Down

10 comments on commit d550274

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/edtf
   __init__.py40100% 
   appsettings.py24483%10–13
   convert.py634430%11–19, 21, 38–39, 52, 61, 72–73, 75, 104, 107–109, 113, 117, 136–156
   fields.py922177%88, 93, 95, 98–99, 101–102, 104, 109, 113–116, 155, 157, 159, 169–170, 174–175, 183
   jdutil.py986632%37, 55, 91–92, 105, 152, 154–155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 251–252, 254–255, 257–258, 260, 262, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py71710%3–4, 6, 9–13, 16–21, 24–25, 28–29, 32–37, 40–44, 52–53, 56–62, 65–71, 74–79, 82–85, 88–91, 94–97, 100–107
/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/edtf/natlang
   __init__.py20100% 
   en.py1487152%34, 44–45, 47–50, 55–56, 59–62, 64, 68–71, 73–74, 76–78, 86–88, 90–94, 104, 106, 119, 126, 157–159, 161–166, 169–171, 173–178, 202–205, 209, 224, 226–227, 229, 246, 248, 256, 258, 260, 262, 267, 270, 276
   tests.py10100%3, 5, 10, 179, 184–185, 190–191, 207, 211
/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123992%147–150, 346, 350–353
   parser_classes.py54827749%69, 71, 78–81, 83–84, 86–87, 110–112, 116, 119, 122, 181, 183, 190, 192, 198–202, 207–213, 220–224, 229–235, 246, 257, 286, 290, 302–304, 309, 317–319, 322, 337–338, 342, 371–375, 378, 383–384, 387, 390, 393, 396–400, 403–407, 427–429, 453, 457, 462, 464, 478, 485, 501, 510–512, 514–516, 519–520, 522, 525–528, 530, 532–534, 536, 540, 549–551, 555, 557, 560–562, 566, 568, 573–576, 581–582, 587–588, 590, 593, 596–598, 600, 603, 606–609, 611–617, 624–627, 629–635, 644–645, 648, 651, 654–656, 658, 666, 685–687, 689–692, 694–695, 697–698, 700, 703–704, 706–707, 709, 711, 713–714, 716, 718–723, 725, 727, 729–730, 732, 735–737, 740–742, 745–747, 755, 757–758, 761–762, 765–766, 769–770, 772–773, 777, 781–782, 785, 790–791, 795–796, 798–806, 808, 818–819, 821, 823–824, 826, 829, 834, 839, 845–846, 849, 852, 855, 857–859, 861, 866–867, 869, 878–879, 882, 885, 888–889, 891, 900–901, 903–905, 907, 916–918, 923, 926–927, 929, 934
   tests.py76760%3–4, 6, 8–10, 26, 219, 233, 255, 257–260, 262–264, 266–270, 273–274, 276–277, 280–282, 285–286, 289–292, 295, 298–302, 305, 308, 311, 314–319, 322, 325, 328, 333–334, 336–337, 340, 342–347, 349–356, 359–361, 363
edtf
   __init__.py40100% 
   appsettings.py24291%12–13
   convert.py631182%11–19, 21, 73
   fields.py92920%1, 3–6, 8–10, 12, 20, 26, 28, 30–32, 35–36, 48–49, 64, 66, 69, 71–74, 76–80, 82–83, 85, 87–88, 90, 92–93, 95, 97–99, 101–102, 104, 106–109, 111, 113–116, 118, 127–129, 132, 135, 141–142, 144–146, 149, 153, 155, 157, 159, 162–175, 181, 183–184, 186–187, 192–193
   jdutil.py984455%37, 55, 91–92, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py710100% 
edtf/natlang
   __init__.py20100% 
   en.py1481192%56, 59, 119, 165–166, 177–178, 204–205, 209, 276
   tests.py10190%211
edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123199%352
   parser_classes.py5488484%110–112, 119, 122, 183, 189–193, 200–202, 209–213, 222–224, 229–235, 246, 337–338, 371–375, 378, 393, 396–400, 403–407, 427–429, 540, 603, 609, 613, 627, 631, 704, 722–723, 725, 730, 736, 741, 746, 782, 785, 791, 796, 798–806, 821, 826, 903, 907, 934
   tests.py76198%363
TOTAL253289664% 

Tests Skipped Failures Errors Time
249 0 💤 0 ❌ 0 🔥 2.584s ⏱️

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/edtf
   __init__.py40100% 
   appsettings.py24483%10–13
   convert.py634430%11–19, 21, 38–39, 52, 61, 72–73, 75, 104, 107–109, 113, 117, 136–156
   fields.py922177%88, 93, 95, 98–99, 101–102, 104, 109, 113–116, 155, 157, 159, 169–170, 174–175, 183
   jdutil.py986632%37, 55, 91–92, 105, 152, 154–155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 251–252, 254–255, 257–258, 260, 262, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py71710%3–4, 6, 9–13, 16–21, 24–25, 28–29, 32–37, 40–44, 52–53, 56–62, 65–71, 74–79, 82–85, 88–91, 94–97, 100–107
/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/edtf/natlang
   __init__.py20100% 
   en.py1487152%34, 44–45, 47–50, 55–56, 59–62, 64, 68–71, 73–74, 76–78, 86–88, 90–94, 104, 106, 119, 126, 157–159, 161–166, 169–171, 173–178, 202–205, 209, 224, 226–227, 229, 246, 248, 256, 258, 260, 262, 267, 270, 276
   tests.py10100%3, 5, 10, 179, 184–185, 190–191, 207, 211
/opt/hostedtoolcache/Python/3.12.3/x64/lib/python3.12/site-packages/edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123992%147–150, 346, 350–353
   parser_classes.py54827749%69, 71, 78–81, 83–84, 86–87, 110–112, 116, 119, 122, 181, 183, 190, 192, 198–202, 207–213, 220–224, 229–235, 246, 257, 286, 290, 302–304, 309, 317–319, 322, 337–338, 342, 371–375, 378, 383–384, 387, 390, 393, 396–400, 403–407, 427–429, 453, 457, 462, 464, 478, 485, 501, 510–512, 514–516, 519–520, 522, 525–528, 530, 532–534, 536, 540, 549–551, 555, 557, 560–562, 566, 568, 573–576, 581–582, 587–588, 590, 593, 596–598, 600, 603, 606–609, 611–617, 624–627, 629–635, 644–645, 648, 651, 654–656, 658, 666, 685–687, 689–692, 694–695, 697–698, 700, 703–704, 706–707, 709, 711, 713–714, 716, 718–723, 725, 727, 729–730, 732, 735–737, 740–742, 745–747, 755, 757–758, 761–762, 765–766, 769–770, 772–773, 777, 781–782, 785, 790–791, 795–796, 798–806, 808, 818–819, 821, 823–824, 826, 829, 834, 839, 845–846, 849, 852, 855, 857–859, 861, 866–867, 869, 878–879, 882, 885, 888–889, 891, 900–901, 903–905, 907, 916–918, 923, 926–927, 929, 934
   tests.py76760%3–4, 6, 8–10, 26, 219, 233, 255, 257–260, 262–264, 266–270, 273–274, 276–277, 280–282, 285–286, 289–292, 295, 298–302, 305, 308, 311, 314–319, 322, 325, 328, 333–334, 336–337, 340, 342–347, 349–356, 359–361, 363
edtf
   __init__.py40100% 
   appsettings.py24291%12–13
   convert.py631182%11–19, 21, 73
   fields.py92920%1, 3–6, 8–10, 12, 20, 26, 28, 30–32, 35–36, 48–49, 64, 66, 69, 71–74, 76–80, 82–83, 85, 87–88, 90, 92–93, 95, 97–99, 101–102, 104, 106–109, 111, 113–116, 118, 127–129, 132, 135, 141–142, 144–146, 149, 153, 155, 157, 159, 162–175, 181, 183–184, 186–187, 192–193
   jdutil.py984455%37, 55, 91–92, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py710100% 
edtf/natlang
   __init__.py20100% 
   en.py1481192%56, 59, 119, 165–166, 177–178, 204–205, 209, 276
   tests.py10190%211
edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123199%352
   parser_classes.py5488484%110–112, 119, 122, 183, 189–193, 200–202, 209–213, 222–224, 229–235, 246, 337–338, 371–375, 378, 393, 396–400, 403–407, 427–429, 540, 603, 609, 613, 627, 631, 704, 722–723, 725, 730, 736, 741, 746, 782, 785, 791, 796, 798–806, 821, 826, 903, 907, 934
   tests.py76198%363
TOTAL253289664% 

Tests Skipped Failures Errors Time
249 0 💤 0 ❌ 0 🔥 3.856s ⏱️

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/edtf
   __init__.py40100% 
   appsettings.py24483%10–13
   convert.py634430%11–19, 21, 38–39, 52, 61, 72–73, 75, 104, 107–109, 113, 117, 136–156
   fields.py922177%88, 93, 95, 98–99, 101–102, 104, 109, 113–116, 155, 157, 159, 169–170, 174–175, 183
   jdutil.py986632%37, 55, 91–92, 105, 152, 154–155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 251–252, 254–255, 257–258, 260, 262, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py71710%3–4, 6, 9–13, 16–21, 24–25, 28–29, 32–37, 40–44, 52–53, 56–62, 65–71, 74–79, 82–85, 88–91, 94–97, 100–107
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/edtf/natlang
   __init__.py20100% 
   en.py1487152%34, 44–45, 47–50, 55–56, 59–62, 64, 68–71, 73–74, 76–78, 86–88, 90–94, 104, 106, 119, 126, 157–159, 161–166, 169–171, 173–178, 202–205, 209, 224, 226–227, 229, 246, 248, 256, 258, 260, 262, 267, 270, 276
   tests.py10100%3, 5, 10, 179, 184–185, 190–191, 207, 211
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123992%147–150, 346, 350–353
   parser_classes.py54827749%69, 71, 78–81, 83–84, 86–87, 110–112, 116, 119, 122, 181, 183, 190, 192, 198–202, 207–213, 220–224, 229–235, 246, 257, 286, 290, 302–304, 309, 317–319, 322, 337–338, 342, 371–375, 378, 383–384, 387, 390, 393, 396–400, 403–407, 427–429, 453, 457, 462, 464, 478, 485, 501, 510–512, 514–516, 519–520, 522, 525–528, 530, 532–534, 536, 540, 549–551, 555, 557, 560–562, 566, 568, 573–576, 581–582, 587–588, 590, 593, 596–598, 600, 603, 606–609, 611–617, 624–627, 629–635, 644–645, 648, 651, 654–656, 658, 666, 685–687, 689–692, 694–695, 697–698, 700, 703–704, 706–707, 709, 711, 713–714, 716, 718–723, 725, 727, 729–730, 732, 735–737, 740–742, 745–747, 755, 757–758, 761–762, 765–766, 769–770, 772–773, 777, 781–782, 785, 790–791, 795–796, 798–806, 808, 818–819, 821, 823–824, 826, 829, 834, 839, 845–846, 849, 852, 855, 857–859, 861, 866–867, 869, 878–879, 882, 885, 888–889, 891, 900–901, 903–905, 907, 916–918, 923, 926–927, 929, 934
   tests.py76760%3–4, 6, 8–10, 26, 219, 233, 255, 257–260, 262–264, 266–270, 273–274, 276–277, 280–282, 285–286, 289–292, 295, 298–302, 305, 308, 311, 314–319, 322, 325, 328, 333–334, 336–337, 340, 342–347, 349–356, 359–361, 363
edtf
   __init__.py40100% 
   appsettings.py24291%12–13
   convert.py631182%11–19, 21, 73
   fields.py92920%1, 3–6, 8–10, 12, 20, 26, 28, 30–32, 35–36, 48–49, 64, 66, 69, 71–74, 76–80, 82–83, 85, 87–88, 90, 92–93, 95, 97–99, 101–102, 104, 106–109, 111, 113–116, 118, 127–129, 132, 135, 141–142, 144–146, 149, 153, 155, 157, 159, 162–175, 181, 183–184, 186–187, 192–193
   jdutil.py984455%37, 55, 91–92, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py710100% 
edtf/natlang
   __init__.py20100% 
   en.py1481192%56, 59, 119, 165–166, 177–178, 204–205, 209, 276
   tests.py10190%211
edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123199%352
   parser_classes.py5488484%110–112, 119, 122, 183, 189–193, 200–202, 209–213, 222–224, 229–235, 246, 337–338, 371–375, 378, 393, 396–400, 403–407, 427–429, 540, 603, 609, 613, 627, 631, 704, 722–723, 725, 730, 736, 741, 746, 782, 785, 791, 796, 798–806, 821, 826, 903, 907, 934
   tests.py76198%363
TOTAL253289664% 

Tests Skipped Failures Errors Time
249 0 💤 0 ❌ 0 🔥 2.478s ⏱️

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/edtf
   __init__.py40100% 
   appsettings.py24483%10–13
   convert.py634430%11–19, 21, 38–39, 52, 61, 72–73, 75, 104, 107–109, 113, 117, 136–156
   fields.py922177%88, 93, 95, 98–99, 101–102, 104, 109, 113–116, 155, 157, 159, 169–170, 174–175, 183
   jdutil.py986632%37, 55, 91–92, 105, 152, 154–155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 251–252, 254–255, 257–258, 260, 262, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py71710%3–4, 6, 9–13, 16–21, 24–25, 28–29, 32–37, 40–44, 52–53, 56–62, 65–71, 74–79, 82–85, 88–91, 94–97, 100–107
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/edtf/natlang
   __init__.py20100% 
   en.py1487152%34, 44–45, 47–50, 55–56, 59–62, 64, 68–71, 73–74, 76–78, 86–88, 90–94, 104, 106, 119, 126, 157–159, 161–166, 169–171, 173–178, 202–205, 209, 224, 226–227, 229, 246, 248, 256, 258, 260, 262, 267, 270, 276
   tests.py10100%3, 5, 10, 179, 184–185, 190–191, 207, 211
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123992%147–150, 346, 350–353
   parser_classes.py54827749%69, 71, 78–81, 83–84, 86–87, 110–112, 116, 119, 122, 181, 183, 190, 192, 198–202, 207–213, 220–224, 229–235, 246, 257, 286, 290, 302–304, 309, 317–319, 322, 337–338, 342, 371–375, 378, 383–384, 387, 390, 393, 396–400, 403–407, 427–429, 453, 457, 462, 464, 478, 485, 501, 510–512, 514–516, 519–520, 522, 525–528, 530, 532–534, 536, 540, 549–551, 555, 557, 560–562, 566, 568, 573–576, 581–582, 587–588, 590, 593, 596–598, 600, 603, 606–609, 611–617, 624–627, 629–635, 644–645, 648, 651, 654–656, 658, 666, 685–687, 689–692, 694–695, 697–698, 700, 703–704, 706–707, 709, 711, 713–714, 716, 718–723, 725, 727, 729–730, 732, 735–737, 740–742, 745–747, 755, 757–758, 761–762, 765–766, 769–770, 772–773, 777, 781–782, 785, 790–791, 795–796, 798–806, 808, 818–819, 821, 823–824, 826, 829, 834, 839, 845–846, 849, 852, 855, 857–859, 861, 866–867, 869, 878–879, 882, 885, 888–889, 891, 900–901, 903–905, 907, 916–918, 923, 926–927, 929, 934
   tests.py76760%3–4, 6, 8–10, 26, 219, 233, 255, 257–260, 262–264, 266–270, 273–274, 276–277, 280–282, 285–286, 289–292, 295, 298–302, 305, 308, 311, 314–319, 322, 325, 328, 333–334, 336–337, 340, 342–347, 349–356, 359–361, 363
edtf
   __init__.py40100% 
   appsettings.py24291%12–13
   convert.py631182%11–19, 21, 73
   fields.py92920%1, 3–6, 8–10, 12, 20, 26, 28, 30–32, 35–36, 48–49, 64, 66, 69, 71–74, 76–80, 82–83, 85, 87–88, 90, 92–93, 95, 97–99, 101–102, 104, 106–109, 111, 113–116, 118, 127–129, 132, 135, 141–142, 144–146, 149, 153, 155, 157, 159, 162–175, 181, 183–184, 186–187, 192–193
   jdutil.py984455%37, 55, 91–92, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py710100% 
edtf/natlang
   __init__.py20100% 
   en.py1481192%56, 59, 119, 165–166, 177–178, 204–205, 209, 276
   tests.py10190%211
edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123199%352
   parser_classes.py5488484%110–112, 119, 122, 183, 189–193, 200–202, 209–213, 222–224, 229–235, 246, 337–338, 371–375, 378, 393, 396–400, 403–407, 427–429, 540, 603, 609, 613, 627, 631, 704, 722–723, 725, 730, 736, 741, 746, 782, 785, 791, 796, 798–806, 821, 826, 903, 907, 934
   tests.py76198%363
TOTAL253289664% 

Tests Skipped Failures Errors Time
249 0 💤 0 ❌ 0 🔥 2.569s ⏱️

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/edtf
   __init__.py40100% 
   appsettings.py24483%10–13
   convert.py634430%11–19, 21, 38–39, 52, 61, 72–73, 75, 104, 107–109, 113, 117, 136–156
   fields.py922177%88, 93, 95, 98–99, 101–102, 104, 109, 113–116, 155, 157, 159, 169–170, 174–175, 183
   jdutil.py986632%37, 55, 91–92, 105, 152, 154–155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 251–252, 254–255, 257–258, 260, 262, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py71710%3–4, 6, 9–13, 16–21, 24–25, 28–29, 32–37, 40–44, 52–53, 56–62, 65–71, 74–79, 82–85, 88–91, 94–97, 100–107
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/edtf/natlang
   __init__.py20100% 
   en.py1487152%34, 44–45, 47–50, 55–56, 59–62, 64, 68–71, 73–74, 76–78, 86–88, 90–94, 104, 106, 119, 126, 157–159, 161–166, 169–171, 173–178, 202–205, 209, 224, 226–227, 229, 246, 248, 256, 258, 260, 262, 267, 270, 276
   tests.py10100%3, 5, 10, 179, 184–185, 190–191, 207, 211
/opt/hostedtoolcache/Python/3.9.19/x64/lib/python3.9/site-packages/edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123992%147–150, 346, 350–353
   parser_classes.py54827749%69, 71, 78–81, 83–84, 86–87, 110–112, 116, 119, 122, 181, 183, 190, 192, 198–202, 207–213, 220–224, 229–235, 246, 257, 286, 290, 302–304, 309, 317–319, 322, 337–338, 342, 371–375, 378, 383–384, 387, 390, 393, 396–400, 403–407, 427–429, 453, 457, 462, 464, 478, 485, 501, 510–512, 514–516, 519–520, 522, 525–528, 530, 532–534, 536, 540, 549–551, 555, 557, 560–562, 566, 568, 573–576, 581–582, 587–588, 590, 593, 596–598, 600, 603, 606–609, 611–617, 624–627, 629–635, 644–645, 648, 651, 654–656, 658, 666, 685–687, 689–692, 694–695, 697–698, 700, 703–704, 706–707, 709, 711, 713–714, 716, 718–723, 725, 727, 729–730, 732, 735–737, 740–742, 745–747, 755, 757–758, 761–762, 765–766, 769–770, 772–773, 777, 781–782, 785, 790–791, 795–796, 798–806, 808, 818–819, 821, 823–824, 826, 829, 834, 839, 845–846, 849, 852, 855, 857–859, 861, 866–867, 869, 878–879, 882, 885, 888–889, 891, 900–901, 903–905, 907, 916–918, 923, 926–927, 929, 934
   tests.py76760%3–4, 6, 8–10, 26, 219, 233, 255, 257–260, 262–264, 266–270, 273–274, 276–277, 280–282, 285–286, 289–292, 295, 298–302, 305, 308, 311, 314–319, 322, 325, 328, 333–334, 336–337, 340, 342–347, 349–356, 359–361, 363
edtf
   __init__.py40100% 
   appsettings.py24291%12–13
   convert.py631182%11–19, 21, 73
   fields.py92920%1, 3–6, 8–10, 12, 20, 26, 28, 30–32, 35–36, 48–49, 64, 66, 69, 71–74, 76–80, 82–83, 85, 87–88, 90, 92–93, 95, 97–99, 101–102, 104, 106–109, 111, 113–116, 118, 127–129, 132, 135, 141–142, 144–146, 149, 153, 155, 157, 159, 162–175, 181, 183–184, 186–187, 192–193
   jdutil.py984455%37, 55, 91–92, 287, 291, 314, 316–317, 319, 321, 346, 348, 350, 370–372, 374, 376, 378, 381–383, 385, 387, 389, 392–393, 395, 397, 399–400, 402, 405–407, 410–413, 415, 417, 424, 431
   tests.py710100% 
edtf/natlang
   __init__.py20100% 
   en.py1481192%56, 59, 119, 165–166, 177–178, 204–205, 209, 276
   tests.py10190%211
edtf/parser
   __init__.py40100% 
   edtf_exceptions.py30100% 
   grammar.py123199%352
   parser_classes.py5488484%110–112, 119, 122, 183, 189–193, 200–202, 209–213, 222–224, 229–235, 246, 337–338, 371–375, 378, 393, 396–400, 403–407, 427–429, 540, 603, 609, 613, 627, 631, 704, 722–723, 725, 730, 736, 741, 746, 782, 785, 791, 796, 798–806, 821, 826, 903, 907, 934
   tests.py76198%363
TOTAL253289664% 

Tests Skipped Failures Errors Time
249 0 💤 0 ❌ 0 🔥 2.540s ⏱️

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: d550274 Previous: 6c0e239 Ratio
edtf/natlang/tests.py::test_benchmark_natlang[23rd Dynasty-None] 118820.602122959 iter/sec (stddev: 5.879749575291134e-7) 69623.3088759745 iter/sec (stddev: 0.0000013849908566456315) 0.59
edtf/natlang/tests.py::test_benchmark_natlang[January 2008-2008-01] 11440.170052804406 iter/sec (stddev: 0.000005223699361390938) 8255.889795047835 iter/sec (stddev: 0.000005961178613019849) 0.72
edtf/natlang/tests.py::test_benchmark_natlang[ca1860-1860~] 14073.963015410847 iter/sec (stddev: 0.0000047980723045282624) 9897.171699215625 iter/sec (stddev: 0.00000463407317027265) 0.70
edtf/natlang/tests.py::test_benchmark_natlang[uncertain: approx 1862-1862%] 9405.665977132232 iter/sec (stddev: 0.0000049766544214081825) 6748.667184331565 iter/sec (stddev: 0.000006944707679588234) 0.72
edtf/natlang/tests.py::test_benchmark_natlang[January-XXXX-01] 16729.471825407996 iter/sec (stddev: 0.000003343756185421422) 11639.134552985804 iter/sec (stddev: 0.0000059887326331891594) 0.70
edtf/natlang/tests.py::test_benchmark_natlang[Winter 1872-1872-24] 11755.63224352206 iter/sec (stddev: 0.000004732447883893759) 8311.522196603652 iter/sec (stddev: 0.000015458063010660085) 0.71
edtf/natlang/tests.py::test_benchmark_natlang[before approx January 18 1928-/1928-01-18~] 7434.433759517973 iter/sec (stddev: 0.000006069773121525858) 5675.264845322828 iter/sec (stddev: 0.000020193912783789967) 0.76
edtf/natlang/tests.py::test_benchmark_natlang[birthday in 1872-1872] 10248.163923601813 iter/sec (stddev: 0.000004869653438371242) 7400.349916571939 iter/sec (stddev: 0.0000055515862163685545) 0.72
edtf/natlang/tests.py::test_benchmark_natlang[1270 CE-1270] 66813.77697393876 iter/sec (stddev: 0.0000010322913630051904) 50027.98387150724 iter/sec (stddev: 0.0000015611581518258672) 0.75
edtf/natlang/tests.py::test_benchmark_natlang[2nd century bce--01XX] 56606.90431454123 iter/sec (stddev: 9.498208461992206e-7) 44575.19294034347 iter/sec (stddev: 0.000001918260001514796) 0.79
edtf/natlang/tests.py::test_benchmark_natlang[1858/1860-[1858, 1860]] 32671.928892714455 iter/sec (stddev: 0.0000021452155293833698) 22193.034744723212 iter/sec (stddev: 0.000003762823312923562) 0.68
edtf/parser/tests.py::test_benchmark_parser[2001-02-03] 152.53373016501564 iter/sec (stddev: 0.0005518283912429752) 122.91376473906767 iter/sec (stddev: 0.0006188323254610916) 0.81
edtf/parser/tests.py::test_benchmark_parser[2008-12] 157.67573506289054 iter/sec (stddev: 0.0018769487138548485) 129.04941731703363 iter/sec (stddev: 0.001679261256900155) 0.82
edtf/parser/tests.py::test_benchmark_parser[2008] 192.42524972291878 iter/sec (stddev: 0.001888079639615709) 157.45082443530742 iter/sec (stddev: 0.0022578710745921595) 0.82
edtf/parser/tests.py::test_benchmark_parser[-0999] 195.8663190577094 iter/sec (stddev: 0.0019249621626913748) 156.91618376763557 iter/sec (stddev: 0.002312174360203822) 0.80
edtf/parser/tests.py::test_benchmark_parser[2004-01-01T10:10:10+05:00] 132.8189362923735 iter/sec (stddev: 0.0020073482812867516) 107.48377913583656 iter/sec (stddev: 0.0023273187524285102) 0.81
edtf/parser/tests.py::test_benchmark_parser[-2005/-1999-02] 119.0178036319311 iter/sec (stddev: 0.0020534048789457326) 98.56495242587283 iter/sec (stddev: 0.001997524568329419) 0.83
edtf/parser/tests.py::test_benchmark_parser[/2006] 252.74922056244225 iter/sec (stddev: 0.0011464213104177997) 210.85940206066465 iter/sec (stddev: 0.00014844895252695344) 0.83
edtf/parser/tests.py::test_benchmark_parser[?2004-%06] 201.8566586919196 iter/sec (stddev: 0.0006373808881074358) 166.8221126726796 iter/sec (stddev: 0.001233872218382916) 0.83
edtf/parser/tests.py::test_benchmark_parser[[1667, 1760-12]] 21.591407486618095 iter/sec (stddev: 0.00386000001105658) 18.737964981086854 iter/sec (stddev: 0.0006557341446106546) 0.87
edtf/parser/tests.py::test_benchmark_parser[Y3388E2S3] 498.9626899087608 iter/sec (stddev: 0.00007658855766406677) 383.3827603596974 iter/sec (stddev: 0.0001941011481852602) 0.77
edtf/parser/tests.py::test_benchmark_parser[2001-29] 114.71918539214317 iter/sec (stddev: 0.00170992741084812) 91.79172461953596 iter/sec (stddev: 0.00211764246569607) 0.80

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: d550274 Previous: 6c0e239 Ratio
edtf/natlang/tests.py::test_benchmark_natlang[23rd Dynasty-None] 73153.572432203 iter/sec (stddev: 0.0000010489031645404416) 69623.3088759745 iter/sec (stddev: 0.0000013849908566456315) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[January 2008-2008-01] 8722.301174187907 iter/sec (stddev: 0.000008115054843687149) 8255.889795047835 iter/sec (stddev: 0.000005961178613019849) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[ca1860-1860~] 10326.676245675102 iter/sec (stddev: 0.000005483253911906605) 9897.171699215625 iter/sec (stddev: 0.00000463407317027265) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[uncertain: approx 1862-1862%] 6751.744531549716 iter/sec (stddev: 0.000016317505866863735) 6748.667184331565 iter/sec (stddev: 0.000006944707679588234) 1.00
edtf/natlang/tests.py::test_benchmark_natlang[January-XXXX-01] 11581.77436465761 iter/sec (stddev: 0.000018357206606071773) 11639.134552985804 iter/sec (stddev: 0.0000059887326331891594) 1.00
edtf/natlang/tests.py::test_benchmark_natlang[Winter 1872-1872-24] 8680.444263686772 iter/sec (stddev: 0.000006664449056003675) 8311.522196603652 iter/sec (stddev: 0.000015458063010660085) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[before approx January 18 1928-/1928-01-18~] 5848.519805655939 iter/sec (stddev: 0.000009683116974778127) 5675.264845322828 iter/sec (stddev: 0.000020193912783789967) 0.97
edtf/natlang/tests.py::test_benchmark_natlang[birthday in 1872-1872] 7545.936044449497 iter/sec (stddev: 0.000009806845703431812) 7400.349916571939 iter/sec (stddev: 0.0000055515862163685545) 0.98
edtf/natlang/tests.py::test_benchmark_natlang[1270 CE-1270] 49756.45968822588 iter/sec (stddev: 0.0000013254408868709497) 50027.98387150724 iter/sec (stddev: 0.0000015611581518258672) 1.01
edtf/natlang/tests.py::test_benchmark_natlang[2nd century bce--01XX] 45814.92040341234 iter/sec (stddev: 0.0000016523420978149456) 44575.19294034347 iter/sec (stddev: 0.000001918260001514796) 0.97
edtf/natlang/tests.py::test_benchmark_natlang[1858/1860-[1858, 1860]] 22535.265530059474 iter/sec (stddev: 0.000003344052642502045) 22193.034744723212 iter/sec (stddev: 0.000003762823312923562) 0.98
edtf/parser/tests.py::test_benchmark_parser[2001-02-03] 127.18117556884573 iter/sec (stddev: 0.0005741142671976892) 122.91376473906767 iter/sec (stddev: 0.0006188323254610916) 0.97
edtf/parser/tests.py::test_benchmark_parser[2008-12] 133.8438309036469 iter/sec (stddev: 0.0016929097666600035) 129.04941731703363 iter/sec (stddev: 0.001679261256900155) 0.96
edtf/parser/tests.py::test_benchmark_parser[2008] 168.9105906497566 iter/sec (stddev: 0.0010929379073341173) 157.45082443530742 iter/sec (stddev: 0.0022578710745921595) 0.93
edtf/parser/tests.py::test_benchmark_parser[-0999] 166.35961803189517 iter/sec (stddev: 0.0015454447437266998) 156.91618376763557 iter/sec (stddev: 0.002312174360203822) 0.94
edtf/parser/tests.py::test_benchmark_parser[2004-01-01T10:10:10+05:00] 116.27737105573823 iter/sec (stddev: 0.0005754769288325661) 107.48377913583656 iter/sec (stddev: 0.0023273187524285102) 0.92
edtf/parser/tests.py::test_benchmark_parser[-2005/-1999-02] 103.0110160796474 iter/sec (stddev: 0.0012680566789270505) 98.56495242587283 iter/sec (stddev: 0.001997524568329419) 0.96
edtf/parser/tests.py::test_benchmark_parser[/2006] 216.00220794811426 iter/sec (stddev: 0.0008086460823481986) 210.85940206066465 iter/sec (stddev: 0.00014844895252695344) 0.98
edtf/parser/tests.py::test_benchmark_parser[?2004-%06] 175.0150751719073 iter/sec (stddev: 0.000854047824506577) 166.8221126726796 iter/sec (stddev: 0.001233872218382916) 0.95
edtf/parser/tests.py::test_benchmark_parser[[1667, 1760-12]] 19.580206434583392 iter/sec (stddev: 0.0013861247959179352) 18.737964981086854 iter/sec (stddev: 0.0006557341446106546) 0.96
edtf/parser/tests.py::test_benchmark_parser[Y3388E2S3] 405.56145814501315 iter/sec (stddev: 0.00012760161484188785) 383.3827603596974 iter/sec (stddev: 0.0001941011481852602) 0.95
edtf/parser/tests.py::test_benchmark_parser[2001-29] 98.1765130003023 iter/sec (stddev: 0.0018588803031387587) 91.79172461953596 iter/sec (stddev: 0.00211764246569607) 0.93

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: d550274 Previous: 6c0e239 Ratio
edtf/natlang/tests.py::test_benchmark_natlang[23rd Dynasty-None] 88171.3995986346 iter/sec (stddev: 8.784392317387399e-7) 69623.3088759745 iter/sec (stddev: 0.0000013849908566456315) 0.79
edtf/natlang/tests.py::test_benchmark_natlang[January 2008-2008-01] 8666.00387737506 iter/sec (stddev: 0.000006878010888860342) 8255.889795047835 iter/sec (stddev: 0.000005961178613019849) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[ca1860-1860~] 10384.11708097221 iter/sec (stddev: 0.00002217023031824006) 9897.171699215625 iter/sec (stddev: 0.00000463407317027265) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[uncertain: approx 1862-1862%] 7396.9959664000635 iter/sec (stddev: 0.0000053713015784352) 6748.667184331565 iter/sec (stddev: 0.000006944707679588234) 0.91
edtf/natlang/tests.py::test_benchmark_natlang[January-XXXX-01] 13098.981081735037 iter/sec (stddev: 0.000003901126514773051) 11639.134552985804 iter/sec (stddev: 0.0000059887326331891594) 0.89
edtf/natlang/tests.py::test_benchmark_natlang[Winter 1872-1872-24] 9214.91434796836 iter/sec (stddev: 0.000005435768762067458) 8311.522196603652 iter/sec (stddev: 0.000015458063010660085) 0.90
edtf/natlang/tests.py::test_benchmark_natlang[before approx January 18 1928-/1928-01-18~] 5917.685547221729 iter/sec (stddev: 0.000007250379871350478) 5675.264845322828 iter/sec (stddev: 0.000020193912783789967) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[birthday in 1872-1872] 8042.331759695074 iter/sec (stddev: 0.000006074328778394688) 7400.349916571939 iter/sec (stddev: 0.0000055515862163685545) 0.92
edtf/natlang/tests.py::test_benchmark_natlang[1270 CE-1270] 52664.09171512095 iter/sec (stddev: 0.0000011770105770645222) 50027.98387150724 iter/sec (stddev: 0.0000015611581518258672) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[2nd century bce--01XX] 45667.16481023882 iter/sec (stddev: 0.0000013630904270574329) 44575.19294034347 iter/sec (stddev: 0.000001918260001514796) 0.98
edtf/natlang/tests.py::test_benchmark_natlang[1858/1860-[1858, 1860]] 24912.653287504836 iter/sec (stddev: 0.0000026739810033484397) 22193.034744723212 iter/sec (stddev: 0.000003762823312923562) 0.89
edtf/parser/tests.py::test_benchmark_parser[2001-02-03] 165.4112621391998 iter/sec (stddev: 0.0003983632249840716) 122.91376473906767 iter/sec (stddev: 0.0006188323254610916) 0.74
edtf/parser/tests.py::test_benchmark_parser[2008-12] 171.15191202385557 iter/sec (stddev: 0.0017963861363448658) 129.04941731703363 iter/sec (stddev: 0.001679261256900155) 0.75
edtf/parser/tests.py::test_benchmark_parser[2008] 204.56043835166113 iter/sec (stddev: 0.0017401379495018438) 157.45082443530742 iter/sec (stddev: 0.0022578710745921595) 0.77
edtf/parser/tests.py::test_benchmark_parser[-0999] 207.72339847225777 iter/sec (stddev: 0.0014901883941638532) 156.91618376763557 iter/sec (stddev: 0.002312174360203822) 0.76
edtf/parser/tests.py::test_benchmark_parser[2004-01-01T10:10:10+05:00] 144.55036536963527 iter/sec (stddev: 0.00227054487350442) 107.48377913583656 iter/sec (stddev: 0.0023273187524285102) 0.74
edtf/parser/tests.py::test_benchmark_parser[-2005/-1999-02] 136.9897737133823 iter/sec (stddev: 0.0015250874183775822) 98.56495242587283 iter/sec (stddev: 0.001997524568329419) 0.72
edtf/parser/tests.py::test_benchmark_parser[/2006] 330.67673907411927 iter/sec (stddev: 0.0010491359214628423) 210.85940206066465 iter/sec (stddev: 0.00014844895252695344) 0.64
edtf/parser/tests.py::test_benchmark_parser[?2004-%06] 226.53457809517386 iter/sec (stddev: 0.0012522255524747721) 166.8221126726796 iter/sec (stddev: 0.001233872218382916) 0.74
edtf/parser/tests.py::test_benchmark_parser[[1667, 1760-12]] 33.884917670663754 iter/sec (stddev: 0.0009785194071024199) 18.737964981086854 iter/sec (stddev: 0.0006557341446106546) 0.55
edtf/parser/tests.py::test_benchmark_parser[Y3388E2S3] 483.83148810890566 iter/sec (stddev: 0.00006838907669783264) 383.3827603596974 iter/sec (stddev: 0.0001941011481852602) 0.79
edtf/parser/tests.py::test_benchmark_parser[2001-29] 122.55118688785305 iter/sec (stddev: 0.0023227515877570254) 91.79172461953596 iter/sec (stddev: 0.00211764246569607) 0.75

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: d550274 Previous: 6c0e239 Ratio
edtf/natlang/tests.py::test_benchmark_natlang[23rd Dynasty-None] 81163.63372123877 iter/sec (stddev: 7.965885268953069e-7) 69623.3088759745 iter/sec (stddev: 0.0000013849908566456315) 0.86
edtf/natlang/tests.py::test_benchmark_natlang[January 2008-2008-01] 8739.435327028586 iter/sec (stddev: 0.000004993823861630893) 8255.889795047835 iter/sec (stddev: 0.000005961178613019849) 0.94
edtf/natlang/tests.py::test_benchmark_natlang[ca1860-1860~] 10945.377611171254 iter/sec (stddev: 0.000007568937809434162) 9897.171699215625 iter/sec (stddev: 0.00000463407317027265) 0.90
edtf/natlang/tests.py::test_benchmark_natlang[uncertain: approx 1862-1862%] 7170.922498239467 iter/sec (stddev: 0.000005963564478132597) 6748.667184331565 iter/sec (stddev: 0.000006944707679588234) 0.94
edtf/natlang/tests.py::test_benchmark_natlang[January-XXXX-01] 12955.67906939417 iter/sec (stddev: 0.000004362416177063508) 11639.134552985804 iter/sec (stddev: 0.0000059887326331891594) 0.90
edtf/natlang/tests.py::test_benchmark_natlang[Winter 1872-1872-24] 9190.38241228251 iter/sec (stddev: 0.000005179750556963184) 8311.522196603652 iter/sec (stddev: 0.000015458063010660085) 0.90
edtf/natlang/tests.py::test_benchmark_natlang[before approx January 18 1928-/1928-01-18~] 5719.608691566644 iter/sec (stddev: 0.000007149717654609308) 5675.264845322828 iter/sec (stddev: 0.000020193912783789967) 0.99
edtf/natlang/tests.py::test_benchmark_natlang[birthday in 1872-1872] 7712.157465338484 iter/sec (stddev: 0.000005712848574085785) 7400.349916571939 iter/sec (stddev: 0.0000055515862163685545) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[1270 CE-1270] 50012.86057469382 iter/sec (stddev: 0.0000028263624887115314) 50027.98387150724 iter/sec (stddev: 0.0000015611581518258672) 1.00
edtf/natlang/tests.py::test_benchmark_natlang[2nd century bce--01XX] 42964.9006050019 iter/sec (stddev: 0.0000015546245544907737) 44575.19294034347 iter/sec (stddev: 0.000001918260001514796) 1.04
edtf/natlang/tests.py::test_benchmark_natlang[1858/1860-[1858, 1860]] 25042.426371148173 iter/sec (stddev: 0.0000028487841865080073) 22193.034744723212 iter/sec (stddev: 0.000003762823312923562) 0.89
edtf/parser/tests.py::test_benchmark_parser[2001-02-03] 161.3158896622928 iter/sec (stddev: 0.0004815099901972496) 122.91376473906767 iter/sec (stddev: 0.0006188323254610916) 0.76
edtf/parser/tests.py::test_benchmark_parser[2008-12] 167.5829585062012 iter/sec (stddev: 0.0016079833082672048) 129.04941731703363 iter/sec (stddev: 0.001679261256900155) 0.77
edtf/parser/tests.py::test_benchmark_parser[2008] 199.64426665353568 iter/sec (stddev: 0.0019520361927063187) 157.45082443530742 iter/sec (stddev: 0.0022578710745921595) 0.79
edtf/parser/tests.py::test_benchmark_parser[-0999] 202.75572264318063 iter/sec (stddev: 0.001312982388597033) 156.91618376763557 iter/sec (stddev: 0.002312174360203822) 0.77
edtf/parser/tests.py::test_benchmark_parser[2004-01-01T10:10:10+05:00] 141.9951861518736 iter/sec (stddev: 0.0019312107846640827) 107.48377913583656 iter/sec (stddev: 0.0023273187524285102) 0.76
edtf/parser/tests.py::test_benchmark_parser[-2005/-1999-02] 133.65318484518332 iter/sec (stddev: 0.0014400574986738624) 98.56495242587283 iter/sec (stddev: 0.001997524568329419) 0.74
edtf/parser/tests.py::test_benchmark_parser[/2006] 328.1876631840526 iter/sec (stddev: 0.00012883155868265216) 210.85940206066465 iter/sec (stddev: 0.00014844895252695344) 0.64
edtf/parser/tests.py::test_benchmark_parser[?2004-%06] 220.63680310242586 iter/sec (stddev: 0.0010848079486404782) 166.8221126726796 iter/sec (stddev: 0.001233872218382916) 0.76
edtf/parser/tests.py::test_benchmark_parser[[1667, 1760-12]] 32.29119897940656 iter/sec (stddev: 0.003078165317686501) 18.737964981086854 iter/sec (stddev: 0.0006557341446106546) 0.58
edtf/parser/tests.py::test_benchmark_parser[Y3388E2S3] 470.8330695137969 iter/sec (stddev: 0.00007202264547062383) 383.3827603596974 iter/sec (stddev: 0.0001941011481852602) 0.81
edtf/parser/tests.py::test_benchmark_parser[2001-29] 116.99120237855473 iter/sec (stddev: 0.002437118434049644) 91.79172461953596 iter/sec (stddev: 0.00211764246569607) 0.78

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: d550274 Previous: 6c0e239 Ratio
edtf/natlang/tests.py::test_benchmark_natlang[23rd Dynasty-None] 82535.56787296855 iter/sec (stddev: 0.0000010078962624879046) 69623.3088759745 iter/sec (stddev: 0.0000013849908566456315) 0.84
edtf/natlang/tests.py::test_benchmark_natlang[January 2008-2008-01] 8645.999738534196 iter/sec (stddev: 0.000011265293666369967) 8255.889795047835 iter/sec (stddev: 0.000005961178613019849) 0.95
edtf/natlang/tests.py::test_benchmark_natlang[ca1860-1860~] 10952.756036235593 iter/sec (stddev: 0.000005240427710201407) 9897.171699215625 iter/sec (stddev: 0.00000463407317027265) 0.90
edtf/natlang/tests.py::test_benchmark_natlang[uncertain: approx 1862-1862%] 7048.883308811026 iter/sec (stddev: 0.000007157051529382251) 6748.667184331565 iter/sec (stddev: 0.000006944707679588234) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[January-XXXX-01] 12756.442986095128 iter/sec (stddev: 0.000004588352550492114) 11639.134552985804 iter/sec (stddev: 0.0000059887326331891594) 0.91
edtf/natlang/tests.py::test_benchmark_natlang[Winter 1872-1872-24] 8986.630337254512 iter/sec (stddev: 0.000008235577738692793) 8311.522196603652 iter/sec (stddev: 0.000015458063010660085) 0.92
edtf/natlang/tests.py::test_benchmark_natlang[before approx January 18 1928-/1928-01-18~] 5744.400239709143 iter/sec (stddev: 0.0000078123241257205) 5675.264845322828 iter/sec (stddev: 0.000020193912783789967) 0.99
edtf/natlang/tests.py::test_benchmark_natlang[birthday in 1872-1872] 7681.897896548731 iter/sec (stddev: 0.000005452071376552357) 7400.349916571939 iter/sec (stddev: 0.0000055515862163685545) 0.96
edtf/natlang/tests.py::test_benchmark_natlang[1270 CE-1270] 50197.46390626085 iter/sec (stddev: 0.0000010958753251934646) 50027.98387150724 iter/sec (stddev: 0.0000015611581518258672) 1.00
edtf/natlang/tests.py::test_benchmark_natlang[2nd century bce--01XX] 43203.81855521334 iter/sec (stddev: 0.000001568144846181918) 44575.19294034347 iter/sec (stddev: 0.000001918260001514796) 1.03
edtf/natlang/tests.py::test_benchmark_natlang[1858/1860-[1858, 1860]] 24259.752761371914 iter/sec (stddev: 0.0000030103162544902437) 22193.034744723212 iter/sec (stddev: 0.000003762823312923562) 0.91
edtf/parser/tests.py::test_benchmark_parser[2001-02-03] 156.28506529866405 iter/sec (stddev: 0.0005626952095537637) 122.91376473906767 iter/sec (stddev: 0.0006188323254610916) 0.79
edtf/parser/tests.py::test_benchmark_parser[2008-12] 163.72358760223312 iter/sec (stddev: 0.002264199426244651) 129.04941731703363 iter/sec (stddev: 0.001679261256900155) 0.79
edtf/parser/tests.py::test_benchmark_parser[2008] 189.53126779009347 iter/sec (stddev: 0.002426213463589815) 157.45082443530742 iter/sec (stddev: 0.0022578710745921595) 0.83
edtf/parser/tests.py::test_benchmark_parser[-0999] 199.61813313403985 iter/sec (stddev: 0.0018783191918705683) 156.91618376763557 iter/sec (stddev: 0.002312174360203822) 0.79
edtf/parser/tests.py::test_benchmark_parser[2004-01-01T10:10:10+05:00] 135.085855478056 iter/sec (stddev: 0.0025625931131327702) 107.48377913583656 iter/sec (stddev: 0.0023273187524285102) 0.80
edtf/parser/tests.py::test_benchmark_parser[-2005/-1999-02] 128.5872964981493 iter/sec (stddev: 0.002615314869635075) 98.56495242587283 iter/sec (stddev: 0.001997524568329419) 0.77
edtf/parser/tests.py::test_benchmark_parser[/2006] 330.74361805221474 iter/sec (stddev: 0.000337110575727405) 210.85940206066465 iter/sec (stddev: 0.00014844895252695344) 0.64
edtf/parser/tests.py::test_benchmark_parser[?2004-%06] 220.13324044947495 iter/sec (stddev: 0.0014591543364528786) 166.8221126726796 iter/sec (stddev: 0.001233872218382916) 0.76
edtf/parser/tests.py::test_benchmark_parser[[1667, 1760-12]] 32.746611658442596 iter/sec (stddev: 0.0008438619857916163) 18.737964981086854 iter/sec (stddev: 0.0006557341446106546) 0.57
edtf/parser/tests.py::test_benchmark_parser[Y3388E2S3] 465.6138340758296 iter/sec (stddev: 0.0009444374455410944) 383.3827603596974 iter/sec (stddev: 0.0001941011481852602) 0.82
edtf/parser/tests.py::test_benchmark_parser[2001-29] 116.5001285392887 iter/sec (stddev: 0.00219781131059198) 91.79172461953596 iter/sec (stddev: 0.00211764246569607) 0.79

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.