0s autopkgtest [19:28:13]: starting date and time: 2025-05-03 19:28:13+0000 0s autopkgtest [19:28:13]: git checkout: 9986aa8c Merge branch 'skia/fix_network_interface' into 'ubuntu/production' 0s autopkgtest [19:28:13]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.txvsi5fa/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pytest --apt-upgrade exchange-calendars --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=pytest/8.3.5-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-19.secgroup --name adt-questing-amd64-exchange-calendars-20250503-192813-juju-7f2275-prod-proposed-migration-environment-20-d322bb51-c19f-4e39-bc86-a6b7aec05cf6 --image adt/ubuntu-questing-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 46s autopkgtest [19:28:59]: testbed dpkg architecture: amd64 46s autopkgtest [19:28:59]: testbed apt version: 3.0.0 46s autopkgtest [19:28:59]: @@@@@@@@@@@@@@@@@@@@ test bed setup 47s autopkgtest [19:29:00]: testbed release detected to be: None 47s autopkgtest [19:29:00]: updating testbed package index (apt update) 48s Get:1 http://ftpmaster.internal/ubuntu questing-proposed InRelease [110 kB] 48s Hit:2 http://ftpmaster.internal/ubuntu questing InRelease 48s Hit:3 http://ftpmaster.internal/ubuntu questing-updates InRelease 48s Hit:4 http://ftpmaster.internal/ubuntu questing-security InRelease 48s Get:5 http://ftpmaster.internal/ubuntu questing-proposed/multiverse Sources [33.7 kB] 48s Get:6 http://ftpmaster.internal/ubuntu questing-proposed/universe Sources [1442 kB] 48s Get:7 http://ftpmaster.internal/ubuntu questing-proposed/main Sources [149 kB] 48s Get:8 http://ftpmaster.internal/ubuntu questing-proposed/main amd64 Packages [203 kB] 48s Get:9 http://ftpmaster.internal/ubuntu questing-proposed/main i386 Packages [146 kB] 48s Get:10 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 Packages [1424 kB] 49s Get:11 http://ftpmaster.internal/ubuntu questing-proposed/universe i386 Packages [576 kB] 49s Get:12 http://ftpmaster.internal/ubuntu questing-proposed/multiverse i386 Packages [23.1 kB] 49s Get:13 http://ftpmaster.internal/ubuntu questing-proposed/multiverse amd64 Packages [48.6 kB] 49s Fetched 4155 kB in 1s (3704 kB/s) 50s Reading package lists... 50s autopkgtest [19:29:03]: upgrading testbed (apt dist-upgrade and autopurge) 50s Reading package lists... 51s Building dependency tree... 51s Reading state information... 51s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 51s Starting 2 pkgProblemResolver with broken count: 0 51s Done 52s Entering ResolveByKeep 52s 52s Calculating upgrade... 52s The following packages will be upgraded: 52s cloud-init cloud-init-base debianutils libmbim-glib4 libmbim-proxy 52s libnftnl11 libqmi-glib5 libqmi-proxy libsepol2 python3-lazr.restfulclient 52s sos 52s 11 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 52s Need to get 2693 kB of archives. 52s After this operation, 104 kB disk space will be freed. 52s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 debianutils amd64 5.22 [93.0 kB] 52s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libsepol2 amd64 3.8.1-1 [327 kB] 52s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libnftnl11 amd64 1.2.9-1 [69.1 kB] 52s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 cloud-init-base all 25.2~1g7a0265d3-0ubuntu1 [619 kB] 53s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 libmbim-proxy amd64 1.32.0-1 [6276 B] 53s Get:6 http://ftpmaster.internal/ubuntu questing/main amd64 libmbim-glib4 amd64 1.32.0-1 [233 kB] 53s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 libqmi-proxy amd64 1.36.0-1 [6220 B] 53s Get:8 http://ftpmaster.internal/ubuntu questing/main amd64 libqmi-glib5 amd64 1.36.0-1 [920 kB] 53s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 python3-lazr.restfulclient all 0.14.6-3 [51.0 kB] 53s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 sos all 4.9.1-1 [367 kB] 53s Get:11 http://ftpmaster.internal/ubuntu questing/main amd64 cloud-init all 25.2~1g7a0265d3-0ubuntu1 [2106 B] 53s Preconfiguring packages ... 53s Fetched 2693 kB in 1s (4013 kB/s) 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80514 files and directories currently installed.) 53s Preparing to unpack .../debianutils_5.22_amd64.deb ... 53s Unpacking debianutils (5.22) over (5.21) ... 53s Setting up debianutils (5.22) ... 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80514 files and directories currently installed.) 53s Preparing to unpack .../libsepol2_3.8.1-1_amd64.deb ... 53s Unpacking libsepol2:amd64 (3.8.1-1) over (3.7-1) ... 54s Setting up libsepol2:amd64 (3.8.1-1) ... 54s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80514 files and directories currently installed.) 54s Preparing to unpack .../0-libnftnl11_1.2.9-1_amd64.deb ... 54s Unpacking libnftnl11:amd64 (1.2.9-1) over (1.2.8-1) ... 54s Preparing to unpack .../1-cloud-init-base_25.2~1g7a0265d3-0ubuntu1_all.deb ... 54s Unpacking cloud-init-base (25.2~1g7a0265d3-0ubuntu1) over (25.1.1-0ubuntu2) ... 54s Preparing to unpack .../2-libmbim-proxy_1.32.0-1_amd64.deb ... 54s Unpacking libmbim-proxy (1.32.0-1) over (1.31.2-0ubuntu4) ... 54s Preparing to unpack .../3-libmbim-glib4_1.32.0-1_amd64.deb ... 54s Unpacking libmbim-glib4:amd64 (1.32.0-1) over (1.31.2-0ubuntu4) ... 54s Preparing to unpack .../4-libqmi-proxy_1.36.0-1_amd64.deb ... 54s Unpacking libqmi-proxy (1.36.0-1) over (1.35.6-1) ... 54s Preparing to unpack .../5-libqmi-glib5_1.36.0-1_amd64.deb ... 54s Unpacking libqmi-glib5:amd64 (1.36.0-1) over (1.35.6-1) ... 54s Preparing to unpack .../6-python3-lazr.restfulclient_0.14.6-3_all.deb ... 54s Unpacking python3-lazr.restfulclient (0.14.6-3) over (0.14.6-2) ... 54s Preparing to unpack .../7-sos_4.9.1-1_all.deb ... 54s Unpacking sos (4.9.1-1) over (4.9.0-6) ... 55s Preparing to unpack .../8-cloud-init_25.2~1g7a0265d3-0ubuntu1_all.deb ... 55s Unpacking cloud-init (25.2~1g7a0265d3-0ubuntu1) over (25.1.1-0ubuntu2) ... 55s Setting up sos (4.9.1-1) ... 55s Setting up libnftnl11:amd64 (1.2.9-1) ... 55s Setting up cloud-init-base (25.2~1g7a0265d3-0ubuntu1) ... 56s Setting up python3-lazr.restfulclient (0.14.6-3) ... 56s Setting up libmbim-glib4:amd64 (1.32.0-1) ... 56s Setting up cloud-init (25.2~1g7a0265d3-0ubuntu1) ... 56s Setting up libmbim-proxy (1.32.0-1) ... 56s Setting up libqmi-glib5:amd64 (1.36.0-1) ... 56s Setting up libqmi-proxy (1.36.0-1) ... 56s Processing triggers for libc-bin (2.41-6ubuntu1) ... 56s Processing triggers for rsyslog (8.2412.0-2ubuntu2) ... 57s Processing triggers for man-db (2.13.0-1) ... 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 59s Starting pkgProblemResolver with broken count: 0 59s Starting 2 pkgProblemResolver with broken count: 0 59s Done 59s Solving dependencies... 59s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 59s autopkgtest [19:29:12]: rebooting testbed after setup commands that affected boot 82s autopkgtest [19:29:35]: testbed running kernel: Linux 6.14.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr 6 15:05:05 UTC 2025 85s autopkgtest [19:29:38]: @@@@@@@@@@@@@@@@@@@@ apt-source exchange-calendars 87s Get:1 http://ftpmaster.internal/ubuntu questing/universe exchange-calendars 4.9-2 (dsc) [2480 B] 87s Get:2 http://ftpmaster.internal/ubuntu questing/universe exchange-calendars 4.9-2 (tar) [3835 kB] 87s Get:3 http://ftpmaster.internal/ubuntu questing/universe exchange-calendars 4.9-2 (diff) [3368 B] 87s gpgv: Signature made Tue Feb 18 15:51:31 2025 UTC 87s gpgv: using RSA key FB8ACFA78C726089C38AD0269605A1098C63B92A 87s gpgv: Can't check signature: No public key 87s dpkg-source: warning: cannot verify inline signature for ./exchange-calendars_4.9-2.dsc: no acceptable signature found 88s autopkgtest [19:29:41]: testing package exchange-calendars version 4.9-2 88s autopkgtest [19:29:41]: build not needed 90s autopkgtest [19:29:43]: test run-tests: preparing testbed 90s Reading package lists... 90s Building dependency tree... 90s Reading state information... 90s Starting pkgProblemResolver with broken count: 0 90s Starting 2 pkgProblemResolver with broken count: 0 90s Done 91s The following NEW packages will be installed: 91s architecture-properties libblas3 libgfortran5 liblapack3 python3-all 91s python3-exchange-calendars python3-hypothesis python3-iniconfig 91s python3-korean-lunar-calendar python3-numpy python3-numpy-dev python3-pandas 91s python3-pandas-lib python3-pluggy python3-pyluach python3-pytest 91s python3-pytz python3-sortedcontainers python3-toolz python3-tz 91s 0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded. 91s Need to get 19.8 MB of archives. 91s After this operation, 97.0 MB of additional disk space will be used. 91s Get:1 http://ftpmaster.internal/ubuntu questing/main amd64 python3-numpy-dev amd64 1:2.2.3+ds-5 [148 kB] 91s Get:2 http://ftpmaster.internal/ubuntu questing/main amd64 libblas3 amd64 3.12.1-2 [359 kB] 91s Get:3 http://ftpmaster.internal/ubuntu questing/main amd64 libgfortran5 amd64 15-20250404-0ubuntu1 [926 kB] 91s Get:4 http://ftpmaster.internal/ubuntu questing/main amd64 liblapack3 amd64 3.12.1-2 [3179 kB] 91s Get:5 http://ftpmaster.internal/ubuntu questing/main amd64 python3-numpy amd64 1:2.2.3+ds-5 [5702 kB] 92s Get:6 http://ftpmaster.internal/ubuntu questing/universe amd64 architecture-properties amd64 0.2.6 [2210 B] 92s Get:7 http://ftpmaster.internal/ubuntu questing/main amd64 python3-all amd64 3.13.3-1 [882 B] 92s Get:8 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-korean-lunar-calendar all 0.3.1-2 [9108 B] 92s Get:9 http://ftpmaster.internal/ubuntu questing/main amd64 python3-pytz all 2025.1-3 [162 kB] 92s Get:10 http://ftpmaster.internal/ubuntu questing/main amd64 python3-tz all 2025.1-3 [1866 B] 92s Get:11 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pandas-lib amd64 2.2.3+dfsg-8build1 [5332 kB] 92s Get:12 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pandas all 2.2.3+dfsg-8build1 [3112 kB] 92s Get:13 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pyluach all 2.2.0-1 [23.2 kB] 92s Get:14 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-toolz all 1.0.0-2 [45.0 kB] 92s Get:15 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-exchange-calendars all 4.9-2 [152 kB] 92s Get:16 http://ftpmaster.internal/ubuntu questing/main amd64 python3-sortedcontainers all 2.4.0-2 [27.6 kB] 92s Get:17 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-hypothesis all 6.127.4-1 [335 kB] 92s Get:18 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 92s Get:19 http://ftpmaster.internal/ubuntu questing/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 92s Get:20 http://ftpmaster.internal/ubuntu questing-proposed/universe amd64 python3-pytest all 8.3.5-2 [252 kB] 92s Fetched 19.8 MB in 1s (17.9 MB/s) 92s Selecting previously unselected package python3-numpy-dev:amd64. 92s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 80518 files and directories currently installed.) 92s Preparing to unpack .../00-python3-numpy-dev_1%3a2.2.3+ds-5_amd64.deb ... 92s Unpacking python3-numpy-dev:amd64 (1:2.2.3+ds-5) ... 92s Selecting previously unselected package libblas3:amd64. 92s Preparing to unpack .../01-libblas3_3.12.1-2_amd64.deb ... 92s Unpacking libblas3:amd64 (3.12.1-2) ... 92s Selecting previously unselected package libgfortran5:amd64. 92s Preparing to unpack .../02-libgfortran5_15-20250404-0ubuntu1_amd64.deb ... 92s Unpacking libgfortran5:amd64 (15-20250404-0ubuntu1) ... 92s Selecting previously unselected package liblapack3:amd64. 92s Preparing to unpack .../03-liblapack3_3.12.1-2_amd64.deb ... 92s Unpacking liblapack3:amd64 (3.12.1-2) ... 92s Selecting previously unselected package python3-numpy. 93s Preparing to unpack .../04-python3-numpy_1%3a2.2.3+ds-5_amd64.deb ... 93s Unpacking python3-numpy (1:2.2.3+ds-5) ... 93s Selecting previously unselected package architecture-properties:amd64. 93s Preparing to unpack .../05-architecture-properties_0.2.6_amd64.deb ... 93s Unpacking architecture-properties:amd64 (0.2.6) ... 93s Selecting previously unselected package python3-all. 93s Preparing to unpack .../06-python3-all_3.13.3-1_amd64.deb ... 93s Unpacking python3-all (3.13.3-1) ... 93s Selecting previously unselected package python3-korean-lunar-calendar. 93s Preparing to unpack .../07-python3-korean-lunar-calendar_0.3.1-2_all.deb ... 93s Unpacking python3-korean-lunar-calendar (0.3.1-2) ... 93s Selecting previously unselected package python3-pytz. 93s Preparing to unpack .../08-python3-pytz_2025.1-3_all.deb ... 93s Unpacking python3-pytz (2025.1-3) ... 93s Selecting previously unselected package python3-tz. 93s Preparing to unpack .../09-python3-tz_2025.1-3_all.deb ... 93s Unpacking python3-tz (2025.1-3) ... 93s Selecting previously unselected package python3-pandas-lib:amd64. 93s Preparing to unpack .../10-python3-pandas-lib_2.2.3+dfsg-8build1_amd64.deb ... 93s Unpacking python3-pandas-lib:amd64 (2.2.3+dfsg-8build1) ... 93s Selecting previously unselected package python3-pandas. 93s Preparing to unpack .../11-python3-pandas_2.2.3+dfsg-8build1_all.deb ... 93s Unpacking python3-pandas (2.2.3+dfsg-8build1) ... 93s Selecting previously unselected package python3-pyluach. 93s Preparing to unpack .../12-python3-pyluach_2.2.0-1_all.deb ... 93s Unpacking python3-pyluach (2.2.0-1) ... 93s Selecting previously unselected package python3-toolz. 93s Preparing to unpack .../13-python3-toolz_1.0.0-2_all.deb ... 93s Unpacking python3-toolz (1.0.0-2) ... 93s Selecting previously unselected package python3-exchange-calendars. 93s Preparing to unpack .../14-python3-exchange-calendars_4.9-2_all.deb ... 93s Unpacking python3-exchange-calendars (4.9-2) ... 93s Selecting previously unselected package python3-sortedcontainers. 93s Preparing to unpack .../15-python3-sortedcontainers_2.4.0-2_all.deb ... 93s Unpacking python3-sortedcontainers (2.4.0-2) ... 93s Selecting previously unselected package python3-hypothesis. 93s Preparing to unpack .../16-python3-hypothesis_6.127.4-1_all.deb ... 93s Unpacking python3-hypothesis (6.127.4-1) ... 93s Selecting previously unselected package python3-iniconfig. 93s Preparing to unpack .../17-python3-iniconfig_1.1.1-2_all.deb ... 93s Unpacking python3-iniconfig (1.1.1-2) ... 93s Selecting previously unselected package python3-pluggy. 93s Preparing to unpack .../18-python3-pluggy_1.5.0-1_all.deb ... 93s Unpacking python3-pluggy (1.5.0-1) ... 94s Selecting previously unselected package python3-pytest. 94s Preparing to unpack .../19-python3-pytest_8.3.5-2_all.deb ... 94s Unpacking python3-pytest (8.3.5-2) ... 94s Setting up python3-iniconfig (1.1.1-2) ... 94s Setting up python3-pyluach (2.2.0-1) ... 94s Setting up architecture-properties:amd64 (0.2.6) ... 94s Setting up python3-all (3.13.3-1) ... 94s Setting up python3-pytz (2025.1-3) ... 94s Setting up python3-sortedcontainers (2.4.0-2) ... 94s Setting up python3-tz (2025.1-3) ... 94s Setting up libblas3:amd64 (3.12.1-2) ... 94s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 94s Setting up python3-korean-lunar-calendar (0.3.1-2) ... 94s Setting up python3-numpy-dev:amd64 (1:2.2.3+ds-5) ... 94s Setting up libgfortran5:amd64 (15-20250404-0ubuntu1) ... 94s Setting up python3-pluggy (1.5.0-1) ... 94s Setting up python3-toolz (1.0.0-2) ... 94s Setting up liblapack3:amd64 (3.12.1-2) ... 94s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 94s Setting up python3-pytest (8.3.5-2) ... 95s Setting up python3-hypothesis (6.127.4-1) ... 95s Setting up python3-numpy (1:2.2.3+ds-5) ... 96s Setting up python3-pandas-lib:amd64 (2.2.3+dfsg-8build1) ... 96s Setting up python3-pandas (2.2.3+dfsg-8build1) ... 100s Setting up python3-exchange-calendars (4.9-2) ... 100s Processing triggers for man-db (2.13.0-1) ... 100s Processing triggers for libc-bin (2.41-6ubuntu1) ... 101s autopkgtest [19:29:54]: test run-tests: [----------------------- 102s ============================= test session starts ============================== 102s platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3.13 102s cachedir: .pytest_cache 102s hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/tmp/autopkgtest.j8CIQU/autopkgtest_tmp/.hypothesis/examples')) 102s rootdir: /tmp/autopkgtest.j8CIQU/autopkgtest_tmp 102s plugins: hypothesis-6.127.4, typeguard-4.4.2 104s collecting ... collected 8189 items 104s 104s tests/test_aixk_calendar.py::TestAIXKCalendar::test_testbase_integrity PASSED [ 0%] 104s tests/test_aixk_calendar.py::TestAIXKCalendar::test_base_integrity PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calculated_against_csv PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_start_end PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_invalid_input PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_min PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_max PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sanity_check_session_lengths PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_specification PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_daylight_savings PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_opens_closes_break_starts_ends PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[both] PASSED [ 0%] 105s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[both] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[both] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[both] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[left] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[right] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[neither] PASSED [ 0%] 106s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[neither] PASSED [ 0%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[neither] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[neither] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[neither] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[neither] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[neither] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[right] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[left] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[both] PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_has_break PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_regular_holidays_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_holidays_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample_time PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays_time PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample_time PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_open_close_break_start_end PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_has_break PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_next_prev_session PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_offset PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_session PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_date_to_session PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_open_close PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_in_range PASSED [ 1%] 107s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_has_break PASSED [ 1%] 108s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_window PASSED [ 1%] 108s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_distance PASSED [ 1%] 108s tests/test_aixk_calendar.py::TestAIXKCalendar::test_trading_index PASSED [ 1%] 108s tests/test_aixk_calendar.py::TestAIXKCalendar::test_deprecated PASSED [ 1%] 108s tests/test_always_open.py::TestAlwaysOpenCalendar::test_testbase_integrity PASSED [ 1%] 108s tests/test_always_open.py::TestAlwaysOpenCalendar::test_base_integrity PASSED [ 1%] 108s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calculated_against_csv PASSED [ 1%] 108s tests/test_always_open.py::TestAlwaysOpenCalendar::test_start_end PASSED [ 1%] 108s tests/test_always_open.py::TestAlwaysOpenCalendar::test_invalid_input PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_min PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_max PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sanity_check_session_lengths PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_specification PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_daylight_savings PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_opens_closes_break_starts_ends PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[left] PASSED [ 1%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-next] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-next] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-next] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-next] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-previous] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-previous] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-none] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-none] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-none] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-none] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[right] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[left] PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_has_break PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_regular_holidays_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_holidays_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample_time PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays_time PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample_time PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_open_close_break_start_end PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_has_break PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_next_prev_session PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_offset PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_session PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_date_to_session PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_open_close PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_in_range PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_has_break PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_window PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_distance PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_trading_index PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_deprecated PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_day PASSED [ 2%] 109s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_minute PASSED [ 2%] 109s tests/test_asex_calendar.py::TestASEXCalendar::test_testbase_integrity PASSED [ 2%] 109s tests/test_asex_calendar.py::TestASEXCalendar::test_base_integrity PASSED [ 2%] 111s tests/test_asex_calendar.py::TestASEXCalendar::test_calculated_against_csv PASSED [ 2%] 111s tests/test_asex_calendar.py::TestASEXCalendar::test_start_end PASSED [ 2%] 111s tests/test_asex_calendar.py::TestASEXCalendar::test_invalid_input PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_min PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_max PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_sanity_check_session_lengths PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_specification PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_daylight_savings PASSED [ 2%] 112s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions PASSED [ 2%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_opens_closes_break_starts_ends PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[both] PASSED [ 3%] 113s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[both] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[both] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-next] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-next] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[left] PASSED [ 3%] 114s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[left] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[left] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-next] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[right] PASSED [ 3%] 115s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[right] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[right] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-previous] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-next] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[neither] PASSED [ 3%] 116s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[neither] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[right] PASSED [ 3%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[right] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[right] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[right] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[left] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[both] PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_has_break PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_regular_holidays_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_non_holidays_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample_time PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays_time PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample_time PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_session_open_close_break_start_end PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_session_has_break PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_next_prev_session PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_session_offset PASSED [ 4%] 117s tests/test_asex_calendar.py::TestASEXCalendar::test_is_session PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_date_to_session PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_open_close PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_in_range PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_has_break PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_window PASSED [ 4%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_distance PASSED [ 4%] 119s tests/test_asex_calendar.py::TestASEXCalendar::test_trading_index PASSED [ 4%] 119s tests/test_asex_calendar.py::TestASEXCalendar::test_deprecated PASSED [ 4%] 119s tests/test_asex_calendar.py::TestASEXCalendar::test_close_time_change PASSED [ 4%] 119s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_testbase_integrity PASSED [ 4%] 119s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_base_integrity PASSED [ 4%] 120s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calculated_against_csv PASSED [ 4%] 120s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_start_end PASSED [ 4%] 120s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_invalid_input PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_min PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_max PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sanity_check_session_lengths PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_specification PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_daylight_savings PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions PASSED [ 4%] 121s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_opens_closes_break_starts_ends PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[both] PASSED [ 4%] 122s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[both] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[both] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-next] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-next] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[left] PASSED [ 4%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[left] PASSED [ 5%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[left] PASSED [ 5%] 123s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[left] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[left] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-next] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[right] PASSED [ 5%] 124s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[right] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[right] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-previous] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-next] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[neither] PASSED [ 5%] 125s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[neither] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[right] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[left] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[both] PASSED [ 5%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[both] PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[both] PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_has_break PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_regular_holidays_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_holidays_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample_time PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays_time PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample_time PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_open_close_break_start_end PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_has_break PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_next_prev_session PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_offset PASSED [ 6%] 126s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_session PASSED [ 6%] 127s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_date_to_session PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_open_close PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_in_range PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_has_break PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_window PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_distance PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_trading_index PASSED [ 6%] 128s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_deprecated PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_add_new_aliases PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_aliases_to_names PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_allow_alias_override_with_force PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_follow_alias_chain PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_cache PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_kwargs PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_names PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_names_to_aliases PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_alias_that_already_exists PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_cyclic_aliases PASSED [ 6%] 128s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_remove_aliases PASSED [ 6%] 128s tests/test_calendar_helpers.py::test_constants PASSED [ 6%] 128s tests/test_calendar_helpers.py::test_is_date PASSED [ 6%] 128s tests/test_calendar_helpers.py::test_is_utc PASSED [ 6%] 129s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-True] PASSED [ 6%] 129s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-False] PASSED [ 6%] 129s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-True] PASSED [ 6%] 130s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-False] PASSED [ 6%] 130s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-True] PASSED [ 6%] 130s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-False] PASSED [ 6%] 130s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-True] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-False] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-True] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-False] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[left] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[right] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[both] PASSED [ 6%] 131s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[neither] PASSED [ 6%] 132s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[2021-13-13] PASSED [ 6%] 132s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[malformed1] PASSED [ 6%] 132s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[not a timestamp] PASSED [ 6%] 132s tests/test_calendar_helpers.py::test_parse_timestamp_error_oob PASSED [ 6%] 133s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[2021-06-02 23:00] PASSED [ 6%] 133s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult1] PASSED [ 6%] 133s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult2] PASSED [ 6%] 134s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[2021-06-05] PASSED [ 6%] 134s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult1] PASSED [ 6%] 134s tests/test_calendar_helpers.py::test_parse_date_or_minute_oob PASSED [ 6%] 134s tests/test_calendar_helpers.py::test_parse_date[2021-06-05] PASSED [ 6%] 136s tests/test_calendar_helpers.py::test_parse_date[date_mult1] PASSED [ 6%] 136s tests/test_calendar_helpers.py::test_parse_date_errors PASSED [ 6%] 136s tests/test_calendar_helpers.py::test_parse_session PASSED [ 6%] 136s tests/test_calendar_helpers.py::test_parse_trading_minute PASSED [ 6%] 139s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XLON] PASSED [ 6%] 140s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] PASSED [ 6%] 141s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XLON] PASSED [ 6%] 144s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XHKG] PASSED [ 6%] 148s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] PASSED [ 6%] 148s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XHKG] PASSED [ 6%] 150s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XTAE] PASSED [ 6%] 152s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XTAE] PASSED [ 6%] 152s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XTAE] PASSED [ 6%] 156s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[CMES] PASSED [ 6%] 159s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] PASSED [ 7%] 159s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[CMES] PASSED [ 7%] 160s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[24/7] PASSED [ 7%] 161s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[24/7] PASSED [ 7%] 161s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[24/7] PASSED [ 7%] 161s tests/test_calendar_helpers.py::TestTradingIndex::test_for_empty_with_neither_fuzz PASSED [ 7%] 162s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[XHKG] PASSED [ 7%] 162s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[24/7] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[CMES] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-True] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-False] PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_force PASSED [ 7%] 163s tests/test_calendar_helpers.py::TestTradingIndex::test_ignore_breaks PASSED [ 7%] 164s tests/test_calendar_helpers.py::TestTradingIndex::test_align PASSED [ 7%] 164s tests/test_calendar_helpers.py::TestTradingIndex::test_align_overlap PASSED [ 7%] 165s tests/test_calendar_helpers.py::TestTradingIndex::test_start_end_times PASSED [ 7%] 165s tests/test_calendar_helpers.py::TestTradingIndex::test_parsing_errors PASSED [ 7%] 165s tests/test_cmes_calendar.py::TestCMESCalendar::test_testbase_integrity PASSED [ 7%] 165s tests/test_cmes_calendar.py::TestCMESCalendar::test_base_integrity PASSED [ 7%] 166s tests/test_cmes_calendar.py::TestCMESCalendar::test_calculated_against_csv PASSED [ 7%] 166s tests/test_cmes_calendar.py::TestCMESCalendar::test_start_end PASSED [ 7%] 166s tests/test_cmes_calendar.py::TestCMESCalendar::test_invalid_input PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_min PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_max PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_sanity_check_session_lengths PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_specification PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_daylight_savings PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_opens_closes_break_starts_ends PASSED [ 7%] 167s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[left] PASSED [ 7%] 168s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[left] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[left] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-next] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-next] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 7%] 169s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-previous] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-previous] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-none] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-none] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[right] PASSED [ 7%] 170s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[right] PASSED [ 7%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[right] PASSED [ 7%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[right] PASSED [ 7%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[right] PASSED [ 7%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[left] PASSED [ 7%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[left] PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_has_break PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_regular_holidays_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_holidays_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample_time PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays_time PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample_time PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_open_close_break_start_end PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_has_break PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_next_prev_session PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_offset PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_session PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_date_to_session PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_open_close PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_in_range PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_has_break PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_window PASSED [ 8%] 171s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_distance PASSED [ 8%] 172s tests/test_cmes_calendar.py::TestCMESCalendar::test_trading_index PASSED [ 8%] 172s tests/test_cmes_calendar.py::TestCMESCalendar::test_deprecated PASSED [ 8%] 172s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar PASSED [ 8%] 172s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar_type PASSED [ 8%] 172s tests/test_exchange_calendar.py::TestCalendarRegistration::test_both_places_are_checked PASSED [ 8%] 172s tests/test_exchange_calendar.py::TestCalendarRegistration::test_force_registration PASSED [ 8%] 189s tests/test_exchange_calendar.py::test_default_calendars PASSED [ 8%] 189s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19-0-time_offset0-tz0-2016-07-19 9:31] PASSED [ 8%] 189s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19--1-time_offset1-tz1-2016-07-18 17:01] PASSED [ 8%] 189s tests/test_exchange_calendar.py::test_days_at_time[2004-04-05--1-time_offset2-tz2-2004-04-04 17:01] PASSED [ 8%] 189s tests/test_exchange_calendar.py::test_days_at_time[1990-04-02--1-time_offset3-tz3-1990-04-01 19:01] PASSED [ 8%] 189s tests/test_iepa_calendar.py::TestIEPACalendar::test_testbase_integrity PASSED [ 8%] 189s tests/test_iepa_calendar.py::TestIEPACalendar::test_base_integrity PASSED [ 8%] 190s tests/test_iepa_calendar.py::TestIEPACalendar::test_calculated_against_csv PASSED [ 8%] 190s tests/test_iepa_calendar.py::TestIEPACalendar::test_start_end PASSED [ 8%] 190s tests/test_iepa_calendar.py::TestIEPACalendar::test_invalid_input PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_min PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_max PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_sanity_check_session_lengths PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_specification PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_daylight_savings PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_opens_closes_break_starts_ends PASSED [ 8%] 191s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[both] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-next] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-next] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-next] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-next] PASSED [ 8%] 192s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[left] PASSED [ 8%] 193s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[left] PASSED [ 8%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[left] PASSED [ 8%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-previous] PASSED [ 8%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 8%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-previous] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-previous] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-next] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-next] PASSED [ 9%] 194s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[right] PASSED [ 9%] 195s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[right] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[right] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-previous] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-next] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[neither] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[neither] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[neither] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[neither] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[neither] PASSED [ 9%] 196s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[neither] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[right] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[right] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[right] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[right] PASSED [ 9%] 197s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[right] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[left] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[both] PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_has_break PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_regular_holidays_sample PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_sample PASSED [ 9%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_holidays_sample PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens_sample PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample_time PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays_time PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample_time PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_open_close_break_start_end PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_has_break PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_next_prev_session PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_offset PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_session PASSED [ 10%] 198s tests/test_iepa_calendar.py::TestIEPACalendar::test_date_to_session PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_open_close PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_in_range PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_has_break PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_window PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_distance PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_trading_index PASSED [ 10%] 199s tests/test_iepa_calendar.py::TestIEPACalendar::test_deprecated PASSED [ 10%] 199s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_testbase_integrity PASSED [ 10%] 199s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_base_integrity PASSED [ 10%] 199s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calculated_against_csv PASSED [ 10%] 199s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_start_end PASSED [ 10%] 199s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_invalid_input PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_min PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_max PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sanity_check_session_lengths PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_specification PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_daylight_savings PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_opens_closes_break_starts_ends PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-next] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-next] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-next] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-next] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-previous] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-previous] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-none] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-none] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-none] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-none] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[right] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[left] PASSED [ 10%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[left] PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[left] PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[left] PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[left] PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[left] PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_has_break PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_regular_holidays_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_holidays_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample_time PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays_time PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample_time PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_open_close_break_start_end PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_has_break PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_next_prev_session PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_offset PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_session PASSED [ 11%] 200s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_date_to_session PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_open_close PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_in_range PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_has_break PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_window PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_distance PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_trading_index PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_deprecated PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday PASSED [ 11%] 201s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday_minute PASSED [ 11%] 201s tests/test_xams_calendar.py::TestXAMSCalendar::test_testbase_integrity PASSED [ 11%] 201s tests/test_xams_calendar.py::TestXAMSCalendar::test_base_integrity PASSED [ 11%] 202s tests/test_xams_calendar.py::TestXAMSCalendar::test_calculated_against_csv PASSED [ 11%] 202s tests/test_xams_calendar.py::TestXAMSCalendar::test_start_end PASSED [ 11%] 202s tests/test_xams_calendar.py::TestXAMSCalendar::test_invalid_input PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_min PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_max PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_sanity_check_session_lengths PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_specification PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_daylight_savings PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_opens_closes_break_starts_ends PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[both] PASSED [ 11%] 203s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[both] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[both] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-next] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-next] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[left] PASSED [ 11%] 204s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[left] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[left] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-next] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[right] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[right] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[right] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[right] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[right] PASSED [ 11%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[right] PASSED [ 12%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[right] PASSED [ 12%] 205s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[right] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[right] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[right] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-previous] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-next] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[neither] PASSED [ 12%] 206s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[neither] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[right] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[left] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[both] PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_has_break PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_regular_holidays_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_holidays_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample_time PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays_time PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample_time PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens PASSED [ 12%] 207s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes PASSED [ 12%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_open_close_break_start_end PASSED [ 12%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_has_break PASSED [ 12%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_next_prev_session PASSED [ 13%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_offset PASSED [ 13%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_session PASSED [ 13%] 208s tests/test_xams_calendar.py::TestXAMSCalendar::test_date_to_session PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_open_close PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_in_range PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_has_break PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_window PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_distance PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_trading_index PASSED [ 13%] 209s tests/test_xams_calendar.py::TestXAMSCalendar::test_deprecated PASSED [ 13%] 209s tests/test_xasx_calendar.py::TestXASXCalendar::test_testbase_integrity PASSED [ 13%] 209s tests/test_xasx_calendar.py::TestXASXCalendar::test_base_integrity PASSED [ 13%] 210s tests/test_xasx_calendar.py::TestXASXCalendar::test_calculated_against_csv PASSED [ 13%] 210s tests/test_xasx_calendar.py::TestXASXCalendar::test_start_end PASSED [ 13%] 210s tests/test_xasx_calendar.py::TestXASXCalendar::test_invalid_input PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_min PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_max PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_sanity_check_session_lengths PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_specification PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_daylight_savings PASSED [ 13%] 211s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_opens_closes_break_starts_ends PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[both] PASSED [ 13%] 212s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[both] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[both] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-next] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-next] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[left] PASSED [ 13%] 213s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[left] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[left] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-next] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[right] PASSED [ 13%] 214s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[right] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[right] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-previous] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-next] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[neither] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[neither] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[neither] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[neither] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[neither] PASSED [ 13%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[neither] PASSED [ 14%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[neither] PASSED [ 14%] 215s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[neither] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[right] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[left] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[left] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[left] PASSED [ 14%] 216s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[left] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[both] PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_has_break PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_regular_holidays_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_holidays_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample_time PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays_time PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample_time PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_open_close_break_start_end PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_has_break PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_next_prev_session PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_offset PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_session PASSED [ 14%] 217s tests/test_xasx_calendar.py::TestXASXCalendar::test_date_to_session PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_open_close PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_in_range PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_has_break PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_window PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_distance PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_trading_index PASSED [ 14%] 218s tests/test_xasx_calendar.py::TestXASXCalendar::test_deprecated PASSED [ 14%] 218s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_testbase_integrity PASSED [ 14%] 218s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_base_integrity PASSED [ 14%] 220s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calculated_against_csv PASSED [ 14%] 220s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_start_end PASSED [ 14%] 220s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_invalid_input PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_min PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_max PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sanity_check_session_lengths PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_specification PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_daylight_savings PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions PASSED [ 14%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_opens_closes_break_starts_ends PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[both] PASSED [ 15%] 221s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[both] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[both] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[both] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-next] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-next] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[left] PASSED [ 15%] 222s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[left] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[left] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[left] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-next] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 15%] 223s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[right] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-none] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-none] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-none] PASSED [ 15%] 224s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-none] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-previous] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-next] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[neither] PASSED [ 15%] 225s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[neither] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[right] PASSED [ 15%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[right] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[right] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[right] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[left] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[both] PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_has_break PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_regular_holidays_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_holidays_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample_time PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays_time PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample_time PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_open_close_break_start_end PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_has_break PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_next_prev_session PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_offset PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_session PASSED [ 16%] 226s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_date_to_session PASSED [ 16%] 227s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_open_close PASSED [ 16%] 227s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_in_range PASSED [ 16%] 227s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_has_break PASSED [ 16%] 227s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_window PASSED [ 16%] 227s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_distance PASSED [ 16%] 228s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_trading_index PASSED [ 16%] 228s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_deprecated PASSED [ 16%] 228s tests/test_xbog_calendar.py::TestXBOGCalendar::test_testbase_integrity PASSED [ 16%] 228s tests/test_xbog_calendar.py::TestXBOGCalendar::test_base_integrity PASSED [ 16%] 229s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calculated_against_csv PASSED [ 16%] 229s tests/test_xbog_calendar.py::TestXBOGCalendar::test_start_end PASSED [ 16%] 229s tests/test_xbog_calendar.py::TestXBOGCalendar::test_invalid_input PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_min PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_max PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sanity_check_session_lengths PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_specification PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_daylight_savings PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions PASSED [ 16%] 230s tests/test_xbog_calendar.py::TestXBOGCalendar::test_opens_closes_break_starts_ends PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[both] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-next] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-next] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 16%] 231s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[left] PASSED [ 16%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[left] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[left] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[left] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-next] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 17%] 232s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[right] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-none] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-none] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-none] PASSED [ 17%] 233s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-none] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-previous] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-next] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[neither] PASSED [ 17%] 234s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[neither] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[neither] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[neither] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[neither] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[neither] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[right] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[left] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[both] PASSED [ 17%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[both] PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_has_break PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_regular_holidays_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_holidays_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample_time PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays_time PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample_time PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_open_close_break_start_end PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_has_break PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_next_prev_session PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_offset PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_session PASSED [ 18%] 235s tests/test_xbog_calendar.py::TestXBOGCalendar::test_date_to_session PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_open_close PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_in_range PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_has_break PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_window PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_distance PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_trading_index PASSED [ 18%] 236s tests/test_xbog_calendar.py::TestXBOGCalendar::test_deprecated PASSED [ 18%] 236s tests/test_xbom_calendar.py::TestXBOMCalendar::test_testbase_integrity PASSED [ 18%] 236s tests/test_xbom_calendar.py::TestXBOMCalendar::test_base_integrity PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_start_end PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_invalid_input PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_min PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_max PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sanity_check_session_lengths PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_specification PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_daylight_savings PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_opens_closes_break_starts_ends PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[both] PASSED [ 18%] 237s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[both] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[both] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[both] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-next] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-next] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[left] PASSED [ 18%] 238s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[left] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[left] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-next] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[right] PASSED [ 18%] 239s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[right] PASSED [ 18%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[right] PASSED [ 18%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-previous] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-next] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[neither] PASSED [ 19%] 240s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[neither] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[right] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[left] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[both] PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_has_break PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_regular_holidays_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_holidays_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample_time PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays_time PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample_time PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_open_close_break_start_end PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_has_break PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_next_prev_session PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_offset PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_session PASSED [ 19%] 241s tests/test_xbom_calendar.py::TestXBOMCalendar::test_date_to_session PASSED [ 19%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_open_close PASSED [ 19%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_in_range PASSED [ 20%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_has_break PASSED [ 20%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_window PASSED [ 20%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_distance PASSED [ 20%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_trading_index PASSED [ 20%] 242s tests/test_xbom_calendar.py::TestXBOMCalendar::test_deprecated PASSED [ 20%] 242s tests/test_xbru_calendar.py::TestXBRUCalendar::test_testbase_integrity PASSED [ 20%] 242s tests/test_xbru_calendar.py::TestXBRUCalendar::test_base_integrity PASSED [ 20%] 243s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calculated_against_csv PASSED [ 20%] 244s tests/test_xbru_calendar.py::TestXBRUCalendar::test_start_end PASSED [ 20%] 244s tests/test_xbru_calendar.py::TestXBRUCalendar::test_invalid_input PASSED [ 20%] 244s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_min PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_max PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sanity_check_session_lengths PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_specification PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_daylight_savings PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_opens_closes_break_starts_ends PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[both] PASSED [ 20%] 245s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[both] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[both] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-next] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-next] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[left] PASSED [ 20%] 246s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[left] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[left] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-next] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[right] PASSED [ 20%] 247s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[right] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[right] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-previous] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-next] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[neither] PASSED [ 20%] 248s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[neither] PASSED [ 20%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[neither] PASSED [ 20%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[neither] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[right] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[left] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[both] PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_has_break PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_regular_holidays_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_holidays_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample_time PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays_time PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample_time PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_open_close_break_start_end PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_has_break PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_next_prev_session PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_offset PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_session PASSED [ 21%] 249s tests/test_xbru_calendar.py::TestXBRUCalendar::test_date_to_session PASSED [ 21%] 250s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_open_close PASSED [ 21%] 250s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_in_range PASSED [ 21%] 250s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_has_break PASSED [ 21%] 250s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_window PASSED [ 21%] 250s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_distance PASSED [ 21%] 251s tests/test_xbru_calendar.py::TestXBRUCalendar::test_trading_index PASSED [ 21%] 251s tests/test_xbru_calendar.py::TestXBRUCalendar::test_deprecated PASSED [ 21%] 251s tests/test_xbse_calendar.py::TestXBSECalendar::test_testbase_integrity PASSED [ 21%] 251s tests/test_xbse_calendar.py::TestXBSECalendar::test_base_integrity PASSED [ 21%] 252s tests/test_xbse_calendar.py::TestXBSECalendar::test_calculated_against_csv PASSED [ 21%] 252s tests/test_xbse_calendar.py::TestXBSECalendar::test_start_end PASSED [ 21%] 252s tests/test_xbse_calendar.py::TestXBSECalendar::test_invalid_input PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_min PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_max PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_sanity_check_session_lengths PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_specification PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_daylight_savings PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_opens_closes_break_starts_ends PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[both] PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[both] PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[both] PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[both] PASSED [ 21%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[both] PASSED [ 22%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[both] PASSED [ 22%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[both] PASSED [ 22%] 253s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[both] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[both] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[both] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-next] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-next] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[left] PASSED [ 22%] 254s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[left] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[left] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[left] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-next] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 22%] 255s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[right] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-none] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-none] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-none] PASSED [ 22%] 256s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-none] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-previous] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-next] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[neither] PASSED [ 22%] 257s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[neither] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[right] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[left] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[left] PASSED [ 22%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[left] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[both] PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_has_break PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_regular_holidays_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_holidays_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample_time PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays_time PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample_time PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_open_close_break_start_end PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_has_break PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_next_prev_session PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_offset PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_session PASSED [ 23%] 258s tests/test_xbse_calendar.py::TestXBSECalendar::test_date_to_session PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_open_close PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_in_range PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_has_break PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_window PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_distance PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_trading_index PASSED [ 23%] 259s tests/test_xbse_calendar.py::TestXBSECalendar::test_deprecated PASSED [ 23%] 259s tests/test_xbud_calendar.py::TestXBUDCalendar::test_testbase_integrity PASSED [ 23%] 259s tests/test_xbud_calendar.py::TestXBUDCalendar::test_base_integrity PASSED [ 23%] 261s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calculated_against_csv PASSED [ 23%] 261s tests/test_xbud_calendar.py::TestXBUDCalendar::test_start_end PASSED [ 23%] 261s tests/test_xbud_calendar.py::TestXBUDCalendar::test_invalid_input PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_min PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_max PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sanity_check_session_lengths PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_specification PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_daylight_savings PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_opens_closes_break_starts_ends PASSED [ 23%] 262s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[both] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-next] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-next] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-next] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-next] PASSED [ 23%] 263s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[left] PASSED [ 23%] 264s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[left] PASSED [ 23%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[left] PASSED [ 23%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-previous] PASSED [ 23%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 23%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-previous] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-previous] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-next] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-next] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[right] PASSED [ 24%] 265s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[right] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[right] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-previous] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-next] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[neither] PASSED [ 24%] 266s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[neither] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[right] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[left] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[both] PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_has_break PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_regular_holidays_sample PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_sample PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_holidays_sample PASSED [ 24%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens_sample PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample_time PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays_time PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample_time PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_open_close_break_start_end PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_has_break PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_next_prev_session PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_offset PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_session PASSED [ 25%] 267s tests/test_xbud_calendar.py::TestXBUDCalendar::test_date_to_session PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_open_close PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_in_range PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_has_break PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_window PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_distance PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_trading_index PASSED [ 25%] 268s tests/test_xbud_calendar.py::TestXBUDCalendar::test_deprecated PASSED [ 25%] 268s tests/test_xbue_calendar.py::TestXBUECalendar::test_testbase_integrity PASSED [ 25%] 268s tests/test_xbue_calendar.py::TestXBUECalendar::test_base_integrity PASSED [ 25%] 270s tests/test_xbue_calendar.py::TestXBUECalendar::test_calculated_against_csv PASSED [ 25%] 270s tests/test_xbue_calendar.py::TestXBUECalendar::test_start_end PASSED [ 25%] 270s tests/test_xbue_calendar.py::TestXBUECalendar::test_invalid_input PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_min PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_max PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_sanity_check_session_lengths PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_specification PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_daylight_savings PASSED [ 25%] 271s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_opens_closes_break_starts_ends PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[both] PASSED [ 25%] 272s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[both] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[both] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-next] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-next] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-next] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-next] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[left] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-previous] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-previous] PASSED [ 25%] 273s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-previous] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-next] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-next] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[right] PASSED [ 25%] 274s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[right] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[right] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-none] PASSED [ 25%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-none] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-previous] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-next] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[neither] PASSED [ 26%] 275s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[neither] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[right] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[left] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[both] PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_has_break PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_regular_holidays_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_holidays_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample_time PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays_time PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample_time PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_open_close_break_start_end PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_has_break PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_next_prev_session PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_offset PASSED [ 26%] 276s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_session PASSED [ 26%] 277s tests/test_xbue_calendar.py::TestXBUECalendar::test_date_to_session PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_open_close PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_in_range PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_has_break PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_window PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_distance PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_trading_index PASSED [ 26%] 278s tests/test_xbue_calendar.py::TestXBUECalendar::test_deprecated PASSED [ 26%] 278s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_testbase_integrity PASSED [ 27%] 278s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_base_integrity PASSED [ 27%] 279s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calculated_against_csv PASSED [ 27%] 279s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_start_end PASSED [ 27%] 279s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_invalid_input PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_min PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_max PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sanity_check_session_lengths PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_specification PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_daylight_savings PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions PASSED [ 27%] 280s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_opens_closes_break_starts_ends PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[both] PASSED [ 27%] 281s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[both] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[both] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-next] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-next] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[left] PASSED [ 27%] 282s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[left] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[left] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-next] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[right] PASSED [ 27%] 283s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[right] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[right] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-previous] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-next] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[neither] PASSED [ 27%] 284s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[neither] PASSED [ 27%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[neither] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[neither] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[neither] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[neither] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[neither] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[right] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[left] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[both] PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_has_break PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_regular_holidays_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_holidays_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample_time PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays_time PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample_time PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_open_close_break_start_end PASSED [ 28%] 285s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_has_break PASSED [ 28%] 286s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_next_prev_session PASSED [ 28%] 286s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_offset PASSED [ 28%] 286s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_session PASSED [ 28%] 286s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_date_to_session PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_open_close PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_in_range PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_has_break PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_window PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_distance PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_trading_index PASSED [ 28%] 287s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_deprecated PASSED [ 28%] 287s tests/test_xcse_calendar.py::TestXCSECalendar::test_testbase_integrity PASSED [ 28%] 287s tests/test_xcse_calendar.py::TestXCSECalendar::test_base_integrity PASSED [ 28%] 288s tests/test_xcse_calendar.py::TestXCSECalendar::test_calculated_against_csv PASSED [ 28%] 288s tests/test_xcse_calendar.py::TestXCSECalendar::test_start_end PASSED [ 28%] 289s tests/test_xcse_calendar.py::TestXCSECalendar::test_invalid_input PASSED [ 28%] 289s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_min PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_max PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_sanity_check_session_lengths PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_specification PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_daylight_savings PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_opens_closes_break_starts_ends PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[both] PASSED [ 28%] 290s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[both] PASSED [ 28%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[both] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-next] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-next] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[left] PASSED [ 29%] 291s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[left] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[left] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-next] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 29%] 292s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[right] PASSED [ 29%] 293s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[right] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[right] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-previous] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-next] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[neither] PASSED [ 29%] 294s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[neither] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[right] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[left] PASSED [ 29%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[left] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[left] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[left] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[both] PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_has_break PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_regular_holidays_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_holidays_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample_time PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays_time PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample_time PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_open_close_break_start_end PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_has_break PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_next_prev_session PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_offset PASSED [ 30%] 295s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_session PASSED [ 30%] 296s tests/test_xcse_calendar.py::TestXCSECalendar::test_date_to_session PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_open_close PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_in_range PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_has_break PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_window PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_distance PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_trading_index PASSED [ 30%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_deprecated PASSED [ 30%] 297s tests/test_xdub_calendar.py::TestXDUBCalendar::test_testbase_integrity PASSED [ 30%] 297s tests/test_xdub_calendar.py::TestXDUBCalendar::test_base_integrity PASSED [ 30%] 299s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calculated_against_csv PASSED [ 30%] 299s tests/test_xdub_calendar.py::TestXDUBCalendar::test_start_end PASSED [ 30%] 299s tests/test_xdub_calendar.py::TestXDUBCalendar::test_invalid_input PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_min PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_max PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sanity_check_session_lengths PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_specification PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_daylight_savings PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_opens_closes_break_starts_ends PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[both] PASSED [ 30%] 300s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[both] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[both] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-next] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-next] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-next] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-next] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[left] PASSED [ 30%] 301s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[left] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[left] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-next] PASSED [ 30%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-next] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[right] PASSED [ 31%] 302s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[right] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[right] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[right] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-previous] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-next] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[neither] PASSED [ 31%] 303s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[neither] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[right] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[left] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[both] PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_has_break PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_regular_holidays_sample PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_sample PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_holidays_sample PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens_sample PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample_time PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays_time PASSED [ 31%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample PASSED [ 32%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample_time PASSED [ 32%] 304s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_open_close_break_start_end PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_has_break PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_next_prev_session PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_offset PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_session PASSED [ 32%] 305s tests/test_xdub_calendar.py::TestXDUBCalendar::test_date_to_session PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_open_close PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_in_range PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_has_break PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_window PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_distance PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_trading_index PASSED [ 32%] 306s tests/test_xdub_calendar.py::TestXDUBCalendar::test_deprecated PASSED [ 32%] 306s tests/test_xdus_calendar.py::TestXDUSCalendar::test_testbase_integrity PASSED [ 32%] 306s tests/test_xdus_calendar.py::TestXDUSCalendar::test_base_integrity PASSED [ 32%] 307s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calculated_against_csv PASSED [ 32%] 307s tests/test_xdus_calendar.py::TestXDUSCalendar::test_start_end PASSED [ 32%] 307s tests/test_xdus_calendar.py::TestXDUSCalendar::test_invalid_input PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_min PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_max PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sanity_check_session_lengths PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_specification PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_daylight_savings PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_opens_closes_break_starts_ends PASSED [ 32%] 308s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[both] PASSED [ 32%] 309s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[both] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[both] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-next] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-next] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[left] PASSED [ 32%] 310s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[left] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[left] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-next] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[right] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[right] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[right] PASSED [ 32%] 311s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[right] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-previous] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-next] PASSED [ 32%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 33%] 312s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[neither] PASSED [ 33%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[neither] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[right] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[left] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[both] PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_has_break PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_regular_holidays_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_holidays_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample_time PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays_time PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample_time PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_open_close_break_start_end PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_has_break PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_next_prev_session PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_offset PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_session PASSED [ 33%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_date_to_session PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_open_close PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_in_range PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_has_break PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_window PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_distance PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_trading_index PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_deprecated PASSED [ 33%] 316s tests/test_xeee_calendar.py::TestXEEECalendar::test_testbase_integrity PASSED [ 33%] 316s tests/test_xeee_calendar.py::TestXEEECalendar::test_base_integrity PASSED [ 33%] 317s tests/test_xeee_calendar.py::TestXEEECalendar::test_calculated_against_csv PASSED [ 33%] 317s tests/test_xeee_calendar.py::TestXEEECalendar::test_start_end PASSED [ 33%] 317s tests/test_xeee_calendar.py::TestXEEECalendar::test_invalid_input PASSED [ 33%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_min PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_max PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_sanity_check_session_lengths PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_specification PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_daylight_savings PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_opens_closes_break_starts_ends PASSED [ 34%] 318s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[both] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-next] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-next] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-next] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-next] PASSED [ 34%] 319s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[left] PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[left] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[left] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-next] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-next] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[right] PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[right] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[right] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-previous] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-next] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[neither] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[neither] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[right] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[right] PASSED [ 35%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[right] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[left] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[both] PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_has_break PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_regular_holidays_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_holidays_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample_time PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays_time PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample_time PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_open_close_break_start_end PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_has_break PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_next_prev_session PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_offset PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_session PASSED [ 35%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_date_to_session PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_open_close PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_in_range PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_has_break PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_window PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_distance PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_trading_index PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_deprecated PASSED [ 35%] 325s tests/test_xetr_calendar.py::TestXETRCalendar::test_testbase_integrity PASSED [ 35%] 325s tests/test_xetr_calendar.py::TestXETRCalendar::test_base_integrity PASSED [ 35%] 326s tests/test_xetr_calendar.py::TestXETRCalendar::test_calculated_against_csv PASSED [ 35%] 327s tests/test_xetr_calendar.py::TestXETRCalendar::test_start_end PASSED [ 35%] 327s tests/test_xetr_calendar.py::TestXETRCalendar::test_invalid_input PASSED [ 35%] 327s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_min PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_max PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_sanity_check_session_lengths PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_specification PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_daylight_savings PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_opens_closes_break_starts_ends PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[both] PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-next] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-next] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-next] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-next] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[left] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[left] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-next] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-next] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[right] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-previous] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-next] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[both] PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[both] PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[both] PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[both] PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[both] PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[both] PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[both] PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[both] PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_has_break PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_regular_holidays_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_holidays_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample_time PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays_time PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample_time PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_open_close_break_start_end PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_has_break PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_next_prev_session PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_offset PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_session PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_date_to_session PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_open_close PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_in_range PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_has_break PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_window PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_distance PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_trading_index PASSED [ 37%] 334s tests/test_xetr_calendar.py::TestXETRCalendar::test_deprecated PASSED [ 37%] 334s tests/test_xfra_calendar.py::TestXFRACalendar::test_testbase_integrity PASSED [ 37%] 334s tests/test_xfra_calendar.py::TestXFRACalendar::test_base_integrity PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_calculated_against_csv PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_start_end PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_invalid_input PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_min PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_max PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_sanity_check_session_lengths PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_specification PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_daylight_savings PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_opens_closes_break_starts_ends PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[both] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[both] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[both] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-next] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-next] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[left] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[left] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[left] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-next] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[right] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[right] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[right] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[right] PASSED [ 37%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[right] PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[right] PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[right] PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[right] PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[right] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[right] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-previous] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-next] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[neither] PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[neither] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[right] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[left] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[both] PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_has_break PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_regular_holidays_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_holidays_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample_time PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays_time PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample_time PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes PASSED [ 38%] 341s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_open_close_break_start_end PASSED [ 38%] 342s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_has_break PASSED [ 39%] 342s tests/test_xfra_calendar.py::TestXFRACalendar::test_next_prev_session PASSED [ 39%] 342s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_offset PASSED [ 39%] 342s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_session PASSED [ 39%] 342s tests/test_xfra_calendar.py::TestXFRACalendar::test_date_to_session PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_open_close PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_in_range PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_has_break PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_window PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_distance PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_trading_index PASSED [ 39%] 343s tests/test_xfra_calendar.py::TestXFRACalendar::test_deprecated PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_testbase_integrity PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_base_integrity PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_calculated_against_csv PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_start_end PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_invalid_input PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_min PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_max PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sanity_check_session_lengths PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_specification PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_daylight_savings PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_opens_closes_break_starts_ends PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[both] PASSED [ 39%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[both] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[both] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-next] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-next] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[left] PASSED [ 39%] 347s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[left] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[left] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-next] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 39%] 348s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[right] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-none] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-none] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-none] PASSED [ 39%] 349s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-none] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-previous] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-next] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[neither] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[neither] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[neither] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[neither] PASSED [ 39%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[neither] PASSED [ 40%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[neither] PASSED [ 40%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[neither] PASSED [ 40%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[neither] PASSED [ 40%] 350s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[neither] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[right] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[left] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[both] PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_has_break PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_regular_holidays_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_holidays_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample_time PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays_time PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample_time PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_open_close_break_start_end PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_has_break PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_next_prev_session PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_offset PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_session PASSED [ 40%] 351s tests/test_xham_calendar.py::TestXHAMCalendar::test_date_to_session PASSED [ 40%] 352s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_open_close PASSED [ 40%] 352s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_in_range PASSED [ 40%] 352s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_has_break PASSED [ 40%] 353s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_window PASSED [ 40%] 353s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_distance PASSED [ 40%] 353s tests/test_xham_calendar.py::TestXHAMCalendar::test_trading_index PASSED [ 40%] 353s tests/test_xham_calendar.py::TestXHAMCalendar::test_deprecated PASSED [ 40%] 353s tests/test_xhel_calendar.py::TestXHELCalendar::test_testbase_integrity PASSED [ 40%] 353s tests/test_xhel_calendar.py::TestXHELCalendar::test_base_integrity PASSED [ 40%] 354s tests/test_xhel_calendar.py::TestXHELCalendar::test_calculated_against_csv PASSED [ 40%] 354s tests/test_xhel_calendar.py::TestXHELCalendar::test_start_end PASSED [ 40%] 354s tests/test_xhel_calendar.py::TestXHELCalendar::test_invalid_input PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_min PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_max PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_sanity_check_session_lengths PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_specification PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_daylight_savings PASSED [ 40%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_opens_closes_break_starts_ends PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[both] PASSED [ 41%] 355s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[both] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[both] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[both] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-next] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-next] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-next] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-next] PASSED [ 41%] 356s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[left] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-next] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-next] PASSED [ 41%] 357s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[right] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-previous] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-next] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 41%] 358s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[neither] PASSED [ 41%] 359s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[neither] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[neither] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[right] PASSED [ 41%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[right] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[right] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[right] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[right] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[left] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[both] PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_has_break PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_regular_holidays_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_holidays_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample_time PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays_time PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample_time PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_open_close_break_start_end PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_has_break PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_next_prev_session PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_offset PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_session PASSED [ 42%] 360s tests/test_xhel_calendar.py::TestXHELCalendar::test_date_to_session PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_open_close PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_in_range PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_has_break PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_window PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_distance PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_trading_index PASSED [ 42%] 361s tests/test_xhel_calendar.py::TestXHELCalendar::test_deprecated PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_testbase_integrity PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_base_integrity PASSED [ 42%] 363s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calculated_against_csv PASSED [ 42%] 363s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_start_end PASSED [ 42%] 363s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_invalid_input PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_min PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_max PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sanity_check_session_lengths PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_specification PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_daylight_savings PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_opens_closes_break_starts_ends PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[both] PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[both] PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[both] PASSED [ 42%] 364s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[both] PASSED [ 42%] 365s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[both] PASSED [ 42%] 365s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[both] PASSED [ 42%] 365s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[both] PASSED [ 42%] 365s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[both] PASSED [ 42%] 365s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[both] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[both] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-next] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-next] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 42%] 366s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[left] PASSED [ 42%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[left] PASSED [ 43%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[left] PASSED [ 43%] 367s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[left] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[left] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-next] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 43%] 368s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[right] PASSED [ 43%] 369s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[right] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[right] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-previous] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-next] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[neither] PASSED [ 43%] 371s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[neither] PASSED [ 43%] 372s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[neither] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[right] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[left] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[both] PASSED [ 43%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[both] PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[both] PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_has_break PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_regular_holidays_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_holidays_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample_time PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays_time PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample_time PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_open_close_break_start_end PASSED [ 44%] 373s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_has_break PASSED [ 44%] 374s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_next_prev_session PASSED [ 44%] 374s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_offset PASSED [ 44%] 374s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_session PASSED [ 44%] 374s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_date_to_session PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_open_close PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_in_range PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_has_break PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_window PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_distance PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_trading_index PASSED [ 44%] 375s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_deprecated PASSED [ 44%] 375s tests/test_xice_calendar.py::TestXICECalendar::test_testbase_integrity PASSED [ 44%] 375s tests/test_xice_calendar.py::TestXICECalendar::test_base_integrity PASSED [ 44%] 376s tests/test_xice_calendar.py::TestXICECalendar::test_calculated_against_csv PASSED [ 44%] 376s tests/test_xice_calendar.py::TestXICECalendar::test_start_end PASSED [ 44%] 376s tests/test_xice_calendar.py::TestXICECalendar::test_invalid_input PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_bound_min PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_bound_max PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_sanity_check_session_lengths PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_specification PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_daylight_savings PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_sessions PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_opens_closes_break_starts_ends PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[both] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-next] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-next] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-next] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-next] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[left] PASSED [ 44%] 377s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[left] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[left] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[left] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-next] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-next] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[right] PASSED [ 44%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-previous] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-next] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[neither] PASSED [ 45%] 378s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[neither] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[right] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[left] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[both] PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_has_break PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_regular_holidays_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_non_holidays_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample_time PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays_time PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample_time PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_session_open_close_break_start_end PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_session_has_break PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_next_prev_session PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_session_offset PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_is_session PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_date_to_session PASSED [ 45%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_open_close PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_in_range PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_has_break PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_window PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_distance PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_trading_index PASSED [ 46%] 379s tests/test_xice_calendar.py::TestXICECalendar::test_deprecated PASSED [ 46%] 379s tests/test_xidx_calendar.py::TestXIDXCalendar::test_testbase_integrity PASSED [ 46%] 379s tests/test_xidx_calendar.py::TestXIDXCalendar::test_base_integrity PASSED [ 46%] 380s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calculated_against_csv PASSED [ 46%] 380s tests/test_xidx_calendar.py::TestXIDXCalendar::test_start_end PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_invalid_input PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_min PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_max PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sanity_check_session_lengths PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_specification PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_daylight_savings PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_opens_closes_break_starts_ends PASSED [ 46%] 381s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[both] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-next] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-next] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 46%] 382s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[left] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-next] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 46%] 383s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[right] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-previous] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-next] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 46%] 384s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[neither] PASSED [ 46%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[neither] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[right] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[left] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[both] PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_has_break PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_regular_holidays_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_holidays_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample_time PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays_time PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample_time PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_open_close_break_start_end PASSED [ 47%] 385s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_has_break PASSED [ 47%] 386s tests/test_xidx_calendar.py::TestXIDXCalendar::test_next_prev_session PASSED [ 47%] 386s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_offset PASSED [ 47%] 386s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_session PASSED [ 47%] 386s tests/test_xidx_calendar.py::TestXIDXCalendar::test_date_to_session PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_open_close PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_in_range PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_has_break PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_window PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_distance PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_index PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_deprecated PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_days PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 47%] 387s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2018-holidays1] PASSED [ 47%] 387s tests/test_xist_calendar.py::TestXISTCalendar::test_testbase_integrity PASSED [ 47%] 387s tests/test_xist_calendar.py::TestXISTCalendar::test_base_integrity PASSED [ 47%] 388s tests/test_xist_calendar.py::TestXISTCalendar::test_calculated_against_csv PASSED [ 47%] 388s tests/test_xist_calendar.py::TestXISTCalendar::test_start_end PASSED [ 47%] 388s tests/test_xist_calendar.py::TestXISTCalendar::test_invalid_input PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_min PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_max PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_sanity_check_session_lengths PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_specification PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_daylight_savings PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_opens_closes_break_starts_ends PASSED [ 47%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[both] PASSED [ 48%] 389s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[both] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[both] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-next] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-next] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-next] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-next] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[left] PASSED [ 48%] 390s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[left] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[left] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-next] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-next] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[right] PASSED [ 48%] 391s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[right] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[right] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[right] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-previous] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-next] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[neither] PASSED [ 48%] 392s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[neither] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[right] PASSED [ 48%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[right] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[right] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[left] PASSED [ 49%] 393s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[left] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[left] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[left] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[left] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[both] PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_has_break PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_regular_holidays_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_non_holidays_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample_time PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays_time PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample_time PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_session_open_close_break_start_end PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_session_has_break PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_next_prev_session PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_session_offset PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_is_session PASSED [ 49%] 394s tests/test_xist_calendar.py::TestXISTCalendar::test_date_to_session PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_open_close PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_in_range PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_has_break PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_window PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_distance PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_trading_index PASSED [ 49%] 395s tests/test_xist_calendar.py::TestXISTCalendar::test_deprecated PASSED [ 49%] 395s tests/test_xjse_calendar.py::TestXJSECalendar::test_testbase_integrity PASSED [ 49%] 395s tests/test_xjse_calendar.py::TestXJSECalendar::test_base_integrity PASSED [ 49%] 396s tests/test_xjse_calendar.py::TestXJSECalendar::test_calculated_against_csv PASSED [ 49%] 396s tests/test_xjse_calendar.py::TestXJSECalendar::test_start_end PASSED [ 49%] 396s tests/test_xjse_calendar.py::TestXJSECalendar::test_invalid_input PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_min PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_max PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_sanity_check_session_lengths PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_specification PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_daylight_savings PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_opens_closes_break_starts_ends PASSED [ 49%] 397s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[both] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-next] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-next] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 49%] 398s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[left] PASSED [ 49%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[left] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[left] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-next] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 50%] 399s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[right] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-previous] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-next] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 50%] 400s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[neither] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[right] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[left] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[both] PASSED [ 50%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_has_break PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_regular_holidays_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_holidays_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample_time PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays_time PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample_time PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_open_close_break_start_end PASSED [ 51%] 401s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_has_break PASSED [ 51%] 402s tests/test_xjse_calendar.py::TestXJSECalendar::test_next_prev_session PASSED [ 51%] 402s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_offset PASSED [ 51%] 402s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_session PASSED [ 51%] 402s tests/test_xjse_calendar.py::TestXJSECalendar::test_date_to_session PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_open_close PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_in_range PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_has_break PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_window PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_distance PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_trading_index PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_deprecated PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_no_weekend_sessions PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2019-holidays0] PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2018-holidays1] PASSED [ 51%] 403s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2016-holidays2] PASSED [ 51%] 403s tests/test_xkar_calendar.py::TestXKARCalendar::test_testbase_integrity PASSED [ 51%] 403s tests/test_xkar_calendar.py::TestXKARCalendar::test_base_integrity PASSED [ 51%] 404s tests/test_xkar_calendar.py::TestXKARCalendar::test_calculated_against_csv PASSED [ 51%] 404s tests/test_xkar_calendar.py::TestXKARCalendar::test_start_end PASSED [ 51%] 404s tests/test_xkar_calendar.py::TestXKARCalendar::test_invalid_input PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_min PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_max PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_sanity_check_session_lengths PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_specification PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_daylight_savings PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_opens_closes_break_starts_ends PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[both] PASSED [ 51%] 405s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[both] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[both] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-next] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-next] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[left] PASSED [ 51%] 406s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[left] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[left] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-next] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[right] PASSED [ 51%] 407s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[right] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[right] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-previous] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-next] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[neither] PASSED [ 52%] 408s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[neither] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[right] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[left] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[both] PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_has_break PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_regular_holidays_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_holidays_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample_time PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays_time PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample_time PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_open_close_break_start_end PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_has_break PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_next_prev_session PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_offset PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_session PASSED [ 52%] 409s tests/test_xkar_calendar.py::TestXKARCalendar::test_date_to_session PASSED [ 53%] 410s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_open_close PASSED [ 53%] 410s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_in_range PASSED [ 53%] 410s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_has_break PASSED [ 53%] 410s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_window PASSED [ 53%] 410s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_distance PASSED [ 53%] 411s tests/test_xkar_calendar.py::TestXKARCalendar::test_trading_index PASSED [ 53%] 411s tests/test_xkar_calendar.py::TestXKARCalendar::test_deprecated PASSED [ 53%] 411s tests/test_xkar_calendar.py::TestXKARCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 53%] 411s tests/test_xkls_calendar.py::TestXKLSCalendar::test_testbase_integrity PASSED [ 53%] 411s tests/test_xkls_calendar.py::TestXKLSCalendar::test_base_integrity PASSED [ 53%] 412s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calculated_against_csv PASSED [ 53%] 412s tests/test_xkls_calendar.py::TestXKLSCalendar::test_start_end PASSED [ 53%] 412s tests/test_xkls_calendar.py::TestXKLSCalendar::test_invalid_input PASSED [ 53%] 412s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_min PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_max PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sanity_check_session_lengths PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_specification PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_daylight_savings PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_opens_closes_break_starts_ends PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[both] PASSED [ 53%] 413s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[both] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[both] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-next] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-next] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[left] PASSED [ 53%] 414s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[left] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[left] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-next] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[right] PASSED [ 53%] 415s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[right] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[right] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-previous] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-next] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[neither] PASSED [ 53%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[neither] PASSED [ 54%] 416s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[neither] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[right] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[left] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[both] PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_has_break PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_regular_holidays_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_holidays_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample_time PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays_time PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample_time PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_open_close_break_start_end PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_has_break PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_next_prev_session PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_offset PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_session PASSED [ 54%] 417s tests/test_xkls_calendar.py::TestXKLSCalendar::test_date_to_session PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_open_close PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_in_range PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_has_break PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_window PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_distance PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_trading_index PASSED [ 54%] 418s tests/test_xkls_calendar.py::TestXKLSCalendar::test_deprecated PASSED [ 54%] 418s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_testbase_integrity PASSED [ 54%] 418s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_base_integrity PASSED [ 54%] 431s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv PASSED [ 54%] 433s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end PASSED [ 54%] 435s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_invalid_input PASSED [ 54%] 439s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min PASSED [ 54%] 441s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max PASSED [ 54%] 441s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sanity_check_session_lengths PASSED [ 54%] 441s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_specification PASSED [ 54%] 441s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_daylight_savings PASSED [ 54%] 441s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions PASSED [ 54%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_opens_closes_break_starts_ends PASSED [ 54%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[both] PASSED [ 55%] 442s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[both] PASSED [ 55%] 443s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[both] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[both] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-next] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-next] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[left] PASSED [ 55%] 444s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[left] PASSED [ 55%] 445s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[left] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[left] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-next] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 55%] 446s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[right] PASSED [ 55%] 447s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[right] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[right] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[right] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-none] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-none] PASSED [ 55%] 448s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-none] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-none] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-previous] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-next] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[neither] PASSED [ 55%] 449s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[neither] PASSED [ 55%] 450s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[neither] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[right] PASSED [ 55%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[right] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[right] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[left] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[both] PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_has_break PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_regular_holidays_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_holidays_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample_time PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays_time PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample_time PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_open_close_break_start_end PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_has_break PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_next_prev_session PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_offset PASSED [ 56%] 451s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_session PASSED [ 56%] 452s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_date_to_session PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_open_close PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_in_range PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_has_break PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_window PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_distance PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_trading_index PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_deprecated PASSED [ 56%] 453s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens XFAIL [ 56%] 454s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_historical_regular_holidays_fall_into_precomputed_holidays PASSED [ 56%] 455s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_feb_29_2022_in_lunar_calendar PASSED [ 56%] 455s tests/test_xlim_calendar.py::TestXLIMCalendar::test_testbase_integrity PASSED [ 56%] 455s tests/test_xlim_calendar.py::TestXLIMCalendar::test_base_integrity PASSED [ 56%] 456s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calculated_against_csv PASSED [ 56%] 456s tests/test_xlim_calendar.py::TestXLIMCalendar::test_start_end PASSED [ 56%] 456s tests/test_xlim_calendar.py::TestXLIMCalendar::test_invalid_input PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_min PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_max PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sanity_check_session_lengths PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_specification PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_daylight_savings PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_opens_closes_break_starts_ends PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[both] PASSED [ 56%] 457s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[both] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[both] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[both] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-next] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-next] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[left] PASSED [ 56%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[left] PASSED [ 57%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[left] PASSED [ 57%] 458s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[left] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[left] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-next] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[right] PASSED [ 57%] 459s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[right] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[right] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[right] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-previous] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-next] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 57%] 460s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[neither] PASSED [ 57%] 461s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[neither] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[right] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[left] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[both] PASSED [ 57%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[both] PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[both] PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_has_break PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_regular_holidays_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_holidays_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample_time PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays_time PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample_time PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_open_close_break_start_end PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_has_break PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_next_prev_session PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_offset PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_session PASSED [ 58%] 462s tests/test_xlim_calendar.py::TestXLIMCalendar::test_date_to_session PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_open_close PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_in_range PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_has_break PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_window PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_distance PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_trading_index PASSED [ 58%] 463s tests/test_xlim_calendar.py::TestXLIMCalendar::test_deprecated PASSED [ 58%] 463s tests/test_xlis_calendar.py::TestXLISCalendar::test_testbase_integrity PASSED [ 58%] 463s tests/test_xlis_calendar.py::TestXLISCalendar::test_base_integrity PASSED [ 58%] 464s tests/test_xlis_calendar.py::TestXLISCalendar::test_calculated_against_csv PASSED [ 58%] 465s tests/test_xlis_calendar.py::TestXLISCalendar::test_start_end PASSED [ 58%] 465s tests/test_xlis_calendar.py::TestXLISCalendar::test_invalid_input PASSED [ 58%] 465s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_min PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_max PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_sanity_check_session_lengths PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_specification PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_daylight_savings PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_opens_closes_break_starts_ends PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[both] PASSED [ 58%] 466s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[both] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[both] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[both] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-next] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-next] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[left] PASSED [ 58%] 467s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[left] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[left] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[left] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-next] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 58%] 468s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[right] PASSED [ 58%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-previous] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-next] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 59%] 469s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[neither] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[right] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[right] PASSED [ 59%] 470s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[right] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[left] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[both] PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_has_break PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_regular_holidays_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_holidays_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample_time PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays_time PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample_time PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_open_close_break_start_end PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_has_break PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_next_prev_session PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_offset PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_session PASSED [ 59%] 471s tests/test_xlis_calendar.py::TestXLISCalendar::test_date_to_session PASSED [ 59%] 472s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_open_close PASSED [ 59%] 472s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_in_range PASSED [ 60%] 472s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_has_break PASSED [ 60%] 472s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_window PASSED [ 60%] 472s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_distance PASSED [ 60%] 473s tests/test_xlis_calendar.py::TestXLISCalendar::test_trading_index PASSED [ 60%] 473s tests/test_xlis_calendar.py::TestXLISCalendar::test_deprecated PASSED [ 60%] 473s tests/test_xlon_calendar.py::TestXLONCalendar::test_testbase_integrity PASSED [ 60%] 473s tests/test_xlon_calendar.py::TestXLONCalendar::test_base_integrity PASSED [ 60%] 474s tests/test_xlon_calendar.py::TestXLONCalendar::test_calculated_against_csv PASSED [ 60%] 475s tests/test_xlon_calendar.py::TestXLONCalendar::test_start_end PASSED [ 60%] 475s tests/test_xlon_calendar.py::TestXLONCalendar::test_invalid_input PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_min PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_max PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_sanity_check_session_lengths PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_specification PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_daylight_savings PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_opens_closes_break_starts_ends PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[both] PASSED [ 60%] 476s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[both] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[both] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-next] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-next] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-next] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-next] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[left] PASSED [ 60%] 477s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[left] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[left] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[left] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-next] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-next] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[right] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[right] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[right] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[right] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[right] PASSED [ 60%] 478s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[right] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[right] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[right] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[right] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[right] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-none] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-none] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-none] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-none] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-none] PASSED [ 60%] 479s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-none] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-none] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-previous] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-next] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[neither] PASSED [ 60%] 480s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[neither] PASSED [ 60%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[neither] PASSED [ 60%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[neither] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[right] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[left] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[both] PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_has_break PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_regular_holidays_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_holidays_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample_time PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays_time PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample_time PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_open_close_break_start_end PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_has_break PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_next_prev_session PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_offset PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_session PASSED [ 61%] 481s tests/test_xlon_calendar.py::TestXLONCalendar::test_date_to_session PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_open_close PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_in_range PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_has_break PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_window PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_distance PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_trading_index PASSED [ 61%] 482s tests/test_xlon_calendar.py::TestXLONCalendar::test_deprecated PASSED [ 61%] 482s tests/test_xlux_calendar.py::TestXLUXCalendar::test_testbase_integrity PASSED [ 61%] 482s tests/test_xlux_calendar.py::TestXLUXCalendar::test_base_integrity PASSED [ 61%] 483s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calculated_against_csv PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_start_end PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_invalid_input PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_min PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_max PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sanity_check_session_lengths PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_specification PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_daylight_savings PASSED [ 61%] 484s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_opens_closes_break_starts_ends PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[both] PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[both] PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[both] PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[both] PASSED [ 61%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[both] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-next] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-next] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 62%] 485s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[left] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-next] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 62%] 486s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[right] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-previous] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-next] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 62%] 487s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[neither] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[right] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[left] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[left] PASSED [ 62%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[left] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[both] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[both] PASSED [ 63%] 488s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[both] PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_has_break PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_regular_holidays_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_holidays_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample_time PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays_time PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample_time PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_open_close_break_start_end PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_has_break PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_next_prev_session PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_offset PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_session PASSED [ 63%] 489s tests/test_xlux_calendar.py::TestXLUXCalendar::test_date_to_session PASSED [ 63%] 490s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_open_close PASSED [ 63%] 490s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_in_range PASSED [ 63%] 490s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_has_break PASSED [ 63%] 490s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_window PASSED [ 63%] 490s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_distance PASSED [ 63%] 491s tests/test_xlux_calendar.py::TestXLUXCalendar::test_trading_index PASSED [ 63%] 491s tests/test_xlux_calendar.py::TestXLUXCalendar::test_deprecated PASSED [ 63%] 491s tests/test_xmad_calendar.py::TestXMADCalendar::test_testbase_integrity PASSED [ 63%] 491s tests/test_xmad_calendar.py::TestXMADCalendar::test_base_integrity PASSED [ 63%] 492s tests/test_xmad_calendar.py::TestXMADCalendar::test_calculated_against_csv PASSED [ 63%] 492s tests/test_xmad_calendar.py::TestXMADCalendar::test_start_end PASSED [ 63%] 492s tests/test_xmad_calendar.py::TestXMADCalendar::test_invalid_input PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_min PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_max PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_sanity_check_session_lengths PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_specification PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_daylight_savings PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_opens_closes_break_starts_ends PASSED [ 63%] 493s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[both] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-next] PASSED [ 63%] 494s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-next] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-next] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-next] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[left] PASSED [ 63%] 495s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[left] PASSED [ 63%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[left] PASSED [ 63%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-previous] PASSED [ 63%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-previous] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-previous] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-next] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-next] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[right] PASSED [ 64%] 496s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[right] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[right] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-previous] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-next] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[neither] PASSED [ 64%] 497s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[neither] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[right] PASSED [ 64%] 498s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[right] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[right] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[right] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[left] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[both] PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_has_break PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_regular_holidays_sample PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_sample PASSED [ 64%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_holidays_sample PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens_sample PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample_time PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays_time PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample_time PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_open_close_break_start_end PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_has_break PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_next_prev_session PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_offset PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_session PASSED [ 65%] 499s tests/test_xmad_calendar.py::TestXMADCalendar::test_date_to_session PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_open_close PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_in_range PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_has_break PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_window PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_distance PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_trading_index PASSED [ 65%] 500s tests/test_xmad_calendar.py::TestXMADCalendar::test_deprecated PASSED [ 65%] 500s tests/test_xmex_calendar.py::TestXMEXCalendar::test_testbase_integrity PASSED [ 65%] 500s tests/test_xmex_calendar.py::TestXMEXCalendar::test_base_integrity PASSED [ 65%] 501s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calculated_against_csv PASSED [ 65%] 502s tests/test_xmex_calendar.py::TestXMEXCalendar::test_start_end PASSED [ 65%] 502s tests/test_xmex_calendar.py::TestXMEXCalendar::test_invalid_input PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_min PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_max PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sanity_check_session_lengths PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_specification PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_daylight_savings PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_opens_closes_break_starts_ends PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[both] PASSED [ 65%] 503s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[both] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[both] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-next] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-next] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[left] PASSED [ 65%] 504s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[left] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[left] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-next] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[right] PASSED [ 65%] 505s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[right] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[right] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-none] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-none] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-none] PASSED [ 65%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-none] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-previous] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-next] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[neither] PASSED [ 66%] 506s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[neither] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[right] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[left] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[both] PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_has_break PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_regular_holidays_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_holidays_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample_time PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays_time PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample_time PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_open_close_break_start_end PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_has_break PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_next_prev_session PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_offset PASSED [ 66%] 507s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_session PASSED [ 66%] 508s tests/test_xmex_calendar.py::TestXMEXCalendar::test_date_to_session PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_open_close PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_in_range PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_has_break PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_window PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_distance PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_trading_index PASSED [ 66%] 509s tests/test_xmex_calendar.py::TestXMEXCalendar::test_deprecated PASSED [ 67%] 509s tests/test_xmil_calendar.py::TestXMILCalendar::test_testbase_integrity PASSED [ 67%] 509s tests/test_xmil_calendar.py::TestXMILCalendar::test_base_integrity PASSED [ 67%] 510s tests/test_xmil_calendar.py::TestXMILCalendar::test_calculated_against_csv PASSED [ 67%] 510s tests/test_xmil_calendar.py::TestXMILCalendar::test_start_end PASSED [ 67%] 510s tests/test_xmil_calendar.py::TestXMILCalendar::test_invalid_input PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_min PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_max PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_sanity_check_session_lengths PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_specification PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_daylight_savings PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_opens_closes_break_starts_ends PASSED [ 67%] 511s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[both] PASSED [ 67%] 512s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[both] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[both] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-next] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-next] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-next] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-next] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[left] PASSED [ 67%] 513s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[left] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[left] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-next] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-next] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[right] PASSED [ 67%] 514s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[right] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[right] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-previous] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-next] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 67%] 515s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[neither] PASSED [ 67%] 516s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[neither] PASSED [ 67%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[neither] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[neither] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[neither] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[neither] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[neither] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[right] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[left] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[both] PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_has_break PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_regular_holidays_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_holidays_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample_time PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays_time PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample PASSED [ 68%] 517s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample_time PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_open_close_break_start_end PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_has_break PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_next_prev_session PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_offset PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_session PASSED [ 68%] 518s tests/test_xmil_calendar.py::TestXMILCalendar::test_date_to_session PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_open_close PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_in_range PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_has_break PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_window PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_distance PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_trading_index PASSED [ 68%] 519s tests/test_xmil_calendar.py::TestXMILCalendar::test_deprecated PASSED [ 68%] 519s tests/test_xmos_calendar.py::TestXMOSCalendar::test_testbase_integrity PASSED [ 68%] 519s tests/test_xmos_calendar.py::TestXMOSCalendar::test_base_integrity PASSED [ 68%] 530s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv PASSED [ 68%] 532s tests/test_xmos_calendar.py::TestXMOSCalendar::test_start_end PASSED [ 68%] 533s tests/test_xmos_calendar.py::TestXMOSCalendar::test_invalid_input PASSED [ 68%] 539s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_max PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sanity_check_session_lengths PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_specification PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_daylight_savings PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_opens_closes_break_starts_ends PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[both] PASSED [ 68%] 542s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[both] PASSED [ 68%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[both] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-next] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-next] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[left] PASSED [ 69%] 543s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[left] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[left] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[left] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-next] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 69%] 544s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[right] PASSED [ 69%] 545s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[right] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[right] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-previous] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-next] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[neither] PASSED [ 69%] 546s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[neither] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[right] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[left] PASSED [ 69%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[left] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[left] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[left] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[both] PASSED [ 70%] 547s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[both] PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[both] PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[both] PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[both] PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_has_break PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_regular_holidays_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_holidays_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample_time PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays_time PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample_time PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_open_close_break_start_end PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_has_break PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_next_prev_session PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_offset PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_session PASSED [ 70%] 548s tests/test_xmos_calendar.py::TestXMOSCalendar::test_date_to_session PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_open_close PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_in_range PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_has_break PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_window PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_distance PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_trading_index PASSED [ 70%] 550s tests/test_xmos_calendar.py::TestXMOSCalendar::test_deprecated PASSED [ 70%] 550s tests/test_xnys_calendar.py::TestXNYSCalendar::test_testbase_integrity PASSED [ 70%] 550s tests/test_xnys_calendar.py::TestXNYSCalendar::test_base_integrity PASSED [ 70%] 552s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calculated_against_csv PASSED [ 70%] 553s tests/test_xnys_calendar.py::TestXNYSCalendar::test_start_end PASSED [ 70%] 553s tests/test_xnys_calendar.py::TestXNYSCalendar::test_invalid_input PASSED [ 70%] 554s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_min PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_max PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sanity_check_session_lengths PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_specification PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_daylight_savings PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_opens_closes_break_starts_ends PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[both] PASSED [ 70%] 555s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[both] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[both] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-next] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-next] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[left] PASSED [ 70%] 556s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[left] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[left] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[left] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-next] PASSED [ 70%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 71%] 557s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[right] PASSED [ 71%] 558s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[right] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[right] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-previous] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-next] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[neither] PASSED [ 71%] 559s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[neither] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[right] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[left] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[both] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[both] PASSED [ 71%] 560s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[both] PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_has_break PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_regular_holidays_sample PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_sample PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_holidays_sample PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens_sample PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample_time PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays_time PASSED [ 71%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample_time PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_open_close_break_start_end PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_has_break PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_next_prev_session PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_offset PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_session PASSED [ 72%] 561s tests/test_xnys_calendar.py::TestXNYSCalendar::test_date_to_session PASSED [ 72%] 563s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_open_close PASSED [ 72%] 563s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_in_range PASSED [ 72%] 563s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_has_break PASSED [ 72%] 563s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_window PASSED [ 72%] 563s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_distance PASSED [ 72%] 564s tests/test_xnys_calendar.py::TestXNYSCalendar::test_trading_index PASSED [ 72%] 564s tests/test_xnys_calendar.py::TestXNYSCalendar::test_deprecated PASSED [ 72%] 564s tests/test_xnze_calendar.py::TestXNZECalendar::test_testbase_integrity PASSED [ 72%] 564s tests/test_xnze_calendar.py::TestXNZECalendar::test_base_integrity PASSED [ 72%] 566s tests/test_xnze_calendar.py::TestXNZECalendar::test_calculated_against_csv PASSED [ 72%] 566s tests/test_xnze_calendar.py::TestXNZECalendar::test_start_end PASSED [ 72%] 566s tests/test_xnze_calendar.py::TestXNZECalendar::test_invalid_input PASSED [ 72%] 567s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_min PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_max PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_sanity_check_session_lengths PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_specification PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_daylight_savings PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_opens_closes_break_starts_ends PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[both] PASSED [ 72%] 568s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[both] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[both] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-next] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-next] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-next] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-next] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[left] PASSED [ 72%] 570s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[left] PASSED [ 72%] 571s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[left] PASSED [ 72%] 571s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-previous] PASSED [ 72%] 571s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 72%] 571s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-previous] PASSED [ 72%] 571s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-previous] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-next] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-next] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[right] PASSED [ 72%] 572s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[right] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[right] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-none] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-none] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-none] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-none] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-none] PASSED [ 72%] 573s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-none] PASSED [ 72%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-none] PASSED [ 72%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 72%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-previous] PASSED [ 72%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 72%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-next] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[neither] PASSED [ 73%] 574s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[neither] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[right] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[left] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[both] PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_has_break PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_regular_holidays_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_holidays_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample_time PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays_time PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample_time PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_open_close_break_start_end PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_has_break PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_next_prev_session PASSED [ 73%] 575s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_offset PASSED [ 73%] 576s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_session PASSED [ 73%] 576s tests/test_xnze_calendar.py::TestXNZECalendar::test_date_to_session PASSED [ 73%] 577s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_open_close PASSED [ 73%] 577s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_in_range PASSED [ 73%] 577s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_has_break PASSED [ 73%] 577s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_window PASSED [ 73%] 577s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_distance PASSED [ 73%] 578s tests/test_xnze_calendar.py::TestXNZECalendar::test_trading_index PASSED [ 73%] 578s tests/test_xnze_calendar.py::TestXNZECalendar::test_deprecated PASSED [ 73%] 578s tests/test_xosl_calendar.py::TestXOSLCalendar::test_testbase_integrity PASSED [ 73%] 578s tests/test_xosl_calendar.py::TestXOSLCalendar::test_base_integrity PASSED [ 73%] 580s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calculated_against_csv PASSED [ 73%] 580s tests/test_xosl_calendar.py::TestXOSLCalendar::test_start_end PASSED [ 73%] 580s tests/test_xosl_calendar.py::TestXOSLCalendar::test_invalid_input PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_min PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_max PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sanity_check_session_lengths PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_specification PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_daylight_savings PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_opens_closes_break_starts_ends PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[both] PASSED [ 74%] 581s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[both] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[both] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[both] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-next] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-next] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-next] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-next] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[left] PASSED [ 74%] 582s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[left] PASSED [ 74%] 583s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[left] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[left] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-next] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-next] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[right] PASSED [ 74%] 584s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[right] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[right] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-previous] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-next] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[neither] PASSED [ 74%] 585s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[neither] PASSED [ 74%] 586s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[neither] PASSED [ 74%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[right] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[left] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[both] PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_has_break PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_regular_holidays_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_holidays_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample_time PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays_time PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample_time PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_open_close_break_start_end PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_has_break PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_next_prev_session PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_offset PASSED [ 75%] 587s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_session PASSED [ 75%] 588s tests/test_xosl_calendar.py::TestXOSLCalendar::test_date_to_session PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_open_close PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_in_range PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_has_break PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_window PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_distance PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_trading_index PASSED [ 75%] 589s tests/test_xosl_calendar.py::TestXOSLCalendar::test_deprecated PASSED [ 75%] 589s tests/test_xpar_calendar.py::TestXPARCalendar::test_testbase_integrity PASSED [ 75%] 589s tests/test_xpar_calendar.py::TestXPARCalendar::test_base_integrity PASSED [ 75%] 590s tests/test_xpar_calendar.py::TestXPARCalendar::test_calculated_against_csv PASSED [ 75%] 590s tests/test_xpar_calendar.py::TestXPARCalendar::test_start_end PASSED [ 75%] 590s tests/test_xpar_calendar.py::TestXPARCalendar::test_invalid_input PASSED [ 75%] 591s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_min PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_max PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_sanity_check_session_lengths PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_specification PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_daylight_savings PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_opens_closes_break_starts_ends PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[both] PASSED [ 75%] 592s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[both] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[both] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-next] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-next] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 75%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[left] PASSED [ 76%] 593s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[left] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[left] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[left] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-next] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 76%] 594s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[right] PASSED [ 76%] 595s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[right] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[right] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-previous] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-next] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[neither] PASSED [ 76%] 596s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[neither] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[right] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[left] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[both] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[both] PASSED [ 76%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[both] PASSED [ 77%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[both] PASSED [ 77%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[both] PASSED [ 77%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[both] PASSED [ 77%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[both] PASSED [ 77%] 597s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[both] PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[both] PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[both] PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_has_break PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_regular_holidays_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_holidays_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample_time PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays_time PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample_time PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_open_close_break_start_end PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_has_break PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_next_prev_session PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_offset PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_session PASSED [ 77%] 598s tests/test_xpar_calendar.py::TestXPARCalendar::test_date_to_session PASSED [ 77%] 599s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_open_close PASSED [ 77%] 599s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_in_range PASSED [ 77%] 599s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_has_break PASSED [ 77%] 599s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_window PASSED [ 77%] 599s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_distance PASSED [ 77%] 600s tests/test_xpar_calendar.py::TestXPARCalendar::test_trading_index PASSED [ 77%] 600s tests/test_xpar_calendar.py::TestXPARCalendar::test_deprecated PASSED [ 77%] 600s tests/test_xpra_calendar.py::TestXPRACalendar::test_testbase_integrity PASSED [ 77%] 600s tests/test_xpra_calendar.py::TestXPRACalendar::test_base_integrity PASSED [ 77%] 602s tests/test_xpra_calendar.py::TestXPRACalendar::test_calculated_against_csv PASSED [ 77%] 602s tests/test_xpra_calendar.py::TestXPRACalendar::test_start_end PASSED [ 77%] 602s tests/test_xpra_calendar.py::TestXPRACalendar::test_invalid_input PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_min PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_max PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_sanity_check_session_lengths PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_specification PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_daylight_savings PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_opens_closes_break_starts_ends PASSED [ 77%] 603s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[both] PASSED [ 77%] 604s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[both] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[both] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-next] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-next] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[left] PASSED [ 77%] 605s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[left] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[left] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[left] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-next] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[right] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[right] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[right] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[right] PASSED [ 77%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[right] PASSED [ 78%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[right] PASSED [ 78%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[right] PASSED [ 78%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[right] PASSED [ 78%] 606s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[right] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[right] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-previous] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-next] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[neither] PASSED [ 78%] 607s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[neither] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[right] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[left] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[both] PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_has_break PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_regular_holidays_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_holidays_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample_time PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays_time PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample_time PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_open_close_break_start_end PASSED [ 78%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_has_break PASSED [ 79%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_next_prev_session PASSED [ 79%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_offset PASSED [ 79%] 608s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_session PASSED [ 79%] 609s tests/test_xpra_calendar.py::TestXPRACalendar::test_date_to_session PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_open_close PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_in_range PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_has_break PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_window PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_distance PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_trading_index PASSED [ 79%] 610s tests/test_xpra_calendar.py::TestXPRACalendar::test_deprecated PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_testbase_integrity PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_base_integrity PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_calculated_against_csv PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_start_end PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_invalid_input PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_min PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_max PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_sanity_check_session_lengths PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_specification PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_daylight_savings PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_opens_closes_break_starts_ends PASSED [ 79%] 610s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[both] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[left] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[right] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[neither] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[neither] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[neither] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[neither] PASSED [ 79%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[neither] PASSED [ 80%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[neither] PASSED [ 80%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[neither] PASSED [ 80%] 611s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[neither] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[right] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[left] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[both] PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_has_break PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_regular_holidays_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_holidays_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample_time PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays_time PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample_time PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_open_close_break_start_end PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_has_break PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_next_prev_session PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_offset PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_session PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_date_to_session PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_open_close PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_in_range PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_has_break PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_window PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_distance PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_trading_index PASSED [ 80%] 612s tests/test_xsau_calendar.py::TestXASUCalendar::test_deprecated PASSED [ 80%] 612s tests/test_xses_calendar.py::TestXSESCalendar::test_testbase_integrity PASSED [ 80%] 612s tests/test_xses_calendar.py::TestXSESCalendar::test_base_integrity PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_calculated_against_csv PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_start_end PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_invalid_input PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_min PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_max PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_sanity_check_session_lengths PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_specification PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_daylight_savings PASSED [ 80%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions PASSED [ 81%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_opens_closes_break_starts_ends PASSED [ 81%] 614s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[both] PASSED [ 81%] 615s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[both] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[both] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-next] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-next] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-next] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[left] PASSED [ 81%] 616s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[left] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[left] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-next] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 81%] 617s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[right] PASSED [ 81%] 618s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[right] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[right] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-previous] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-next] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[neither] PASSED [ 81%] 619s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[neither] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[right] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[right] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[right] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[right] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[right] PASSED [ 81%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[right] PASSED [ 82%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[right] PASSED [ 82%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[right] PASSED [ 82%] 620s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[right] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[right] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[left] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[both] PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_has_break PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_regular_holidays_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_non_holidays_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample_time PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays_time PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample_time PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_session_open_close_break_start_end PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_session_has_break PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_next_prev_session PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_session_offset PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_is_session PASSED [ 82%] 621s tests/test_xses_calendar.py::TestXSESCalendar::test_date_to_session PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_open_close PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_in_range PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_has_break PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_window PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_distance PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_trading_index PASSED [ 82%] 623s tests/test_xses_calendar.py::TestXSESCalendar::test_deprecated PASSED [ 82%] 623s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_testbase_integrity PASSED [ 82%] 623s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_base_integrity PASSED [ 82%] 624s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calculated_against_csv PASSED [ 82%] 624s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_start_end PASSED [ 82%] 625s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_invalid_input PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_min PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_max PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sanity_check_session_lengths PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_specification PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_daylight_savings PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_opens_closes_break_starts_ends PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[both] PASSED [ 82%] 626s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[both] PASSED [ 82%] 627s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[both] PASSED [ 82%] 627s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[both] PASSED [ 82%] 627s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-next] PASSED [ 82%] 627s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-next] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[left] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[left] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[left] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[left] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[left] PASSED [ 82%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[left] PASSED [ 83%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[left] PASSED [ 83%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[left] PASSED [ 83%] 628s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[left] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[left] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-next] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[right] PASSED [ 83%] 629s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[right] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[right] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[right] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-previous] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-next] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 83%] 630s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[neither] PASSED [ 83%] 631s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[neither] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[right] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[left] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[both] PASSED [ 83%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[both] PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[both] PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[both] PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_has_break PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_regular_holidays_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_holidays_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample_time PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays_time PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample_time PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_open_close_break_start_end PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_has_break PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_next_prev_session PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_offset PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_session PASSED [ 84%] 632s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_date_to_session PASSED [ 84%] 633s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_open_close PASSED [ 84%] 633s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_in_range PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_has_break PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_window PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_distance PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_trading_index PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_deprecated PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_additional_early_closes_sample PASSED [ 84%] 634s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_close_time_change PASSED [ 84%] 634s tests/test_xshg_calendar.py::TestXSHGCalendar::test_testbase_integrity PASSED [ 84%] 634s tests/test_xshg_calendar.py::TestXSHGCalendar::test_base_integrity PASSED [ 84%] 635s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calculated_against_csv PASSED [ 84%] 635s tests/test_xshg_calendar.py::TestXSHGCalendar::test_start_end PASSED [ 84%] 635s tests/test_xshg_calendar.py::TestXSHGCalendar::test_invalid_input PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_min PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_max PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sanity_check_session_lengths PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_specification PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_daylight_savings PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_opens_closes_break_starts_ends PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[both] PASSED [ 84%] 636s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[both] PASSED [ 84%] 637s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[both] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[both] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-next] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-next] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 84%] 638s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[left] PASSED [ 84%] 639s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[left] PASSED [ 84%] 640s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[left] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[left] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-next] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 84%] 641s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[right] PASSED [ 84%] 642s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[right] PASSED [ 85%] 643s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[right] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[right] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-previous] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-next] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[neither] PASSED [ 85%] 644s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[neither] PASSED [ 85%] 645s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[neither] PASSED [ 85%] 646s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[neither] PASSED [ 85%] 646s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[neither] PASSED [ 85%] 646s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[neither] PASSED [ 85%] 646s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[neither] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[right] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[left] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[both] PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_has_break PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_regular_holidays_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_holidays_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample_time PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays_time PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample_time PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_open_close_break_start_end PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_has_break PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_next_prev_session PASSED [ 85%] 647s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_offset PASSED [ 85%] 648s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_session PASSED [ 86%] 648s tests/test_xshg_calendar.py::TestXSHGCalendar::test_date_to_session PASSED [ 86%] 649s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_open_close PASSED [ 86%] 649s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_in_range PASSED [ 86%] 649s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_has_break PASSED [ 86%] 649s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_window PASSED [ 86%] 649s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_distance PASSED [ 86%] 650s tests/test_xshg_calendar.py::TestXSHGCalendar::test_trading_index PASSED [ 86%] 650s tests/test_xshg_calendar.py::TestXSHGCalendar::test_deprecated PASSED [ 86%] 650s tests/test_xsto_calendar.py::TestXSTOCalendar::test_testbase_integrity PASSED [ 86%] 650s tests/test_xsto_calendar.py::TestXSTOCalendar::test_base_integrity PASSED [ 86%] 652s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calculated_against_csv PASSED [ 86%] 652s tests/test_xsto_calendar.py::TestXSTOCalendar::test_start_end PASSED [ 86%] 652s tests/test_xsto_calendar.py::TestXSTOCalendar::test_invalid_input PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_min PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_max PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sanity_check_session_lengths PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_specification PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_daylight_savings PASSED [ 86%] 653s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_opens_closes_break_starts_ends PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[both] PASSED [ 86%] 654s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[both] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[both] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-next] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-next] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[left] PASSED [ 86%] 655s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[left] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[left] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-next] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[right] PASSED [ 86%] 656s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[right] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[right] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-previous] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-next] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[neither] PASSED [ 86%] 657s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[neither] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[right] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[left] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[both] PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_has_break PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_regular_holidays_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_holidays_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample_time PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays_time PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample PASSED [ 87%] 658s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample_time PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_open_close_break_start_end PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_has_break PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_next_prev_session PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_offset PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_session PASSED [ 87%] 659s tests/test_xsto_calendar.py::TestXSTOCalendar::test_date_to_session PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_open_close PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_in_range PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_has_break PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_window PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_distance PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_trading_index PASSED [ 87%] 660s tests/test_xsto_calendar.py::TestXSTOCalendar::test_deprecated PASSED [ 87%] 660s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_testbase_integrity PASSED [ 87%] 660s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_base_integrity PASSED [ 87%] 662s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calculated_against_csv PASSED [ 87%] 662s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_start_end PASSED [ 87%] 663s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_invalid_input PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_min PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_max PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sanity_check_session_lengths PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_specification PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_daylight_savings PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_opens_closes_break_starts_ends PASSED [ 87%] 664s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[both] PASSED [ 87%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[both] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-next] PASSED [ 88%] 665s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-next] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[left] PASSED [ 88%] 666s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[left] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[left] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-next] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[right] PASSED [ 88%] 667s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[right] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[right] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-previous] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-next] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 88%] 668s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[neither] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[right] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[right] PASSED [ 88%] 669s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[right] PASSED [ 88%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[right] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[left] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[both] PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_has_break PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_regular_holidays_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_holidays_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample_time PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays_time PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample_time PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_open_close_break_start_end PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_has_break PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_next_prev_session PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_offset PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_session PASSED [ 89%] 670s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_date_to_session PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_open_close PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_in_range PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_has_break PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_window PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_distance PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_trading_index PASSED [ 89%] 671s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_deprecated PASSED [ 89%] 671s tests/test_xtae_calendar.py::TestXTAECalendar::test_testbase_integrity PASSED [ 89%] 671s tests/test_xtae_calendar.py::TestXTAECalendar::test_base_integrity PASSED [ 89%] 673s tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv PASSED [ 89%] 674s tests/test_xtae_calendar.py::TestXTAECalendar::test_start_end PASSED [ 89%] 674s tests/test_xtae_calendar.py::TestXTAECalendar::test_invalid_input PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_max PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_sanity_check_session_lengths PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_specification PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_daylight_savings PASSED [ 89%] 676s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_opens_closes_break_starts_ends PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[both] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-next] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-next] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-next] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-next] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[left] PASSED [ 89%] 677s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[left] PASSED [ 89%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[left] PASSED [ 89%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[left] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-next] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-next] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[right] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-next] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[neither] PASSED [ 90%] 678s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[neither] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[right] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[left] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[both] PASSED [ 90%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_has_break PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_regular_holidays_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_holidays_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample_time PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays_time PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample_time PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_open_close_break_start_end PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_has_break PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_next_prev_session PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_offset PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_session PASSED [ 91%] 679s tests/test_xtae_calendar.py::TestXTAECalendar::test_date_to_session PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_open_close PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_in_range PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_has_break PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_window PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_distance PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_trading_index PASSED [ 91%] 680s tests/test_xtae_calendar.py::TestXTAECalendar::test_deprecated PASSED [ 91%] 680s tests/test_xtai_calendar.py::TestXTAICalendar::test_testbase_integrity PASSED [ 91%] 680s tests/test_xtai_calendar.py::TestXTAICalendar::test_base_integrity PASSED [ 91%] 684s tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv PASSED [ 91%] 685s tests/test_xtai_calendar.py::TestXTAICalendar::test_start_end PASSED [ 91%] 685s tests/test_xtai_calendar.py::TestXTAICalendar::test_invalid_input PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_min PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_max PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_sanity_check_session_lengths PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_specification PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_daylight_savings PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_opens_closes_break_starts_ends PASSED [ 91%] 686s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[both] PASSED [ 91%] 687s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[both] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-next] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-next] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-next] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-next] PASSED [ 91%] 690s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[left] PASSED [ 91%] 691s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[left] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-previous] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-next] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-next] PASSED [ 91%] 694s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[right] PASSED [ 91%] 695s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[right] PASSED [ 91%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] PASSED [ 91%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-none] PASSED [ 91%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-none] PASSED [ 91%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-none] PASSED [ 92%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-none] PASSED [ 92%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-none] PASSED [ 92%] 697s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-none] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-none] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-none] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-previous] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-next] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-next] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[neither] PASSED [ 92%] 698s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[neither] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[right] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[left] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[both] PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_has_break PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_regular_holidays_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_holidays_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample_time PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays_time PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample_time PASSED [ 92%] 701s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens PASSED [ 92%] 702s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes PASSED [ 92%] 702s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_open_close_break_start_end PASSED [ 92%] 702s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_has_break PASSED [ 92%] 702s tests/test_xtai_calendar.py::TestXTAICalendar::test_next_prev_session PASSED [ 92%] 702s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_offset PASSED [ 92%] 703s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_session PASSED [ 92%] 703s tests/test_xtai_calendar.py::TestXTAICalendar::test_date_to_session PASSED [ 92%] 707s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close PASSED [ 92%] 707s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_in_range PASSED [ 92%] 707s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_has_break PASSED [ 92%] 707s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_window PASSED [ 93%] 707s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_distance PASSED [ 93%] 708s tests/test_xtai_calendar.py::TestXTAICalendar::test_trading_index PASSED [ 93%] 708s tests/test_xtai_calendar.py::TestXTAICalendar::test_deprecated PASSED [ 93%] 708s tests/test_xtks_calendar.py::TestXTKSCalendar::test_testbase_integrity PASSED [ 93%] 708s tests/test_xtks_calendar.py::TestXTKSCalendar::test_base_integrity PASSED [ 93%] 709s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calculated_against_csv PASSED [ 93%] 709s tests/test_xtks_calendar.py::TestXTKSCalendar::test_start_end PASSED [ 93%] 709s tests/test_xtks_calendar.py::TestXTKSCalendar::test_invalid_input PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_min PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_max PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sanity_check_session_lengths PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_specification PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_daylight_savings PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_opens_closes_break_starts_ends PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[both] PASSED [ 93%] 710s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[both] PASSED [ 93%] 711s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[both] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[both] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-next] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-next] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[left] PASSED [ 93%] 712s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[left] PASSED [ 93%] 713s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[left] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[left] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-next] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[right] PASSED [ 93%] 714s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[right] PASSED [ 93%] 715s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[right] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[right] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-previous] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-next] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[neither] PASSED [ 93%] 716s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[neither] PASSED [ 93%] 717s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[neither] PASSED [ 93%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[neither] PASSED [ 93%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[neither] PASSED [ 93%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[neither] PASSED [ 93%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[neither] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[right] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[left] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[both] PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_has_break PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_regular_holidays_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_holidays_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample_time PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays_time PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample_time PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_open_close_break_start_end PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_has_break PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_next_prev_session PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_offset PASSED [ 94%] 718s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_session PASSED [ 94%] 719s tests/test_xtks_calendar.py::TestXTKSCalendar::test_date_to_session PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_open_close PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_in_range PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_has_break PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_window PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_distance PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_trading_index PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_deprecated PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_golden_week_holidays PASSED [ 94%] 720s tests/test_xtks_calendar.py::TestXTKSCalendar::test_emperors_birthday PASSED [ 94%] 720s tests/test_xtse_calendar.py::TestXTSECalendar::test_testbase_integrity PASSED [ 94%] 720s tests/test_xtse_calendar.py::TestXTSECalendar::test_base_integrity PASSED [ 94%] 722s tests/test_xtse_calendar.py::TestXTSECalendar::test_calculated_against_csv PASSED [ 94%] 722s tests/test_xtse_calendar.py::TestXTSECalendar::test_start_end PASSED [ 94%] 723s tests/test_xtse_calendar.py::TestXTSECalendar::test_invalid_input PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_min PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_max PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_sanity_check_session_lengths PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_specification PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_daylight_savings PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_opens_closes_break_starts_ends PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[both] PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[both] PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[both] PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[both] PASSED [ 94%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[both] PASSED [ 95%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[both] PASSED [ 95%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[both] PASSED [ 95%] 724s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[both] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[both] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[both] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-next] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-next] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[left] PASSED [ 95%] 725s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[left] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[left] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-next] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[right] PASSED [ 95%] 726s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[right] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[right] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[right] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-previous] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-next] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[neither] PASSED [ 95%] 727s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[neither] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[right] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[left] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[left] PASSED [ 95%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[left] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[both] PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_has_break PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_regular_holidays_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_holidays_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample_time PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays_time PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample PASSED [ 96%] 728s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample_time PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_open_close_break_start_end PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_has_break PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_next_prev_session PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_offset PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_session PASSED [ 96%] 729s tests/test_xtse_calendar.py::TestXTSECalendar::test_date_to_session PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_open_close PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_in_range PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_has_break PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_window PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_distance PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_trading_index PASSED [ 96%] 730s tests/test_xtse_calendar.py::TestXTSECalendar::test_deprecated PASSED [ 96%] 730s tests/test_xwar_calendar.py::TestXWARCalendar::test_testbase_integrity PASSED [ 96%] 730s tests/test_xwar_calendar.py::TestXWARCalendar::test_base_integrity PASSED [ 96%] 732s tests/test_xwar_calendar.py::TestXWARCalendar::test_calculated_against_csv PASSED [ 96%] 732s tests/test_xwar_calendar.py::TestXWARCalendar::test_start_end PASSED [ 96%] 732s tests/test_xwar_calendar.py::TestXWARCalendar::test_invalid_input PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_min PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_max PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_sanity_check_session_lengths PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_specification PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_daylight_savings PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_opens_closes_break_starts_ends PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[both] PASSED [ 96%] 733s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[both] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[both] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[both] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-next] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-next] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 96%] 734s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[left] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-previous] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 96%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-previous] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-previous] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-next] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 97%] 735s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[right] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-none] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-none] PASSED [ 97%] 736s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-none] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-none] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-previous] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-next] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[neither] PASSED [ 97%] 737s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[neither] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[right] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[left] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[both] PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_has_break PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_regular_holidays_sample PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_sample PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_holidays_sample PASSED [ 97%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens_sample PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample_time PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays_time PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample_time PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_open_close_break_start_end PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_has_break PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_next_prev_session PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_offset PASSED [ 98%] 738s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_session PASSED [ 98%] 739s tests/test_xwar_calendar.py::TestXWARCalendar::test_date_to_session PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_open_close PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_in_range PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_has_break PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_window PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_distance PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_trading_index PASSED [ 98%] 740s tests/test_xwar_calendar.py::TestXWARCalendar::test_deprecated PASSED [ 98%] 740s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_testbase_integrity PASSED [ 98%] 740s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_base_integrity PASSED [ 98%] 742s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calculated_against_csv PASSED [ 98%] 742s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_start_end PASSED [ 98%] 742s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_invalid_input PASSED [ 98%] 743s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_min PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_max PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sanity_check_session_lengths PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_specification PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_daylight_savings PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_opens_closes_break_starts_ends PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[both] PASSED [ 98%] 744s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[both] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[both] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-next] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-next] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[left] PASSED [ 98%] 745s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[left] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[left] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[left] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-next] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 98%] 746s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[right] PASSED [ 98%] 747s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[right] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[right] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 98%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-none] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-previous] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-next] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[neither] PASSED [ 99%] 748s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[neither] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[right] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[left] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[both] PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_has_break PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_regular_holidays_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_holidays_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample_time PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays_time PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample_time PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_open_close_break_start_end PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_has_break PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_next_prev_session PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_offset PASSED [ 99%] 749s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_session PASSED [ 99%] 750s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_date_to_session PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_open_close PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_in_range PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_has_break PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_window PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_distance PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_trading_index PASSED [ 99%] 751s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_deprecated PASSED [100%] 751s 751s ================= 8188 passed, 1 xfailed in 650.05s (0:10:50) ================== 752s autopkgtest [19:40:45]: test run-tests: -----------------------] 753s run-tests PASS 753s autopkgtest [19:40:46]: test run-tests: - - - - - - - - - - results - - - - - - - - - - 753s autopkgtest [19:40:46]: @@@@@@@@@@@@@@@@@@@@ summary 753s run-tests PASS 771s nova [W] Skipping flock for amd64 771s Creating nova instance adt-questing-amd64-exchange-calendars-20250503-192813-juju-7f2275-prod-proposed-migration-environment-20-d322bb51-c19f-4e39-bc86-a6b7aec05cf6 from image adt/ubuntu-questing-amd64-server-20250503.img (UUID 57b7c1b6-ad80-4bdb-b031-36f045f7f3b3)... 771s nova [W] Timed out waiting for 601775b8-fee6-4dbc-b820-8626bc0c1d00 to get deleted.