0s autopkgtest [03:34:44]: starting date and time: 2025-11-14 03:34:44+0000 0s autopkgtest [03:34:44]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [03:34:44]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.sltdv6ud/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:numpy --apt-upgrade exchange-calendars --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=numpy/1:2.3.4+ds-3ubuntu1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-4.secgroup --name adt-resolute-ppc64el-exchange-calendars-20251114-033444-juju-7f2275-prod-proposed-migration-environment-15-047436a7-ede2-4b2f-80ea-bbe2c02a17ac --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-ppc64el-exchange-calendars-20251114-033444-juju-7f2275-prod-proposed-migration-environment-15-047436a7-ede2-4b2f-80ea-bbe2c02a17ac from image adt/ubuntu-resolute-ppc64el-server-20251114.img (UUID 54364115-0cac-4fbe-a123-084639c746bf)... 52s autopkgtest [03:35:36]: testbed dpkg architecture: ppc64el 52s autopkgtest [03:35:36]: testbed apt version: 3.1.11 52s autopkgtest [03:35:36]: @@@@@@@@@@@@@@@@@@@@ test bed setup 53s autopkgtest [03:35:37]: testbed release detected to be: None 53s autopkgtest [03:35:37]: updating testbed package index (apt update) 54s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 54s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 54s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 54s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 54s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [83.2 kB] 54s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.4 kB] 54s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [787 kB] 54s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 54s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [141 kB] 54s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 54s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [442 kB] 55s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [10.5 kB] 55s Fetched 1585 kB in 1s (1444 kB/s) 55s Reading package lists... 56s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 56s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 56s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 57s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 57s Reading package lists... 57s Reading package lists... 58s Building dependency tree... 58s Reading state information... 58s Calculating upgrade... 58s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 58s autopkgtest [03:35:42]: upgrading testbed (apt dist-upgrade and autopurge) 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 58s Calculating upgrade... 58s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 58s Reading package lists... 59s Building dependency tree... 59s Reading state information... 59s Solving dependencies... 59s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 62s autopkgtest [03:35:45]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:02:41 UTC 2025 62s autopkgtest [03:35:46]: @@@@@@@@@@@@@@@@@@@@ apt-source exchange-calendars 65s Get:1 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (dsc) [2397 B] 65s Get:2 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (tar) [4019 kB] 65s Get:3 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (diff) [3468 B] 65s gpgv: Signature made Fri Oct 17 09:00:08 2025 UTC 65s gpgv: using RSA key FB8ACFA78C726089C38AD0269605A1098C63B92A 65s gpgv: Can't check signature: No public key 65s dpkg-source: warning: cannot verify inline signature for ./exchange-calendars_4.11.2-1.dsc: no acceptable signature found 65s autopkgtest [03:35:49]: testing package exchange-calendars version 4.11.2-1 65s autopkgtest [03:35:49]: build not needed 67s autopkgtest [03:35:51]: test pybuild-autopkgtest: preparing testbed 68s Reading package lists... 68s Building dependency tree... 68s Reading state information... 68s Solving dependencies... 68s The following NEW packages will be installed: 68s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 68s cpp-15-powerpc64le-linux-gnu cpp-powerpc64le-linux-gnu debhelper debugedit 68s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 68s g++-15-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu gcc gcc-15 68s gcc-15-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu gettext 68s intltool-debian libarchive-zip-perl libasan8 libblas3 libcc1-0 68s libdebhelper-perl libfile-stripnondeterminism-perl libgcc-15-dev 68s libgfortran5 libgomp1 libisl23 libitm1 liblapack3 liblsan0 libmpc3 68s libquadmath0 libstdc++-15-dev libtool libtsan2 libubsan1 m4 po-debconf 68s pybuild-plugin-autopkgtest pybuild-plugin-pyproject python3-all 68s python3-build python3-exchange-calendars python3-hypothesis 68s python3-iniconfig python3-installer python3-korean-lunar-calendar 68s python3-numpy python3-numpy-dev python3-pandas python3-pandas-lib 68s python3-pluggy python3-pyluach python3-pyproject-hooks python3-pytest 68s python3-pytz python3-sortedcontainers python3-toolz python3-wheel 68s 0 upgraded, 67 newly installed, 0 to remove and 0 not upgraded. 68s Need to get 87.7 MB of archives. 68s After this operation, 369 MB of additional disk space will be used. 68s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-numpy-dev ppc64el 1:2.3.4+ds-3ubuntu1 [153 kB] 68s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el libblas3 ppc64el 3.12.1-7 [291 kB] 69s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgfortran5 ppc64el 15.2.0-7ubuntu1 [620 kB] 69s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblapack3 ppc64el 3.12.1-7 [2960 kB] 69s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-numpy ppc64el 1:2.3.4+ds-3ubuntu1 [5725 kB] 71s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el m4 ppc64el 1.4.20-2 [236 kB] 71s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el autoconf all 2.72-3.1ubuntu1 [384 kB] 71s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el autotools-dev all 20240727.1 [43.4 kB] 71s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el automake all 1:1.18.1-2 [581 kB] 71s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el autopoint all 0.23.1-2build2 [619 kB] 71s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el libisl23 ppc64el 0.27-1 [882 kB] 71s Get:12 http://ftpmaster.internal/ubuntu resolute/main ppc64el libmpc3 ppc64el 1.3.1-2 [62.5 kB] 71s Get:13 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [11.4 MB] 72s Get:14 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-15 ppc64el 15.2.0-7ubuntu1 [1032 B] 72s Get:15 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [5746 B] 72s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el cpp ppc64el 4:15.2.0-4ubuntu1 [22.4 kB] 72s Get:17 http://ftpmaster.internal/ubuntu resolute/main ppc64el libcc1-0 ppc64el 15.2.0-7ubuntu1 [49.0 kB] 72s Get:18 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgomp1 ppc64el 15.2.0-7ubuntu1 [169 kB] 72s Get:19 http://ftpmaster.internal/ubuntu resolute/main ppc64el libitm1 ppc64el 15.2.0-7ubuntu1 [32.3 kB] 72s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el libasan8 ppc64el 15.2.0-7ubuntu1 [3006 kB] 72s Get:21 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblsan0 ppc64el 15.2.0-7ubuntu1 [1374 kB] 73s Get:22 http://ftpmaster.internal/ubuntu resolute/main ppc64el libtsan2 ppc64el 15.2.0-7ubuntu1 [2728 kB] 73s Get:23 http://ftpmaster.internal/ubuntu resolute/main ppc64el libubsan1 ppc64el 15.2.0-7ubuntu1 [1231 kB] 74s Get:24 http://ftpmaster.internal/ubuntu resolute/main ppc64el libquadmath0 ppc64el 15.2.0-7ubuntu1 [160 kB] 74s Get:25 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgcc-15-dev ppc64el 15.2.0-7ubuntu1 [1670 kB] 74s Get:26 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [22.4 MB] 81s Get:27 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-15 ppc64el 15.2.0-7ubuntu1 [524 kB] 81s Get:28 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [1220 B] 81s Get:29 http://ftpmaster.internal/ubuntu resolute/main ppc64el gcc ppc64el 4:15.2.0-4ubuntu1 [5032 B] 81s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el libstdc++-15-dev ppc64el 15.2.0-7ubuntu1 [2744 kB] 82s Get:31 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-15-powerpc64le-linux-gnu ppc64el 15.2.0-7ubuntu1 [13.0 MB] 86s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-15 ppc64el 15.2.0-7ubuntu1 [23.7 kB] 86s Get:33 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++-powerpc64le-linux-gnu ppc64el 4:15.2.0-4ubuntu1 [970 B] 86s Get:34 http://ftpmaster.internal/ubuntu resolute/main ppc64el g++ ppc64el 4:15.2.0-4ubuntu1 [1092 B] 86s Get:35 http://ftpmaster.internal/ubuntu resolute/main ppc64el build-essential ppc64el 12.12ubuntu1 [5094 B] 86s Get:36 http://ftpmaster.internal/ubuntu resolute/main ppc64el libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 86s Get:37 http://ftpmaster.internal/ubuntu resolute/main ppc64el libtool all 2.5.4-7 [169 kB] 86s Get:38 http://ftpmaster.internal/ubuntu resolute/main ppc64el dh-autoreconf all 21 [12.5 kB] 86s Get:39 http://ftpmaster.internal/ubuntu resolute/main ppc64el libarchive-zip-perl all 1.68-1 [90.2 kB] 86s Get:40 http://ftpmaster.internal/ubuntu resolute/main ppc64el libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 86s Get:41 http://ftpmaster.internal/ubuntu resolute/main ppc64el dh-strip-nondeterminism all 1.15.0-1 [5090 B] 86s Get:42 http://ftpmaster.internal/ubuntu resolute/main ppc64el debugedit ppc64el 1:5.2-3 [57.3 kB] 86s Get:43 http://ftpmaster.internal/ubuntu resolute/main ppc64el dwz ppc64el 0.16-2 [142 kB] 86s Get:44 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.1-2build2 [1177 kB] 87s Get:45 http://ftpmaster.internal/ubuntu resolute/main ppc64el intltool-debian all 0.35.0+20060710.6 [23.2 kB] 87s Get:46 http://ftpmaster.internal/ubuntu resolute/main ppc64el po-debconf all 1.0.21+nmu1 [233 kB] 87s Get:47 http://ftpmaster.internal/ubuntu resolute/main ppc64el debhelper all 13.24.2ubuntu1 [896 kB] 87s Get:48 http://ftpmaster.internal/ubuntu resolute/universe ppc64el dh-python all 6.20250414 [119 kB] 87s Get:49 http://ftpmaster.internal/ubuntu resolute/universe ppc64el pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 87s Get:50 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 87s Get:51 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-wheel all 0.46.1-2 [22.1 kB] 87s Get:52 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-build all 1.2.2-4 [31.0 kB] 87s Get:53 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 87s Get:54 http://ftpmaster.internal/ubuntu resolute/universe ppc64el pybuild-plugin-pyproject all 6.20250414 [1728 B] 87s Get:55 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-all ppc64el 3.13.7-1 [884 B] 87s Get:56 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-korean-lunar-calendar all 0.3.1-2 [9108 B] 87s Get:57 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-pytz all 2025.2-4 [32.3 kB] 87s Get:58 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pandas-lib ppc64el 2.3.3+dfsg-1ubuntu1 [7666 kB] 89s Get:59 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pandas all 2.3.3+dfsg-1ubuntu1 [2948 kB] 90s Get:60 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pyluach all 2.3.0-1 [24.2 kB] 90s Get:61 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-toolz all 1.0.0-2 [45.0 kB] 90s Get:62 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-exchange-calendars all 4.11.2-1 [153 kB] 90s Get:63 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-sortedcontainers all 2.4.0-2 [27.6 kB] 90s Get:64 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-hypothesis all 6.130.5-2 [341 kB] 90s Get:65 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 2.1.0-1 [6840 B] 90s Get:66 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-1 [21.0 kB] 90s Get:67 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest all 8.3.5-2 [252 kB] 91s Fetched 87.7 MB in 22s (3902 kB/s) 91s Selecting previously unselected package python3-numpy-dev:ppc64el. 91s (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 ... 81021 files and directories currently installed.) 91s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.4+ds-3ubuntu1_ppc64el.deb ... 91s Unpacking python3-numpy-dev:ppc64el (1:2.3.4+ds-3ubuntu1) ... 91s Selecting previously unselected package libblas3:ppc64el. 91s Preparing to unpack .../01-libblas3_3.12.1-7_ppc64el.deb ... 91s Unpacking libblas3:ppc64el (3.12.1-7) ... 91s Selecting previously unselected package libgfortran5:ppc64el. 91s Preparing to unpack .../02-libgfortran5_15.2.0-7ubuntu1_ppc64el.deb ... 91s Unpacking libgfortran5:ppc64el (15.2.0-7ubuntu1) ... 91s Selecting previously unselected package liblapack3:ppc64el. 91s Preparing to unpack .../03-liblapack3_3.12.1-7_ppc64el.deb ... 91s Unpacking liblapack3:ppc64el (3.12.1-7) ... 91s Selecting previously unselected package python3-numpy. 91s Preparing to unpack .../04-python3-numpy_1%3a2.3.4+ds-3ubuntu1_ppc64el.deb ... 91s Unpacking python3-numpy (1:2.3.4+ds-3ubuntu1) ... 91s Selecting previously unselected package m4. 91s Preparing to unpack .../05-m4_1.4.20-2_ppc64el.deb ... 91s Unpacking m4 (1.4.20-2) ... 91s Selecting previously unselected package autoconf. 91s Preparing to unpack .../06-autoconf_2.72-3.1ubuntu1_all.deb ... 91s Unpacking autoconf (2.72-3.1ubuntu1) ... 91s Selecting previously unselected package autotools-dev. 91s Preparing to unpack .../07-autotools-dev_20240727.1_all.deb ... 91s Unpacking autotools-dev (20240727.1) ... 91s Selecting previously unselected package automake. 91s Preparing to unpack .../08-automake_1%3a1.18.1-2_all.deb ... 91s Unpacking automake (1:1.18.1-2) ... 92s Selecting previously unselected package autopoint. 92s Preparing to unpack .../09-autopoint_0.23.1-2build2_all.deb ... 92s Unpacking autopoint (0.23.1-2build2) ... 92s Selecting previously unselected package libisl23:ppc64el. 92s Preparing to unpack .../10-libisl23_0.27-1_ppc64el.deb ... 92s Unpacking libisl23:ppc64el (0.27-1) ... 92s Selecting previously unselected package libmpc3:ppc64el. 92s Preparing to unpack .../11-libmpc3_1.3.1-2_ppc64el.deb ... 92s Unpacking libmpc3:ppc64el (1.3.1-2) ... 92s Selecting previously unselected package cpp-15-powerpc64le-linux-gnu. 92s Preparing to unpack .../12-cpp-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking cpp-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package cpp-15. 92s Preparing to unpack .../13-cpp-15_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package cpp-powerpc64le-linux-gnu. 92s Preparing to unpack .../14-cpp-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 92s Unpacking cpp-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 92s Selecting previously unselected package cpp. 92s Preparing to unpack .../15-cpp_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 92s Unpacking cpp (4:15.2.0-4ubuntu1) ... 92s Selecting previously unselected package libcc1-0:ppc64el. 92s Preparing to unpack .../16-libcc1-0_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libcc1-0:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libgomp1:ppc64el. 92s Preparing to unpack .../17-libgomp1_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libgomp1:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libitm1:ppc64el. 92s Preparing to unpack .../18-libitm1_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libitm1:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libasan8:ppc64el. 92s Preparing to unpack .../19-libasan8_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libasan8:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package liblsan0:ppc64el. 92s Preparing to unpack .../20-liblsan0_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking liblsan0:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libtsan2:ppc64el. 92s Preparing to unpack .../21-libtsan2_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libtsan2:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libubsan1:ppc64el. 92s Preparing to unpack .../22-libubsan1_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libubsan1:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libquadmath0:ppc64el. 92s Preparing to unpack .../23-libquadmath0_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libquadmath0:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package libgcc-15-dev:ppc64el. 92s Preparing to unpack .../24-libgcc-15-dev_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libgcc-15-dev:ppc64el (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package gcc-15-powerpc64le-linux-gnu. 92s Preparing to unpack .../25-gcc-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking gcc-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package gcc-15. 92s Preparing to unpack .../26-gcc-15_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 92s Selecting previously unselected package gcc-powerpc64le-linux-gnu. 92s Preparing to unpack .../27-gcc-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 92s Unpacking gcc-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 92s Selecting previously unselected package gcc. 92s Preparing to unpack .../28-gcc_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 92s Unpacking gcc (4:15.2.0-4ubuntu1) ... 92s Selecting previously unselected package libstdc++-15-dev:ppc64el. 92s Preparing to unpack .../29-libstdc++-15-dev_15.2.0-7ubuntu1_ppc64el.deb ... 92s Unpacking libstdc++-15-dev:ppc64el (15.2.0-7ubuntu1) ... 93s Selecting previously unselected package g++-15-powerpc64le-linux-gnu. 93s Preparing to unpack .../30-g++-15-powerpc64le-linux-gnu_15.2.0-7ubuntu1_ppc64el.deb ... 93s Unpacking g++-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 93s Selecting previously unselected package g++-15. 93s Preparing to unpack .../31-g++-15_15.2.0-7ubuntu1_ppc64el.deb ... 93s Unpacking g++-15 (15.2.0-7ubuntu1) ... 93s Selecting previously unselected package g++-powerpc64le-linux-gnu. 93s Preparing to unpack .../32-g++-powerpc64le-linux-gnu_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 93s Unpacking g++-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 93s Selecting previously unselected package g++. 93s Preparing to unpack .../33-g++_4%3a15.2.0-4ubuntu1_ppc64el.deb ... 93s Unpacking g++ (4:15.2.0-4ubuntu1) ... 93s Selecting previously unselected package build-essential. 93s Preparing to unpack .../34-build-essential_12.12ubuntu1_ppc64el.deb ... 93s Unpacking build-essential (12.12ubuntu1) ... 93s Selecting previously unselected package libdebhelper-perl. 93s Preparing to unpack .../35-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 93s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 93s Selecting previously unselected package libtool. 93s Preparing to unpack .../36-libtool_2.5.4-7_all.deb ... 93s Unpacking libtool (2.5.4-7) ... 93s Selecting previously unselected package dh-autoreconf. 93s Preparing to unpack .../37-dh-autoreconf_21_all.deb ... 93s Unpacking dh-autoreconf (21) ... 93s Selecting previously unselected package libarchive-zip-perl. 93s Preparing to unpack .../38-libarchive-zip-perl_1.68-1_all.deb ... 93s Unpacking libarchive-zip-perl (1.68-1) ... 93s Selecting previously unselected package libfile-stripnondeterminism-perl. 93s Preparing to unpack .../39-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 93s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 93s Selecting previously unselected package dh-strip-nondeterminism. 93s Preparing to unpack .../40-dh-strip-nondeterminism_1.15.0-1_all.deb ... 93s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 93s Selecting previously unselected package debugedit. 93s Preparing to unpack .../41-debugedit_1%3a5.2-3_ppc64el.deb ... 93s Unpacking debugedit (1:5.2-3) ... 93s Selecting previously unselected package dwz. 93s Preparing to unpack .../42-dwz_0.16-2_ppc64el.deb ... 93s Unpacking dwz (0.16-2) ... 93s Selecting previously unselected package gettext. 93s Preparing to unpack .../43-gettext_0.23.1-2build2_ppc64el.deb ... 93s Unpacking gettext (0.23.1-2build2) ... 93s Selecting previously unselected package intltool-debian. 93s Preparing to unpack .../44-intltool-debian_0.35.0+20060710.6_all.deb ... 93s Unpacking intltool-debian (0.35.0+20060710.6) ... 93s Selecting previously unselected package po-debconf. 93s Preparing to unpack .../45-po-debconf_1.0.21+nmu1_all.deb ... 93s Unpacking po-debconf (1.0.21+nmu1) ... 93s Selecting previously unselected package debhelper. 93s Preparing to unpack .../46-debhelper_13.24.2ubuntu1_all.deb ... 93s Unpacking debhelper (13.24.2ubuntu1) ... 93s Selecting previously unselected package dh-python. 93s Preparing to unpack .../47-dh-python_6.20250414_all.deb ... 93s Unpacking dh-python (6.20250414) ... 93s Selecting previously unselected package pybuild-plugin-autopkgtest. 93s Preparing to unpack .../48-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 93s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 93s Selecting previously unselected package python3-pyproject-hooks. 93s Preparing to unpack .../49-python3-pyproject-hooks_1.2.0-1_all.deb ... 93s Unpacking python3-pyproject-hooks (1.2.0-1) ... 93s Selecting previously unselected package python3-wheel. 93s Preparing to unpack .../50-python3-wheel_0.46.1-2_all.deb ... 93s Unpacking python3-wheel (0.46.1-2) ... 93s Selecting previously unselected package python3-build. 93s Preparing to unpack .../51-python3-build_1.2.2-4_all.deb ... 93s Unpacking python3-build (1.2.2-4) ... 93s Selecting previously unselected package python3-installer. 93s Preparing to unpack .../52-python3-installer_0.7.0+dfsg1-3_all.deb ... 93s Unpacking python3-installer (0.7.0+dfsg1-3) ... 93s Selecting previously unselected package pybuild-plugin-pyproject. 93s Preparing to unpack .../53-pybuild-plugin-pyproject_6.20250414_all.deb ... 93s Unpacking pybuild-plugin-pyproject (6.20250414) ... 93s Selecting previously unselected package python3-all. 93s Preparing to unpack .../54-python3-all_3.13.7-1_ppc64el.deb ... 93s Unpacking python3-all (3.13.7-1) ... 93s Selecting previously unselected package python3-korean-lunar-calendar. 93s Preparing to unpack .../55-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 .../56-python3-pytz_2025.2-4_all.deb ... 93s Unpacking python3-pytz (2025.2-4) ... 93s Selecting previously unselected package python3-pandas-lib:ppc64el. 93s Preparing to unpack .../57-python3-pandas-lib_2.3.3+dfsg-1ubuntu1_ppc64el.deb ... 93s Unpacking python3-pandas-lib:ppc64el (2.3.3+dfsg-1ubuntu1) ... 94s Selecting previously unselected package python3-pandas. 94s Preparing to unpack .../58-python3-pandas_2.3.3+dfsg-1ubuntu1_all.deb ... 94s Unpacking python3-pandas (2.3.3+dfsg-1ubuntu1) ... 94s Selecting previously unselected package python3-pyluach. 94s Preparing to unpack .../59-python3-pyluach_2.3.0-1_all.deb ... 94s Unpacking python3-pyluach (2.3.0-1) ... 94s Selecting previously unselected package python3-toolz. 94s Preparing to unpack .../60-python3-toolz_1.0.0-2_all.deb ... 94s Unpacking python3-toolz (1.0.0-2) ... 94s Selecting previously unselected package python3-exchange-calendars. 94s Preparing to unpack .../61-python3-exchange-calendars_4.11.2-1_all.deb ... 94s Unpacking python3-exchange-calendars (4.11.2-1) ... 94s Selecting previously unselected package python3-sortedcontainers. 94s Preparing to unpack .../62-python3-sortedcontainers_2.4.0-2_all.deb ... 94s Unpacking python3-sortedcontainers (2.4.0-2) ... 94s Selecting previously unselected package python3-hypothesis. 94s Preparing to unpack .../63-python3-hypothesis_6.130.5-2_all.deb ... 94s Unpacking python3-hypothesis (6.130.5-2) ... 94s Selecting previously unselected package python3-iniconfig. 94s Preparing to unpack .../64-python3-iniconfig_2.1.0-1_all.deb ... 94s Unpacking python3-iniconfig (2.1.0-1) ... 94s Selecting previously unselected package python3-pluggy. 94s Preparing to unpack .../65-python3-pluggy_1.6.0-1_all.deb ... 94s Unpacking python3-pluggy (1.6.0-1) ... 94s Selecting previously unselected package python3-pytest. 94s Preparing to unpack .../66-python3-pytest_8.3.5-2_all.deb ... 94s Unpacking python3-pytest (8.3.5-2) ... 94s Setting up dh-python (6.20250414) ... 94s Setting up python3-iniconfig (2.1.0-1) ... 94s Setting up python3-pyluach (2.3.0-1) ... 94s Setting up libarchive-zip-perl (1.68-1) ... 94s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 94s Setting up m4 (1.4.20-2) ... 94s Setting up python3-all (3.13.7-1) ... 94s Setting up python3-pytz (2025.2-4) ... 94s Setting up python3-sortedcontainers (2.4.0-2) ... 95s Setting up libgomp1:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up python3-wheel (0.46.1-2) ... 95s Setting up autotools-dev (20240727.1) ... 95s Setting up libblas3:ppc64el (3.12.1-7) ... 95s update-alternatives: using /usr/lib/powerpc64le-linux-gnu/blas/libblas.so.3 to provide /usr/lib/powerpc64le-linux-gnu/libblas.so.3 (libblas.so.3-powerpc64le-linux-gnu) in auto mode 95s Setting up python3-korean-lunar-calendar (0.3.1-2) ... 95s Setting up python3-pyproject-hooks (1.2.0-1) ... 95s Setting up libquadmath0:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up libmpc3:ppc64el (1.3.1-2) ... 95s Setting up python3-numpy-dev:ppc64el (1:2.3.4+ds-3ubuntu1) ... 95s Setting up autopoint (0.23.1-2build2) ... 95s Setting up python3-installer (0.7.0+dfsg1-3) ... 95s Setting up libgfortran5:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up autoconf (2.72-3.1ubuntu1) ... 95s Setting up python3-pluggy (1.6.0-1) ... 95s Setting up libubsan1:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up dwz (0.16-2) ... 95s Setting up libasan8:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up debugedit (1:5.2-3) ... 95s Setting up python3-toolz (1.0.0-2) ... 95s Setting up libtsan2:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up libisl23:ppc64el (0.27-1) ... 95s Setting up python3-build (1.2.2-4) ... 95s Setting up libcc1-0:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up liblsan0:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up libitm1:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up automake (1:1.18.1-2) ... 95s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 95s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 95s Setting up liblapack3:ppc64el (3.12.1-7) ... 95s update-alternatives: using /usr/lib/powerpc64le-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/powerpc64le-linux-gnu/liblapack.so.3 (liblapack.so.3-powerpc64le-linux-gnu) in auto mode 95s Setting up gettext (0.23.1-2build2) ... 95s Setting up libgcc-15-dev:ppc64el (15.2.0-7ubuntu1) ... 95s Setting up pybuild-plugin-pyproject (6.20250414) ... 95s Setting up python3-pytest (8.3.5-2) ... 96s Setting up python3-hypothesis (6.130.5-2) ... 96s Setting up intltool-debian (0.35.0+20060710.6) ... 96s Setting up cpp-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 96s Setting up libstdc++-15-dev:ppc64el (15.2.0-7ubuntu1) ... 96s Setting up python3-numpy (1:2.3.4+ds-3ubuntu1) ... 98s Setting up dh-strip-nondeterminism (1.15.0-1) ... 98s Setting up cpp-15 (15.2.0-7ubuntu1) ... 98s Setting up cpp-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 98s Setting up gcc-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 98s Setting up po-debconf (1.0.21+nmu1) ... 98s Setting up python3-pandas-lib:ppc64el (2.3.3+dfsg-1ubuntu1) ... 98s Setting up gcc-15 (15.2.0-7ubuntu1) ... 98s Setting up python3-pandas (2.3.3+dfsg-1ubuntu1) ... 102s Setting up gcc-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 102s Setting up cpp (4:15.2.0-4ubuntu1) ... 102s Setting up g++-15-powerpc64le-linux-gnu (15.2.0-7ubuntu1) ... 103s Setting up libtool (2.5.4-7) ... 103s Setting up python3-exchange-calendars (4.11.2-1) ... 103s Setting up gcc (4:15.2.0-4ubuntu1) ... 103s Setting up dh-autoreconf (21) ... 103s Setting up g++-15 (15.2.0-7ubuntu1) ... 103s Setting up g++-powerpc64le-linux-gnu (4:15.2.0-4ubuntu1) ... 103s Setting up debhelper (13.24.2ubuntu1) ... 103s Setting up g++ (4:15.2.0-4ubuntu1) ... 103s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 103s Setting up build-essential (12.12ubuntu1) ... 103s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 103s Processing triggers for install-info (7.2-5) ... 103s Processing triggers for libc-bin (2.42-2ubuntu2) ... 103s Processing triggers for man-db (2.13.1-1) ... 105s autopkgtest [03:36:29]: test pybuild-autopkgtest: pybuild-autopkgtest 105s autopkgtest [03:36:29]: test pybuild-autopkgtest: [----------------------- 105s pybuild-autopkgtest 106s I: pybuild base:311: cd /tmp/autopkgtest.VLNPnf/autopkgtest_tmp/build; python3.13 -m pytest -k "not test_testbase_integrity" 106s ============================= test session starts ============================== 106s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.13 106s cachedir: .pytest_cache 106s hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/tmp/autopkgtest.VLNPnf/autopkgtest_tmp/build/.hypothesis/examples')) 106s rootdir: /tmp/autopkgtest.VLNPnf/autopkgtest_tmp/build 106s configfile: pyproject.toml 106s testpaths: tests, exchange_calendars/utils/pandas_utils.py 106s plugins: hypothesis-6.130.5, typeguard-4.4.2 109s collecting ... collected 9191 items / 65 deselected / 9126 selected 109s 109s tests/test_aixk_calendar.py::TestAIXKCalendar::test_base_integrity PASSED [ 0%] 110s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calculated_against_csv PASSED [ 0%] 111s tests/test_aixk_calendar.py::TestAIXKCalendar::test_start_end PASSED [ 0%] 111s tests/test_aixk_calendar.py::TestAIXKCalendar::test_invalid_input PASSED [ 0%] 111s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_min PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_max PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sanity_check_session_lengths PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_specification PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_daylight_savings PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_opens_closes_break_starts_ends PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[both] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-next] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-next] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[left] PASSED [ 0%] 112s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[left] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[left] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[left] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-next] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[right] PASSED [ 0%] 113s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-previous] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-next] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[neither] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[right] PASSED [ 0%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[right] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[right] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[right] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[right] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[left] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[both] PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_has_break PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_regular_holidays_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_holidays_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample_time PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays_time PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample PASSED [ 1%] 114s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample_time PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_open_close_break_start_end PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_has_break PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_next_prev_session PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_offset PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_session PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_date_to_session PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_open_close PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_in_range PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_has_break PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_window PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_distance PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_trading_index PASSED [ 1%] 115s tests/test_aixk_calendar.py::TestAIXKCalendar::test_deprecated PASSED [ 1%] 115s tests/test_always_open.py::TestAlwaysOpenCalendar::test_base_integrity PASSED [ 1%] 116s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calculated_against_csv PASSED [ 1%] 116s tests/test_always_open.py::TestAlwaysOpenCalendar::test_start_end PASSED [ 1%] 116s tests/test_always_open.py::TestAlwaysOpenCalendar::test_invalid_input PASSED [ 1%] 117s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_min PASSED [ 1%] 117s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_max PASSED [ 1%] 117s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sanity_check_session_lengths PASSED [ 1%] 117s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_specification PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_daylight_savings PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_opens_closes_break_starts_ends PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[left] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-next] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-next] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-next] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-next] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[right] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-previous] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-previous] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-none] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-none] PASSED [ 1%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-none] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-none] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[right] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[left] PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_has_break PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_regular_holidays_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_holidays_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample_time PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays_time PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample_time PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_open_close_break_start_end PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_has_break PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_next_prev_session PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_offset PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_session PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_date_to_session PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_open_close PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_in_range PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_has_break PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_window PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_distance PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_trading_index PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_deprecated PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_day PASSED [ 2%] 118s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_minute PASSED [ 2%] 118s tests/test_asex_calendar.py::TestASEXCalendar::test_base_integrity PASSED [ 2%] 121s tests/test_asex_calendar.py::TestASEXCalendar::test_calculated_against_csv PASSED [ 2%] 121s tests/test_asex_calendar.py::TestASEXCalendar::test_start_end PASSED [ 2%] 122s tests/test_asex_calendar.py::TestASEXCalendar::test_invalid_input PASSED [ 2%] 123s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_min PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_max PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_sanity_check_session_lengths PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_specification PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_daylight_savings PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_opens_closes_break_starts_ends PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[both] PASSED [ 2%] 124s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[both] PASSED [ 2%] 125s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[both] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[both] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-next] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-next] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[left] PASSED [ 2%] 126s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[left] PASSED [ 2%] 127s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[left] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[left] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 2%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-next] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[right] PASSED [ 3%] 128s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[right] PASSED [ 3%] 129s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[right] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[right] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-previous] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-next] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[neither] PASSED [ 3%] 130s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[neither] PASSED [ 3%] 131s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[neither] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[right] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[left] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[both] PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_has_break PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_regular_holidays_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_non_holidays_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample_time PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays_time PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample_time PASSED [ 3%] 132s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_session_open_close_break_start_end PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_session_has_break PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_next_prev_session PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_session_offset PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_is_session PASSED [ 3%] 133s tests/test_asex_calendar.py::TestASEXCalendar::test_date_to_session PASSED [ 4%] 135s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_open_close PASSED [ 4%] 135s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_in_range PASSED [ 4%] 135s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_has_break PASSED [ 4%] 135s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_window PASSED [ 4%] 135s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_distance PASSED [ 4%] 136s tests/test_asex_calendar.py::TestASEXCalendar::test_trading_index PASSED [ 4%] 136s tests/test_asex_calendar.py::TestASEXCalendar::test_deprecated PASSED [ 4%] 136s tests/test_asex_calendar.py::TestASEXCalendar::test_close_time_change PASSED [ 4%] 136s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_base_integrity PASSED [ 4%] 139s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calculated_against_csv PASSED [ 4%] 139s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_start_end PASSED [ 4%] 139s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_invalid_input PASSED [ 4%] 141s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_min PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_max PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sanity_check_session_lengths PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_specification PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_daylight_savings PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_opens_closes_break_starts_ends PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[both] PASSED [ 4%] 142s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[both] PASSED [ 4%] 143s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[both] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[both] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-next] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-next] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 4%] 144s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[left] PASSED [ 4%] 145s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[left] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[left] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-next] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[right] PASSED [ 4%] 147s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[right] PASSED [ 4%] 148s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[right] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[right] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-previous] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-next] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 4%] 149s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[neither] PASSED [ 4%] 150s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[neither] PASSED [ 4%] 151s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[neither] PASSED [ 4%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[neither] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[neither] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[neither] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[right] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[left] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[both] PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_has_break PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_regular_holidays_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_holidays_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample_time PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays_time PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample_time PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_open_close_break_start_end PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_has_break PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_next_prev_session PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_offset PASSED [ 5%] 152s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_session PASSED [ 5%] 153s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_date_to_session PASSED [ 5%] 155s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_open_close PASSED [ 5%] 155s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_in_range PASSED [ 5%] 155s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_has_break PASSED [ 5%] 155s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_window PASSED [ 5%] 155s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_distance PASSED [ 5%] 156s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_trading_index PASSED [ 5%] 156s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_deprecated PASSED [ 5%] 156s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_add_new_aliases PASSED [ 5%] 156s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_aliases_to_names PASSED [ 5%] 156s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_allow_alias_override_with_force PASSED [ 5%] 156s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_follow_alias_chain PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_cache PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_kwargs PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_names PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_names_to_aliases PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_alias_that_already_exists PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_cyclic_aliases PASSED [ 5%] 157s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_remove_aliases PASSED [ 5%] 157s tests/test_calendar_helpers.py::test_constants PASSED [ 5%] 157s tests/test_calendar_helpers.py::test_is_date PASSED [ 5%] 157s tests/test_calendar_helpers.py::test_is_utc PASSED [ 5%] 158s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-True] PASSED [ 5%] 158s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-False] PASSED [ 5%] 159s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-True] PASSED [ 5%] 159s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-False] PASSED [ 5%] 160s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-True] PASSED [ 5%] 160s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-False] PASSED [ 5%] 161s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-True] PASSED [ 5%] 162s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-False] PASSED [ 5%] 162s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-True] PASSED [ 5%] 163s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-False] PASSED [ 5%] 163s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-True] PASSED [ 5%] 164s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-False] PASSED [ 5%] 164s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-True] PASSED [ 5%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-False] PASSED [ 5%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[left] PASSED [ 5%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[right] PASSED [ 5%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[both] PASSED [ 5%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[neither] PASSED [ 6%] 165s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[2021-13-13] PASSED [ 6%] 166s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[malformed1] PASSED [ 6%] 166s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[not a timestamp] PASSED [ 6%] 167s tests/test_calendar_helpers.py::test_parse_timestamp_error_oob PASSED [ 6%] 168s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[2021-06-02 23:00] PASSED [ 6%] 168s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult1] PASSED [ 6%] 169s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult2] PASSED [ 6%] 169s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[2021-06-05] PASSED [ 6%] 170s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult1] PASSED [ 6%] 170s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult2] PASSED [ 6%] 171s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult3] PASSED [ 6%] 171s tests/test_calendar_helpers.py::test_parse_date_or_minute_oob PASSED [ 6%] 172s tests/test_calendar_helpers.py::test_parse_date[2021-06-05] PASSED [ 6%] 172s tests/test_calendar_helpers.py::test_parse_date[date_mult1] PASSED [ 6%] 173s tests/test_calendar_helpers.py::test_parse_date[date_mult2] PASSED [ 6%] 174s tests/test_calendar_helpers.py::test_parse_date[date_mult3] PASSED [ 6%] 174s tests/test_calendar_helpers.py::test_parse_date_errors PASSED [ 6%] 175s tests/test_calendar_helpers.py::test_parse_session PASSED [ 6%] 175s tests/test_calendar_helpers.py::test_parse_trading_minute PASSED [ 6%] 183s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XLON] PASSED [ 6%] 185s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] PASSED [ 6%] 185s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XLON] PASSED [ 6%] 191s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XHKG] PASSED [ 6%] 196s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] PASSED [ 6%] 196s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XHKG] PASSED [ 6%] 199s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XTAE] PASSED [ 6%] 201s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XTAE] PASSED [ 6%] 202s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XTAE] PASSED [ 6%] 207s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[CMES] PASSED [ 6%] 212s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] PASSED [ 6%] 212s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[CMES] PASSED [ 6%] 213s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[24/7] PASSED [ 6%] 214s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[24/7] PASSED [ 6%] 215s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[24/7] PASSED [ 6%] 215s tests/test_calendar_helpers.py::TestTradingIndex::test_for_empty_with_neither_fuzz PASSED [ 6%] 216s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[XHKG] PASSED [ 6%] 216s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[24/7] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[CMES] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-True] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-False] PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_force PASSED [ 6%] 217s tests/test_calendar_helpers.py::TestTradingIndex::test_ignore_breaks PASSED [ 6%] 219s tests/test_calendar_helpers.py::TestTradingIndex::test_align PASSED [ 6%] 219s tests/test_calendar_helpers.py::TestTradingIndex::test_align_overlap PASSED [ 6%] 220s tests/test_calendar_helpers.py::TestTradingIndex::test_start_end_times PASSED [ 6%] 220s tests/test_calendar_helpers.py::TestTradingIndex::test_parsing_errors PASSED [ 6%] 220s tests/test_cmes_calendar.py::TestCMESCalendar::test_base_integrity PASSED [ 6%] 221s tests/test_cmes_calendar.py::TestCMESCalendar::test_calculated_against_csv PASSED [ 6%] 221s tests/test_cmes_calendar.py::TestCMESCalendar::test_start_end PASSED [ 6%] 221s tests/test_cmes_calendar.py::TestCMESCalendar::test_invalid_input PASSED [ 6%] 223s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_min PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_max PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_sanity_check_session_lengths PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_specification PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_daylight_savings PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_opens_closes_break_starts_ends PASSED [ 6%] 224s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[left] PASSED [ 6%] 225s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[left] PASSED [ 6%] 226s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[left] PASSED [ 6%] 226s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-next] PASSED [ 6%] 226s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 6%] 227s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-next] PASSED [ 6%] 227s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 6%] 227s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[right] PASSED [ 6%] 228s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[right] PASSED [ 6%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-previous] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-previous] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-none] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-none] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[right] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[left] PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_has_break PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_regular_holidays_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_holidays_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample_time PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays_time PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample_time PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_open_close_break_start_end PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_has_break PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_next_prev_session PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_offset PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_session PASSED [ 7%] 230s tests/test_cmes_calendar.py::TestCMESCalendar::test_date_to_session PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_open_close PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_in_range PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_has_break PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_window PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_distance PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_trading_index PASSED [ 7%] 232s tests/test_cmes_calendar.py::TestCMESCalendar::test_deprecated PASSED [ 7%] 232s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar PASSED [ 7%] 232s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar_type PASSED [ 7%] 233s tests/test_exchange_calendar.py::TestCalendarRegistration::test_both_places_are_checked PASSED [ 7%] 233s tests/test_exchange_calendar.py::TestCalendarRegistration::test_force_registration PASSED [ 7%] 270s tests/test_exchange_calendar.py::test_default_calendars PASSED [ 7%] 270s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19-0-time_offset0-tz0-2016-07-19 9:31] PASSED [ 7%] 270s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19--1-time_offset1-tz1-2016-07-18 17:01] PASSED [ 7%] 270s tests/test_exchange_calendar.py::test_days_at_time[2004-04-05--1-time_offset2-tz2-2004-04-04 17:01] PASSED [ 7%] 270s tests/test_exchange_calendar.py::test_days_at_time[1990-04-02--1-time_offset3-tz3-1990-04-01 19:01] PASSED [ 7%] 270s tests/test_iepa_calendar.py::TestIEPACalendar::test_base_integrity PASSED [ 7%] 272s tests/test_iepa_calendar.py::TestIEPACalendar::test_calculated_against_csv PASSED [ 7%] 272s tests/test_iepa_calendar.py::TestIEPACalendar::test_start_end PASSED [ 7%] 272s tests/test_iepa_calendar.py::TestIEPACalendar::test_invalid_input PASSED [ 7%] 273s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_min PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_max PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_sanity_check_session_lengths PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_specification PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_daylight_savings PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_opens_closes_break_starts_ends PASSED [ 7%] 274s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[both] PASSED [ 7%] 275s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[both] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[both] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-next] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-next] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-next] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-next] PASSED [ 7%] 276s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[left] PASSED [ 7%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[left] PASSED [ 7%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[left] PASSED [ 7%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[left] PASSED [ 8%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[left] PASSED [ 8%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[left] PASSED [ 8%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[left] PASSED [ 8%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[left] PASSED [ 8%] 277s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[left] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[left] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-next] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-next] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[right] PASSED [ 8%] 279s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[right] PASSED [ 8%] 280s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[right] PASSED [ 8%] 280s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[right] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[right] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-previous] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-next] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 8%] 281s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[neither] PASSED [ 8%] 282s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[neither] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[right] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[left] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[both] PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_has_break PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_regular_holidays_sample PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_sample PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_holidays_sample PASSED [ 8%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens_sample PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample_time PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays_time PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample_time PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_open_close_break_start_end PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_has_break PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_next_prev_session PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_offset PASSED [ 9%] 284s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_session PASSED [ 9%] 285s tests/test_iepa_calendar.py::TestIEPACalendar::test_date_to_session PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_open_close PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_in_range PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_has_break PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_window PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_distance PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_trading_index PASSED [ 9%] 287s tests/test_iepa_calendar.py::TestIEPACalendar::test_deprecated PASSED [ 9%] 287s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_base_integrity PASSED [ 9%] 287s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calculated_against_csv PASSED [ 9%] 287s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_start_end PASSED [ 9%] 287s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_invalid_input PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_min PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_max PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sanity_check_session_lengths PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_specification PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_daylight_savings PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_opens_closes_break_starts_ends PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[left] PASSED [ 9%] 288s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-next] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-next] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-next] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-next] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-previous] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-none] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-none] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-none] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-none] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[right] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[left] PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_has_break PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_regular_holidays_sample PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_sample PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_holidays_sample PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens_sample PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample PASSED [ 9%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample_time PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays_time PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample_time PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_open_close_break_start_end PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_has_break PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_next_prev_session PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_offset PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_session PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_date_to_session PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_open_close PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_in_range PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_has_break PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_window PASSED [ 10%] 289s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_distance PASSED [ 10%] 290s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_trading_index PASSED [ 10%] 290s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_deprecated PASSED [ 10%] 290s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday PASSED [ 10%] 290s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday_minute PASSED [ 10%] 290s tests/test_xams_calendar.py::TestXAMSCalendar::test_base_integrity PASSED [ 10%] 292s tests/test_xams_calendar.py::TestXAMSCalendar::test_calculated_against_csv PASSED [ 10%] 292s tests/test_xams_calendar.py::TestXAMSCalendar::test_start_end PASSED [ 10%] 292s tests/test_xams_calendar.py::TestXAMSCalendar::test_invalid_input PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_min PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_max PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_sanity_check_session_lengths PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_specification PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_daylight_savings PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions PASSED [ 10%] 294s tests/test_xams_calendar.py::TestXAMSCalendar::test_opens_closes_break_starts_ends PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[both] PASSED [ 10%] 295s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[both] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[both] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-next] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-next] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[left] PASSED [ 10%] 297s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[left] PASSED [ 10%] 298s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[left] PASSED [ 10%] 298s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-previous] PASSED [ 10%] 298s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 10%] 298s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-previous] PASSED [ 10%] 298s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-previous] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-next] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[right] PASSED [ 10%] 299s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[right] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[right] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-previous] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-next] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[neither] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[neither] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[neither] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[neither] PASSED [ 10%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[neither] PASSED [ 11%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[neither] PASSED [ 11%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[neither] PASSED [ 11%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[neither] PASSED [ 11%] 301s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[neither] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[right] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[left] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[both] PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_has_break PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_regular_holidays_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_holidays_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample_time PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays_time PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample_time PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_open_close_break_start_end PASSED [ 11%] 303s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_has_break PASSED [ 11%] 304s tests/test_xams_calendar.py::TestXAMSCalendar::test_next_prev_session PASSED [ 11%] 304s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_offset PASSED [ 11%] 304s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_session PASSED [ 11%] 304s tests/test_xams_calendar.py::TestXAMSCalendar::test_date_to_session PASSED [ 11%] 306s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_open_close PASSED [ 11%] 306s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_in_range PASSED [ 11%] 306s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_has_break PASSED [ 11%] 306s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_window PASSED [ 11%] 306s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_distance PASSED [ 11%] 307s tests/test_xams_calendar.py::TestXAMSCalendar::test_trading_index PASSED [ 11%] 307s tests/test_xams_calendar.py::TestXAMSCalendar::test_deprecated PASSED [ 11%] 307s tests/test_xasx_calendar.py::TestXASXCalendar::test_base_integrity PASSED [ 11%] 309s tests/test_xasx_calendar.py::TestXASXCalendar::test_calculated_against_csv PASSED [ 11%] 310s tests/test_xasx_calendar.py::TestXASXCalendar::test_start_end PASSED [ 11%] 310s tests/test_xasx_calendar.py::TestXASXCalendar::test_invalid_input PASSED [ 11%] 311s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_min PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_max PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_sanity_check_session_lengths PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_specification PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_daylight_savings PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_opens_closes_break_starts_ends PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[both] PASSED [ 11%] 312s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[both] PASSED [ 11%] 313s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[both] PASSED [ 11%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[both] PASSED [ 12%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-next] PASSED [ 12%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 12%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-next] PASSED [ 12%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 12%] 314s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[left] PASSED [ 12%] 315s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[left] PASSED [ 12%] 316s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[left] PASSED [ 12%] 316s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-previous] PASSED [ 12%] 316s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 12%] 316s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-previous] PASSED [ 12%] 316s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-previous] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-next] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[right] PASSED [ 12%] 317s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[right] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[right] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-previous] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-next] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[neither] PASSED [ 12%] 319s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[neither] PASSED [ 12%] 320s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[neither] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[right] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[left] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[both] PASSED [ 12%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[both] PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[both] PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[both] PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[both] PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_has_break PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_regular_holidays_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_holidays_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample_time PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays_time PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample_time PASSED [ 13%] 321s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_open_close_break_start_end PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_has_break PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_next_prev_session PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_offset PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_session PASSED [ 13%] 322s tests/test_xasx_calendar.py::TestXASXCalendar::test_date_to_session PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_open_close PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_in_range PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_has_break PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_window PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_distance PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_trading_index PASSED [ 13%] 325s tests/test_xasx_calendar.py::TestXASXCalendar::test_deprecated PASSED [ 13%] 325s tests/test_xbda_calendar.py::TestXBDACalendar::test_base_integrity PASSED [ 13%] 327s tests/test_xbda_calendar.py::TestXBDACalendar::test_calculated_against_csv PASSED [ 13%] 327s tests/test_xbda_calendar.py::TestXBDACalendar::test_start_end PASSED [ 13%] 327s tests/test_xbda_calendar.py::TestXBDACalendar::test_invalid_input PASSED [ 13%] 329s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_min PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_max PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_sanity_check_session_lengths PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_specification PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_daylight_savings PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_opens_closes_break_starts_ends PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[both] PASSED [ 13%] 330s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[both] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[both] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[left] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-next] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[right] PASSED [ 13%] 331s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[right] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[right] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[right] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 13%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-previous] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-next] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[neither] PASSED [ 14%] 332s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[neither] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[right] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[left] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[both] PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_has_break PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_regular_holidays_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_holidays_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample_time PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays_time PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample_time PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_open_close_break_start_end PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_has_break PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_next_prev_session PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_offset PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_session PASSED [ 14%] 333s tests/test_xbda_calendar.py::TestXBDACalendar::test_date_to_session PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_open_close PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_in_range PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_has_break PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_window PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_distance PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_trading_index PASSED [ 14%] 334s tests/test_xbda_calendar.py::TestXBDACalendar::test_deprecated PASSED [ 14%] 334s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_base_integrity PASSED [ 14%] 337s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calculated_against_csv PASSED [ 14%] 337s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_start_end PASSED [ 14%] 337s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_invalid_input PASSED [ 14%] 339s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_min PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_max PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sanity_check_session_lengths PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_specification PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_daylight_savings PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_opens_closes_break_starts_ends PASSED [ 14%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[both] PASSED [ 15%] 340s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[both] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[both] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-next] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-next] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[left] PASSED [ 15%] 342s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[left] PASSED [ 15%] 343s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[left] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[left] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-next] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[right] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[right] PASSED [ 15%] 344s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[right] PASSED [ 15%] 345s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[right] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[right] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-previous] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-next] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 15%] 346s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[neither] PASSED [ 15%] 347s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[neither] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[right] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[right] PASSED [ 15%] 348s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[right] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[left] PASSED [ 15%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[left] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[left] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[both] PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_has_break PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_regular_holidays_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_holidays_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample_time PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays_time PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample_time PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_open_close_break_start_end PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_has_break PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_next_prev_session PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_offset PASSED [ 16%] 349s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_session PASSED [ 16%] 350s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_date_to_session PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_open_close PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_in_range PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_has_break PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_window PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_distance PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_trading_index PASSED [ 16%] 352s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_deprecated PASSED [ 16%] 352s tests/test_xbog_calendar.py::TestXBOGCalendar::test_base_integrity PASSED [ 16%] 355s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calculated_against_csv PASSED [ 16%] 356s tests/test_xbog_calendar.py::TestXBOGCalendar::test_start_end PASSED [ 16%] 356s tests/test_xbog_calendar.py::TestXBOGCalendar::test_invalid_input PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_min PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_max PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sanity_check_session_lengths PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_specification PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_daylight_savings PASSED [ 16%] 358s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_opens_closes_break_starts_ends PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[both] PASSED [ 16%] 359s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[both] PASSED [ 16%] 360s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[both] PASSED [ 16%] 360s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-next] PASSED [ 16%] 360s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-next] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[left] PASSED [ 16%] 361s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[left] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[left] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-next] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 16%] 362s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[right] PASSED [ 16%] 363s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[right] PASSED [ 16%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[right] PASSED [ 16%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-previous] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-next] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 17%] 364s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[neither] PASSED [ 17%] 365s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[neither] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[right] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[left] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[both] PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_has_break PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_regular_holidays_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_holidays_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample_time PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays_time PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample_time PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_open_close_break_start_end PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_has_break PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_next_prev_session PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_offset PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_session PASSED [ 17%] 367s tests/test_xbog_calendar.py::TestXBOGCalendar::test_date_to_session PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_open_close PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_in_range PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_has_break PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_window PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_distance PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_trading_index PASSED [ 17%] 370s tests/test_xbog_calendar.py::TestXBOGCalendar::test_deprecated PASSED [ 17%] 370s tests/test_xbom_calendar.py::TestXBOMCalendar::test_base_integrity PASSED [ 17%] 378s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv PASSED [ 17%] 378s tests/test_xbom_calendar.py::TestXBOMCalendar::test_start_end PASSED [ 17%] 378s tests/test_xbom_calendar.py::TestXBOMCalendar::test_invalid_input PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_min PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_max PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sanity_check_session_lengths PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_specification PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_daylight_savings PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_opens_closes_break_starts_ends PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[both] PASSED [ 18%] 380s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[both] PASSED [ 18%] 381s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[both] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[both] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-next] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-next] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[left] PASSED [ 18%] 382s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[left] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[left] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-previous] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-previous] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 18%] 383s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-previous] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-next] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[right] PASSED [ 18%] 384s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[right] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[right] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-previous] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-next] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[neither] PASSED [ 18%] 385s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[neither] PASSED [ 18%] 386s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[neither] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[right] PASSED [ 18%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[right] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[left] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[both] PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_has_break PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_regular_holidays_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_holidays_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample_time PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays_time PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample_time PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_open_close_break_start_end PASSED [ 19%] 387s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_has_break PASSED [ 19%] 388s tests/test_xbom_calendar.py::TestXBOMCalendar::test_next_prev_session PASSED [ 19%] 388s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_offset PASSED [ 19%] 388s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_session PASSED [ 19%] 388s tests/test_xbom_calendar.py::TestXBOMCalendar::test_date_to_session PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_open_close PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_in_range PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_has_break PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_window PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_distance PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_trading_index PASSED [ 19%] 390s tests/test_xbom_calendar.py::TestXBOMCalendar::test_deprecated PASSED [ 19%] 390s tests/test_xbru_calendar.py::TestXBRUCalendar::test_base_integrity PASSED [ 19%] 392s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calculated_against_csv PASSED [ 19%] 392s tests/test_xbru_calendar.py::TestXBRUCalendar::test_start_end PASSED [ 19%] 393s tests/test_xbru_calendar.py::TestXBRUCalendar::test_invalid_input PASSED [ 19%] 394s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_min PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_max PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sanity_check_session_lengths PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_specification PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_daylight_savings PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_opens_closes_break_starts_ends PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[both] PASSED [ 19%] 395s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[both] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[both] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-next] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-next] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[left] PASSED [ 19%] 397s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[left] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[left] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-next] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[right] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[right] PASSED [ 19%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[right] PASSED [ 20%] 399s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[right] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[right] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-previous] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-next] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[neither] PASSED [ 20%] 401s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[neither] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[right] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[left] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[both] PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_has_break PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_regular_holidays_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_holidays_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample_time PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays_time PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample_time PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_open_close_break_start_end PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_has_break PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_next_prev_session PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_offset PASSED [ 20%] 403s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_session PASSED [ 20%] 404s tests/test_xbru_calendar.py::TestXBRUCalendar::test_date_to_session PASSED [ 20%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_open_close PASSED [ 20%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_in_range PASSED [ 20%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_has_break PASSED [ 21%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_window PASSED [ 21%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_distance PASSED [ 21%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_trading_index PASSED [ 21%] 406s tests/test_xbru_calendar.py::TestXBRUCalendar::test_deprecated PASSED [ 21%] 406s tests/test_xbse_calendar.py::TestXBSECalendar::test_base_integrity PASSED [ 21%] 409s tests/test_xbse_calendar.py::TestXBSECalendar::test_calculated_against_csv PASSED [ 21%] 409s tests/test_xbse_calendar.py::TestXBSECalendar::test_start_end PASSED [ 21%] 409s tests/test_xbse_calendar.py::TestXBSECalendar::test_invalid_input PASSED [ 21%] 411s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_min PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_max PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_sanity_check_session_lengths PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_specification PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_daylight_savings PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_opens_closes_break_starts_ends PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[both] PASSED [ 21%] 412s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[both] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[both] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-next] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-next] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[left] PASSED [ 21%] 414s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[left] PASSED [ 21%] 415s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[left] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[left] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-next] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 21%] 416s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[right] PASSED [ 21%] 417s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[right] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[right] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-previous] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-next] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 21%] 418s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[neither] PASSED [ 21%] 419s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[neither] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[right] PASSED [ 21%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[right] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[left] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[both] PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_has_break PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_regular_holidays_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_holidays_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample_time PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays_time PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample_time PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_open_close_break_start_end PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_has_break PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_next_prev_session PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_offset PASSED [ 22%] 421s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_session PASSED [ 22%] 422s tests/test_xbse_calendar.py::TestXBSECalendar::test_date_to_session PASSED [ 22%] 424s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_open_close PASSED [ 22%] 424s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_in_range PASSED [ 22%] 424s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_has_break PASSED [ 22%] 424s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_window PASSED [ 22%] 424s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_distance PASSED [ 22%] 425s tests/test_xbse_calendar.py::TestXBSECalendar::test_trading_index PASSED [ 22%] 425s tests/test_xbse_calendar.py::TestXBSECalendar::test_deprecated PASSED [ 22%] 425s tests/test_xbud_calendar.py::TestXBUDCalendar::test_base_integrity PASSED [ 22%] 427s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calculated_against_csv PASSED [ 22%] 428s tests/test_xbud_calendar.py::TestXBUDCalendar::test_start_end PASSED [ 22%] 428s tests/test_xbud_calendar.py::TestXBUDCalendar::test_invalid_input PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_min PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_max PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sanity_check_session_lengths PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_specification PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_daylight_savings PASSED [ 22%] 430s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_opens_closes_break_starts_ends PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[both] PASSED [ 22%] 431s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[both] PASSED [ 22%] 432s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[both] PASSED [ 22%] 432s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-next] PASSED [ 22%] 432s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-next] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-next] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-next] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[left] PASSED [ 22%] 433s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[left] PASSED [ 22%] 434s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[left] PASSED [ 22%] 434s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-previous] PASSED [ 22%] 434s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 23%] 434s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-previous] PASSED [ 23%] 434s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-previous] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-next] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-next] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[right] PASSED [ 23%] 435s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[right] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[right] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-none] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-none] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-none] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-none] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-none] PASSED [ 23%] 436s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-none] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-none] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-previous] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-next] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[neither] PASSED [ 23%] 437s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[neither] PASSED [ 23%] 438s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[neither] PASSED [ 23%] 438s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[neither] PASSED [ 23%] 438s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[neither] PASSED [ 23%] 438s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[neither] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[right] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[left] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[both] PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_has_break PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_regular_holidays_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_holidays_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample_time PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays_time PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample_time PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes PASSED [ 23%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_open_close_break_start_end PASSED [ 24%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_has_break PASSED [ 24%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_next_prev_session PASSED [ 24%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_offset PASSED [ 24%] 439s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_session PASSED [ 24%] 440s tests/test_xbud_calendar.py::TestXBUDCalendar::test_date_to_session PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_open_close PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_in_range PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_has_break PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_window PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_distance PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_trading_index PASSED [ 24%] 442s tests/test_xbud_calendar.py::TestXBUDCalendar::test_deprecated PASSED [ 24%] 442s tests/test_xbue_calendar.py::TestXBUECalendar::test_base_integrity PASSED [ 24%] 445s tests/test_xbue_calendar.py::TestXBUECalendar::test_calculated_against_csv PASSED [ 24%] 445s tests/test_xbue_calendar.py::TestXBUECalendar::test_start_end PASSED [ 24%] 446s tests/test_xbue_calendar.py::TestXBUECalendar::test_invalid_input PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_min PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_max PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_sanity_check_session_lengths PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_specification PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_daylight_savings PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_opens_closes_break_starts_ends PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[both] PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[both] PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[both] PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[both] PASSED [ 24%] 448s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[both] PASSED [ 24%] 449s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[both] PASSED [ 24%] 449s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[both] PASSED [ 24%] 449s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[both] PASSED [ 24%] 449s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[both] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[both] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-next] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-next] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-next] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-next] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[left] PASSED [ 24%] 450s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[left] PASSED [ 24%] 451s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[left] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[left] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-next] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-next] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[right] PASSED [ 24%] 452s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[right] PASSED [ 24%] 453s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[right] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[right] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-previous] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-next] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[neither] PASSED [ 24%] 454s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[neither] PASSED [ 24%] 455s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[neither] PASSED [ 24%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[neither] PASSED [ 24%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[neither] PASSED [ 24%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[neither] PASSED [ 24%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[neither] PASSED [ 24%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[neither] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[right] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[left] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[both] PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_has_break PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_regular_holidays_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_holidays_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample_time PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays_time PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample_time PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_open_close_break_start_end PASSED [ 25%] 456s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_has_break PASSED [ 25%] 457s tests/test_xbue_calendar.py::TestXBUECalendar::test_next_prev_session PASSED [ 25%] 457s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_offset PASSED [ 25%] 457s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_session PASSED [ 25%] 457s tests/test_xbue_calendar.py::TestXBUECalendar::test_date_to_session PASSED [ 25%] 459s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_open_close PASSED [ 25%] 459s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_in_range PASSED [ 25%] 459s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_has_break PASSED [ 25%] 459s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_window PASSED [ 25%] 459s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_distance PASSED [ 25%] 460s tests/test_xbue_calendar.py::TestXBUECalendar::test_trading_index PASSED [ 25%] 460s tests/test_xbue_calendar.py::TestXBUECalendar::test_deprecated PASSED [ 25%] 460s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_base_integrity PASSED [ 25%] 462s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calculated_against_csv PASSED [ 25%] 463s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_start_end PASSED [ 25%] 463s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_invalid_input PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_min PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_max PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sanity_check_session_lengths PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_specification PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_daylight_savings PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_opens_closes_break_starts_ends PASSED [ 25%] 465s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[both] PASSED [ 25%] 466s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[both] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[both] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-next] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-next] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 25%] 467s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[left] PASSED [ 25%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[left] PASSED [ 25%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[left] PASSED [ 25%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[left] PASSED [ 26%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[left] PASSED [ 26%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[left] PASSED [ 26%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[left] PASSED [ 26%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[left] PASSED [ 26%] 468s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[left] PASSED [ 26%] 469s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[left] PASSED [ 26%] 469s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-previous] PASSED [ 26%] 469s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 26%] 469s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-previous] PASSED [ 26%] 469s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-previous] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-next] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[right] PASSED [ 26%] 470s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[right] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[right] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-previous] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-next] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[neither] PASSED [ 26%] 472s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[neither] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[right] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[left] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[both] PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_has_break PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_regular_holidays_sample PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_sample PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_holidays_sample PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens_sample PASSED [ 26%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample_time PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays_time PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample_time PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_open_close_break_start_end PASSED [ 27%] 474s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_has_break PASSED [ 27%] 475s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_next_prev_session PASSED [ 27%] 475s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_offset PASSED [ 27%] 475s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_session PASSED [ 27%] 475s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_date_to_session PASSED [ 27%] 477s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_open_close PASSED [ 27%] 477s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_in_range PASSED [ 27%] 477s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_has_break PASSED [ 27%] 477s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_window PASSED [ 27%] 477s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_distance PASSED [ 27%] 478s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_trading_index PASSED [ 27%] 478s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_deprecated PASSED [ 27%] 478s tests/test_xcse_calendar.py::TestXCSECalendar::test_base_integrity PASSED [ 27%] 481s tests/test_xcse_calendar.py::TestXCSECalendar::test_calculated_against_csv PASSED [ 27%] 481s tests/test_xcse_calendar.py::TestXCSECalendar::test_start_end PASSED [ 27%] 481s tests/test_xcse_calendar.py::TestXCSECalendar::test_invalid_input PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_min PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_max PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_sanity_check_session_lengths PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_specification PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_daylight_savings PASSED [ 27%] 483s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_opens_closes_break_starts_ends PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[both] PASSED [ 27%] 484s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[both] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[both] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-next] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-next] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[left] PASSED [ 27%] 486s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[left] PASSED [ 27%] 487s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[left] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[left] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-next] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 27%] 488s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[right] PASSED [ 27%] 489s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[right] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[right] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-none] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-none] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-none] PASSED [ 27%] 490s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-none] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-previous] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-next] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[neither] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[neither] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[neither] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[neither] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[neither] PASSED [ 27%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[neither] PASSED [ 28%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[neither] PASSED [ 28%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[neither] PASSED [ 28%] 491s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[neither] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[right] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[left] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[both] PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_has_break PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_regular_holidays_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_holidays_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample_time PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays_time PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample_time PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_open_close_break_start_end PASSED [ 28%] 493s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_has_break PASSED [ 28%] 494s tests/test_xcse_calendar.py::TestXCSECalendar::test_next_prev_session PASSED [ 28%] 494s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_offset PASSED [ 28%] 494s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_session PASSED [ 28%] 494s tests/test_xcse_calendar.py::TestXCSECalendar::test_date_to_session PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_open_close PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_in_range PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_has_break PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_window PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_distance PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_trading_index PASSED [ 28%] 497s tests/test_xcse_calendar.py::TestXCSECalendar::test_deprecated PASSED [ 28%] 497s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_base_integrity PASSED [ 28%] 499s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calculated_against_csv PASSED [ 28%] 499s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_start_end PASSED [ 28%] 499s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_invalid_input PASSED [ 28%] 501s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_min PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_max PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sanity_check_session_lengths PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_specification PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_daylight_savings PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[both] PASSED [ 28%] 502s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[both] PASSED [ 28%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[both] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-next] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-next] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[left] PASSED [ 29%] 503s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[left] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[left] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-next] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[right] PASSED [ 29%] 504s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[right] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[right] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 29%] 505s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[both] PASSED [ 29%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[both] PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[both] PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_has_break PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_regular_holidays_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_holidays_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample_time PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays_time PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample_time PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_open_close_break_start_end PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_has_break PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_next_prev_session PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_offset PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_session PASSED [ 30%] 506s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_date_to_session PASSED [ 30%] 507s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_open_close PASSED [ 30%] 507s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_in_range PASSED [ 30%] 507s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_has_break PASSED [ 30%] 507s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_window PASSED [ 30%] 507s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_distance PASSED [ 30%] 508s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_trading_index PASSED [ 30%] 508s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_deprecated PASSED [ 30%] 508s tests/test_xdub_calendar.py::TestXDUBCalendar::test_base_integrity PASSED [ 30%] 510s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calculated_against_csv PASSED [ 30%] 510s tests/test_xdub_calendar.py::TestXDUBCalendar::test_start_end PASSED [ 30%] 510s tests/test_xdub_calendar.py::TestXDUBCalendar::test_invalid_input PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_min PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_max PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sanity_check_session_lengths PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_specification PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_daylight_savings PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions PASSED [ 30%] 512s tests/test_xdub_calendar.py::TestXDUBCalendar::test_opens_closes_break_starts_ends PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[both] PASSED [ 30%] 513s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[both] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[both] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-next] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-next] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-next] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-next] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[left] PASSED [ 30%] 515s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[left] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[left] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-next] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-next] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[right] PASSED [ 30%] 517s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[right] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[right] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-previous] PASSED [ 30%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-next] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[neither] PASSED [ 31%] 519s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[neither] PASSED [ 31%] 520s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[neither] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[right] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[left] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[both] PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_has_break PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_regular_holidays_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_holidays_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample_time PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays_time PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample_time PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_open_close_break_start_end PASSED [ 31%] 521s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_has_break PASSED [ 31%] 522s tests/test_xdub_calendar.py::TestXDUBCalendar::test_next_prev_session PASSED [ 31%] 522s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_offset PASSED [ 31%] 522s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_session PASSED [ 31%] 522s tests/test_xdub_calendar.py::TestXDUBCalendar::test_date_to_session PASSED [ 31%] 524s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_open_close PASSED [ 31%] 524s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_in_range PASSED [ 31%] 524s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_has_break PASSED [ 31%] 524s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_window PASSED [ 31%] 524s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_distance PASSED [ 31%] 525s tests/test_xdub_calendar.py::TestXDUBCalendar::test_trading_index PASSED [ 31%] 525s tests/test_xdub_calendar.py::TestXDUBCalendar::test_deprecated PASSED [ 31%] 525s tests/test_xdus_calendar.py::TestXDUSCalendar::test_base_integrity PASSED [ 31%] 527s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calculated_against_csv PASSED [ 31%] 527s tests/test_xdus_calendar.py::TestXDUSCalendar::test_start_end PASSED [ 31%] 527s tests/test_xdus_calendar.py::TestXDUSCalendar::test_invalid_input PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_min PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_max PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sanity_check_session_lengths PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_specification PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_daylight_savings PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_opens_closes_break_starts_ends PASSED [ 31%] 529s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[both] PASSED [ 31%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[both] PASSED [ 32%] 530s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[both] PASSED [ 32%] 531s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[both] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[both] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-next] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-next] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 32%] 532s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[left] PASSED [ 32%] 533s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[left] PASSED [ 32%] 534s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[left] PASSED [ 32%] 534s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-previous] PASSED [ 32%] 534s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 32%] 534s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-previous] PASSED [ 32%] 534s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-previous] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-next] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[right] PASSED [ 32%] 535s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[right] PASSED [ 32%] 536s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[right] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[right] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-previous] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-next] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 32%] 537s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[neither] PASSED [ 32%] 538s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[neither] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[right] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[left] PASSED [ 32%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[left] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[left] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[both] PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_has_break PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_regular_holidays_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_holidays_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample_time PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays_time PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample_time PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_open_close_break_start_end PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_has_break PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_next_prev_session PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_offset PASSED [ 33%] 540s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_session PASSED [ 33%] 541s tests/test_xdus_calendar.py::TestXDUSCalendar::test_date_to_session PASSED [ 33%] 543s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_open_close PASSED [ 33%] 543s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_in_range PASSED [ 33%] 543s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_has_break PASSED [ 33%] 543s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_window PASSED [ 33%] 543s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_distance PASSED [ 33%] 544s tests/test_xdus_calendar.py::TestXDUSCalendar::test_trading_index PASSED [ 33%] 544s tests/test_xdus_calendar.py::TestXDUSCalendar::test_deprecated PASSED [ 33%] 544s tests/test_xeee_calendar.py::TestXEEECalendar::test_base_integrity PASSED [ 33%] 546s tests/test_xeee_calendar.py::TestXEEECalendar::test_calculated_against_csv PASSED [ 33%] 546s tests/test_xeee_calendar.py::TestXEEECalendar::test_start_end PASSED [ 33%] 546s tests/test_xeee_calendar.py::TestXEEECalendar::test_invalid_input PASSED [ 33%] 548s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_min PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_max PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_sanity_check_session_lengths PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_specification PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_daylight_savings PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_opens_closes_break_starts_ends PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[both] PASSED [ 33%] 549s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[both] PASSED [ 33%] 550s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[both] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[both] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-next] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-next] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-next] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-next] PASSED [ 33%] 551s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[left] PASSED [ 33%] 552s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[left] PASSED [ 33%] 553s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[left] PASSED [ 33%] 553s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-previous] PASSED [ 33%] 553s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 33%] 553s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-previous] PASSED [ 33%] 553s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-previous] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-next] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-next] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[right] PASSED [ 33%] 554s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[right] PASSED [ 33%] 555s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[right] PASSED [ 33%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[right] PASSED [ 33%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-previous] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-next] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 34%] 556s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[neither] PASSED [ 34%] 557s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[neither] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[right] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[left] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[both] PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_has_break PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_regular_holidays_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_holidays_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample_time PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays_time PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample_time PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_open_close_break_start_end PASSED [ 34%] 559s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_has_break PASSED [ 34%] 560s tests/test_xeee_calendar.py::TestXEEECalendar::test_next_prev_session PASSED [ 34%] 560s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_offset PASSED [ 34%] 560s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_session PASSED [ 34%] 560s tests/test_xeee_calendar.py::TestXEEECalendar::test_date_to_session PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_open_close PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_in_range PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_has_break PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_window PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_distance PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_trading_index PASSED [ 34%] 563s tests/test_xeee_calendar.py::TestXEEECalendar::test_deprecated PASSED [ 34%] 563s tests/test_xetr_calendar.py::TestXETRCalendar::test_base_integrity PASSED [ 34%] 565s tests/test_xetr_calendar.py::TestXETRCalendar::test_calculated_against_csv PASSED [ 34%] 565s tests/test_xetr_calendar.py::TestXETRCalendar::test_start_end PASSED [ 34%] 566s tests/test_xetr_calendar.py::TestXETRCalendar::test_invalid_input PASSED [ 34%] 567s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_min PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_max PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_sanity_check_session_lengths PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_specification PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_daylight_savings PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_opens_closes_break_starts_ends PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[both] PASSED [ 35%] 568s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[both] PASSED [ 35%] 569s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[both] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[both] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-next] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-next] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-next] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-next] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[left] PASSED [ 35%] 570s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[left] PASSED [ 35%] 571s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[left] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[left] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-next] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-next] PASSED [ 35%] 572s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[right] PASSED [ 35%] 573s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[right] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[right] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[right] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-none] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-none] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-none] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-none] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-none] PASSED [ 35%] 574s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-none] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-none] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-previous] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-next] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[neither] PASSED [ 35%] 575s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[neither] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[right] PASSED [ 35%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[left] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[both] PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_has_break PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_regular_holidays_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_holidays_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample_time PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays_time PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample_time PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_open_close_break_start_end PASSED [ 36%] 577s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_has_break PASSED [ 36%] 578s tests/test_xetr_calendar.py::TestXETRCalendar::test_next_prev_session PASSED [ 36%] 578s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_offset PASSED [ 36%] 578s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_session PASSED [ 36%] 578s tests/test_xetr_calendar.py::TestXETRCalendar::test_date_to_session PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_open_close PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_in_range PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_has_break PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_window PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_distance PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_trading_index PASSED [ 36%] 581s tests/test_xetr_calendar.py::TestXETRCalendar::test_deprecated PASSED [ 36%] 581s tests/test_xfra_calendar.py::TestXFRACalendar::test_base_integrity PASSED [ 36%] 584s tests/test_xfra_calendar.py::TestXFRACalendar::test_calculated_against_csv PASSED [ 36%] 584s tests/test_xfra_calendar.py::TestXFRACalendar::test_start_end PASSED [ 36%] 584s tests/test_xfra_calendar.py::TestXFRACalendar::test_invalid_input PASSED [ 36%] 586s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_min PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_max PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_sanity_check_session_lengths PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_specification PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_daylight_savings PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_opens_closes_break_starts_ends PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[both] PASSED [ 36%] 587s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[both] PASSED [ 36%] 588s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[both] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[both] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-next] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-next] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 36%] 589s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[left] PASSED [ 36%] 590s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[left] PASSED [ 36%] 591s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[left] PASSED [ 36%] 591s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-previous] PASSED [ 36%] 591s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 36%] 591s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-previous] PASSED [ 36%] 591s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-previous] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-next] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[right] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[right] PASSED [ 36%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[right] PASSED [ 37%] 592s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[right] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[right] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-previous] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-next] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 37%] 594s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[neither] PASSED [ 37%] 595s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[neither] PASSED [ 37%] 596s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[neither] PASSED [ 37%] 596s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[neither] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[right] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[left] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[both] PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_has_break PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_regular_holidays_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_holidays_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample_time PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays_time PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample_time PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_open_close_break_start_end PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_has_break PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_next_prev_session PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_offset PASSED [ 37%] 597s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_session PASSED [ 37%] 598s tests/test_xfra_calendar.py::TestXFRACalendar::test_date_to_session PASSED [ 37%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_open_close PASSED [ 37%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_in_range PASSED [ 37%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_has_break PASSED [ 38%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_window PASSED [ 38%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_distance PASSED [ 38%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_trading_index PASSED [ 38%] 601s tests/test_xfra_calendar.py::TestXFRACalendar::test_deprecated PASSED [ 38%] 601s tests/test_xham_calendar.py::TestXHAMCalendar::test_base_integrity PASSED [ 38%] 604s tests/test_xham_calendar.py::TestXHAMCalendar::test_calculated_against_csv PASSED [ 38%] 604s tests/test_xham_calendar.py::TestXHAMCalendar::test_start_end PASSED [ 38%] 604s tests/test_xham_calendar.py::TestXHAMCalendar::test_invalid_input PASSED [ 38%] 606s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_min PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_max PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_sanity_check_session_lengths PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_specification PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_daylight_savings PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_opens_closes_break_starts_ends PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[both] PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[both] PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[both] PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[both] PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[both] PASSED [ 38%] 607s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[both] PASSED [ 38%] 608s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[both] PASSED [ 38%] 608s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[both] PASSED [ 38%] 608s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[both] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[both] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-next] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-next] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 38%] 609s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[left] PASSED [ 38%] 610s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[left] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[left] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-next] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 38%] 612s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[right] PASSED [ 38%] 613s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[right] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[right] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-none] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-none] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 38%] 614s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-none] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-none] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-previous] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-next] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[neither] PASSED [ 38%] 615s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[neither] PASSED [ 38%] 616s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[neither] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[right] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[right] PASSED [ 38%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[right] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[left] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[both] PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_has_break PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_regular_holidays_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_holidays_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample_time PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays_time PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample PASSED [ 39%] 617s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample_time PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_open_close_break_start_end PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_has_break PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_next_prev_session PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_offset PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_session PASSED [ 39%] 618s tests/test_xham_calendar.py::TestXHAMCalendar::test_date_to_session PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_open_close PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_in_range PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_has_break PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_window PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_distance PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_trading_index PASSED [ 39%] 621s tests/test_xham_calendar.py::TestXHAMCalendar::test_deprecated PASSED [ 39%] 621s tests/test_xhel_calendar.py::TestXHELCalendar::test_base_integrity PASSED [ 39%] 623s tests/test_xhel_calendar.py::TestXHELCalendar::test_calculated_against_csv PASSED [ 39%] 624s tests/test_xhel_calendar.py::TestXHELCalendar::test_start_end PASSED [ 39%] 624s tests/test_xhel_calendar.py::TestXHELCalendar::test_invalid_input PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_min PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_max PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_sanity_check_session_lengths PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_specification PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_daylight_savings PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_opens_closes_break_starts_ends PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[both] PASSED [ 39%] 626s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[both] PASSED [ 39%] 627s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[both] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[both] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-next] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-next] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-next] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-next] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[left] PASSED [ 39%] 628s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[left] PASSED [ 39%] 629s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[left] PASSED [ 39%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[left] PASSED [ 39%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-previous] PASSED [ 39%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 39%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-previous] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-previous] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-next] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-next] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[right] PASSED [ 40%] 630s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[right] PASSED [ 40%] 631s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[right] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[right] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-previous] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-next] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[neither] PASSED [ 40%] 632s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[neither] PASSED [ 40%] 633s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[neither] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[right] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[left] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[both] PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_has_break PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_regular_holidays_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_holidays_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample_time PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays_time PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample_time PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes PASSED [ 40%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_open_close_break_start_end PASSED [ 41%] 634s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_has_break PASSED [ 41%] 635s tests/test_xhel_calendar.py::TestXHELCalendar::test_next_prev_session PASSED [ 41%] 635s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_offset PASSED [ 41%] 635s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_session PASSED [ 41%] 635s tests/test_xhel_calendar.py::TestXHELCalendar::test_date_to_session PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_open_close PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_in_range PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_has_break PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_window PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_distance PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_trading_index PASSED [ 41%] 637s tests/test_xhel_calendar.py::TestXHELCalendar::test_deprecated PASSED [ 41%] 637s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_base_integrity PASSED [ 41%] 641s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calculated_against_csv PASSED [ 41%] 641s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_start_end PASSED [ 41%] 641s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_invalid_input PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_min PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_max PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sanity_check_session_lengths PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_specification PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_daylight_savings PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_opens_closes_break_starts_ends PASSED [ 41%] 643s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[both] PASSED [ 41%] 644s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[both] PASSED [ 41%] 645s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[both] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[both] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-next] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-next] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[left] PASSED [ 41%] 648s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[left] PASSED [ 41%] 649s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[left] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[left] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-next] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 41%] 652s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[right] PASSED [ 41%] 653s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[right] PASSED [ 41%] 654s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[right] PASSED [ 41%] 656s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[right] PASSED [ 41%] 656s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-none] PASSED [ 41%] 656s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 41%] 656s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-none] PASSED [ 41%] 656s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-none] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-none] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-previous] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-next] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[neither] PASSED [ 41%] 657s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[neither] PASSED [ 41%] 658s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[neither] PASSED [ 41%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[neither] PASSED [ 41%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[neither] PASSED [ 41%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[neither] PASSED [ 41%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[neither] PASSED [ 41%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[neither] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[right] PASSED [ 42%] 661s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[right] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[right] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[right] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[right] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[left] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[both] PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_has_break PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_regular_holidays_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_holidays_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample_time PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays_time PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample_time PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_open_close_break_start_end PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_has_break PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_next_prev_session PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_offset PASSED [ 42%] 662s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_session PASSED [ 42%] 663s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_date_to_session PASSED [ 42%] 665s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_open_close PASSED [ 42%] 665s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_in_range PASSED [ 42%] 665s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_has_break PASSED [ 42%] 665s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_window PASSED [ 42%] 665s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_distance PASSED [ 42%] 666s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_trading_index PASSED [ 42%] 666s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_deprecated PASSED [ 42%] 666s tests/test_xice_calendar.py::TestXICECalendar::test_base_integrity PASSED [ 42%] 667s tests/test_xice_calendar.py::TestXICECalendar::test_calculated_against_csv PASSED [ 42%] 668s tests/test_xice_calendar.py::TestXICECalendar::test_start_end PASSED [ 42%] 668s tests/test_xice_calendar.py::TestXICECalendar::test_invalid_input PASSED [ 42%] 669s tests/test_xice_calendar.py::TestXICECalendar::test_bound_min PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_bound_max PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_sanity_check_session_lengths PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_specification PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_daylight_savings PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_sessions PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_opens_closes_break_starts_ends PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[both] PASSED [ 42%] 670s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[both] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[both] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-next] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-next] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-next] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-next] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[left] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[left] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[left] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[left] PASSED [ 42%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[left] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-next] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-next] PASSED [ 43%] 671s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[right] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-previous] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-next] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[neither] PASSED [ 43%] 672s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[neither] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[right] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[left] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[both] PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_has_break PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_regular_holidays_sample PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_sample PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_non_holidays_sample PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens_sample PASSED [ 43%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample_time PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays_time PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample_time PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_session_open_close_break_start_end PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_session_has_break PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_next_prev_session PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_session_offset PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_is_session PASSED [ 44%] 673s tests/test_xice_calendar.py::TestXICECalendar::test_date_to_session PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_open_close PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_in_range PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_has_break PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_window PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_distance PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_trading_index PASSED [ 44%] 674s tests/test_xice_calendar.py::TestXICECalendar::test_deprecated PASSED [ 44%] 674s tests/test_xidx_calendar.py::TestXIDXCalendar::test_base_integrity PASSED [ 44%] 677s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calculated_against_csv PASSED [ 44%] 677s tests/test_xidx_calendar.py::TestXIDXCalendar::test_start_end PASSED [ 44%] 677s tests/test_xidx_calendar.py::TestXIDXCalendar::test_invalid_input PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_min PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_max PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sanity_check_session_lengths PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_specification PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_daylight_savings PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_opens_closes_break_starts_ends PASSED [ 44%] 679s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[both] PASSED [ 44%] 680s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[both] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[both] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-next] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-next] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 44%] 681s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[left] PASSED [ 44%] 682s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[left] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[left] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-next] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 44%] 683s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[right] PASSED [ 44%] 684s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[right] PASSED [ 44%] 685s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[right] PASSED [ 44%] 685s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-none] PASSED [ 44%] 685s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-previous] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-next] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[neither] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[neither] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[neither] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[neither] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[neither] PASSED [ 44%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[neither] PASSED [ 45%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[neither] PASSED [ 45%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[neither] PASSED [ 45%] 686s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[neither] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[right] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[left] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[both] PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_has_break PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_regular_holidays_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_holidays_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample_time PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays_time PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample_time PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_open_close_break_start_end PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_has_break PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_next_prev_session PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_offset PASSED [ 45%] 688s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_session PASSED [ 45%] 689s tests/test_xidx_calendar.py::TestXIDXCalendar::test_date_to_session PASSED [ 45%] 691s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_open_close PASSED [ 45%] 691s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_in_range PASSED [ 45%] 691s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_has_break PASSED [ 45%] 691s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_window PASSED [ 45%] 691s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_distance PASSED [ 45%] 692s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_index PASSED [ 45%] 692s tests/test_xidx_calendar.py::TestXIDXCalendar::test_deprecated PASSED [ 45%] 692s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_days PASSED [ 45%] 692s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 45%] 692s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2018-holidays1] PASSED [ 45%] 692s tests/test_xist_calendar.py::TestXISTCalendar::test_base_integrity PASSED [ 45%] 694s tests/test_xist_calendar.py::TestXISTCalendar::test_calculated_against_csv PASSED [ 45%] 694s tests/test_xist_calendar.py::TestXISTCalendar::test_start_end PASSED [ 45%] 694s tests/test_xist_calendar.py::TestXISTCalendar::test_invalid_input PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_min PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_max PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_sanity_check_session_lengths PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_specification PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_daylight_savings PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_opens_closes_break_starts_ends PASSED [ 45%] 696s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[both] PASSED [ 45%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[both] PASSED [ 46%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[both] PASSED [ 46%] 697s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[both] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[both] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-next] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-next] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-next] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-next] PASSED [ 46%] 698s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[left] PASSED [ 46%] 699s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[left] PASSED [ 46%] 700s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[left] PASSED [ 46%] 700s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-previous] PASSED [ 46%] 700s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 46%] 700s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-previous] PASSED [ 46%] 700s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-previous] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-next] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-next] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[right] PASSED [ 46%] 701s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[right] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[right] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-previous] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-next] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[neither] PASSED [ 46%] 703s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[neither] PASSED [ 46%] 704s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[neither] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[right] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[left] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[both] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[both] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[both] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[both] PASSED [ 46%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[both] PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_has_break PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_regular_holidays_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_non_holidays_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample_time PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays_time PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample_time PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_session_open_close_break_start_end PASSED [ 47%] 705s tests/test_xist_calendar.py::TestXISTCalendar::test_session_has_break PASSED [ 47%] 706s tests/test_xist_calendar.py::TestXISTCalendar::test_next_prev_session PASSED [ 47%] 706s tests/test_xist_calendar.py::TestXISTCalendar::test_session_offset PASSED [ 47%] 706s tests/test_xist_calendar.py::TestXISTCalendar::test_is_session PASSED [ 47%] 706s tests/test_xist_calendar.py::TestXISTCalendar::test_date_to_session PASSED [ 47%] 708s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_open_close PASSED [ 47%] 708s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_in_range PASSED [ 47%] 708s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_has_break PASSED [ 47%] 708s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_window PASSED [ 47%] 708s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_distance PASSED [ 47%] 709s tests/test_xist_calendar.py::TestXISTCalendar::test_trading_index PASSED [ 47%] 709s tests/test_xist_calendar.py::TestXISTCalendar::test_deprecated PASSED [ 47%] 709s tests/test_xjse_calendar.py::TestXJSECalendar::test_base_integrity PASSED [ 47%] 711s tests/test_xjse_calendar.py::TestXJSECalendar::test_calculated_against_csv PASSED [ 47%] 712s tests/test_xjse_calendar.py::TestXJSECalendar::test_start_end PASSED [ 47%] 712s tests/test_xjse_calendar.py::TestXJSECalendar::test_invalid_input PASSED [ 47%] 713s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_min PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_max PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_sanity_check_session_lengths PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_specification PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_daylight_savings PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_opens_closes_break_starts_ends PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[both] PASSED [ 47%] 714s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[both] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[both] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-next] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-next] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[left] PASSED [ 47%] 716s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[left] PASSED [ 47%] 717s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[left] PASSED [ 47%] 717s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-previous] PASSED [ 47%] 717s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 47%] 717s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-previous] PASSED [ 47%] 717s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-previous] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-next] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[right] PASSED [ 47%] 718s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[right] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[right] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 47%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-none] PASSED [ 48%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 48%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-previous] PASSED [ 48%] 719s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-next] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[neither] PASSED [ 48%] 720s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[neither] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[right] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[left] PASSED [ 48%] 721s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[left] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[left] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[both] PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_has_break PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_regular_holidays_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_holidays_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample_time PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays_time PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample_time PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_open_close_break_start_end PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_has_break PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_next_prev_session PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_offset PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_session PASSED [ 48%] 722s tests/test_xjse_calendar.py::TestXJSECalendar::test_date_to_session PASSED [ 48%] 724s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_open_close PASSED [ 48%] 724s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_in_range PASSED [ 48%] 724s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_has_break PASSED [ 48%] 724s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_window PASSED [ 48%] 724s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_distance PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_trading_index PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_deprecated PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_no_weekend_sessions PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2019-holidays0] PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2018-holidays1] PASSED [ 48%] 725s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2016-holidays2] PASSED [ 48%] 725s tests/test_xkar_calendar.py::TestXKARCalendar::test_base_integrity PASSED [ 48%] 727s tests/test_xkar_calendar.py::TestXKARCalendar::test_calculated_against_csv PASSED [ 48%] 727s tests/test_xkar_calendar.py::TestXKARCalendar::test_start_end PASSED [ 48%] 727s tests/test_xkar_calendar.py::TestXKARCalendar::test_invalid_input PASSED [ 48%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_min PASSED [ 48%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_max PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_sanity_check_session_lengths PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_specification PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_daylight_savings PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_opens_closes_break_starts_ends PASSED [ 49%] 729s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[both] PASSED [ 49%] 730s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[both] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[both] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-next] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-next] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[left] PASSED [ 49%] 732s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[left] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[left] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-next] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[right] PASSED [ 49%] 734s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[right] PASSED [ 49%] 735s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[right] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[right] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-previous] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-next] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 49%] 736s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[neither] PASSED [ 49%] 737s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[neither] PASSED [ 49%] 738s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[neither] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[neither] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[right] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[left] PASSED [ 49%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[left] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[both] PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_has_break PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_regular_holidays_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_holidays_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample_time PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays_time PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample_time PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_open_close_break_start_end PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_has_break PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_next_prev_session PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_offset PASSED [ 50%] 739s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_session PASSED [ 50%] 740s tests/test_xkar_calendar.py::TestXKARCalendar::test_date_to_session PASSED [ 50%] 742s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_open_close PASSED [ 50%] 742s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_in_range PASSED [ 50%] 742s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_has_break PASSED [ 50%] 742s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_window PASSED [ 50%] 742s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_distance PASSED [ 50%] 743s tests/test_xkar_calendar.py::TestXKARCalendar::test_trading_index PASSED [ 50%] 743s tests/test_xkar_calendar.py::TestXKARCalendar::test_deprecated PASSED [ 50%] 743s tests/test_xkar_calendar.py::TestXKARCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 50%] 743s tests/test_xkls_calendar.py::TestXKLSCalendar::test_base_integrity PASSED [ 50%] 745s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calculated_against_csv PASSED [ 50%] 745s tests/test_xkls_calendar.py::TestXKLSCalendar::test_start_end PASSED [ 50%] 746s tests/test_xkls_calendar.py::TestXKLSCalendar::test_invalid_input PASSED [ 50%] 747s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_min PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_max PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sanity_check_session_lengths PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_specification PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_daylight_savings PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_opens_closes_break_starts_ends PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[both] PASSED [ 50%] 748s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[both] PASSED [ 50%] 749s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[both] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[both] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-next] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-next] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[left] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[left] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[left] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[left] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[left] PASSED [ 50%] 750s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[left] PASSED [ 50%] 751s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[left] PASSED [ 50%] 751s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[left] PASSED [ 50%] 751s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[left] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[left] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-next] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 50%] 752s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[right] PASSED [ 50%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[right] PASSED [ 50%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[right] PASSED [ 50%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[right] PASSED [ 51%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[right] PASSED [ 51%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[right] PASSED [ 51%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[right] PASSED [ 51%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[right] PASSED [ 51%] 753s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[right] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[right] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-previous] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-next] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[neither] PASSED [ 51%] 755s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[neither] PASSED [ 51%] 756s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[neither] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[right] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[left] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[both] PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_has_break PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_regular_holidays_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_holidays_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample_time PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays_time PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample_time PASSED [ 51%] 757s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_open_close_break_start_end PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_has_break PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_next_prev_session PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_offset PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_session PASSED [ 51%] 758s tests/test_xkls_calendar.py::TestXKLSCalendar::test_date_to_session PASSED [ 51%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_open_close PASSED [ 51%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_in_range PASSED [ 51%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_has_break PASSED [ 51%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_window PASSED [ 52%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_distance PASSED [ 52%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_trading_index PASSED [ 52%] 761s tests/test_xkls_calendar.py::TestXKLSCalendar::test_deprecated PASSED [ 52%] 761s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_base_integrity PASSED [ 52%] 781s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv PASSED [ 52%] 785s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end PASSED [ 52%] 787s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_invalid_input PASSED [ 52%] 794s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sanity_check_session_lengths PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_specification PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_daylight_savings PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions PASSED [ 52%] 797s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_opens_closes_break_starts_ends PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[both] PASSED [ 52%] 798s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[both] PASSED [ 52%] 799s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[both] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[both] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-next] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-next] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[left] PASSED [ 52%] 802s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[left] PASSED [ 52%] 804s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[left] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[left] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-next] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 52%] 806s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[right] PASSED [ 52%] 807s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[right] PASSED [ 52%] 808s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[right] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[right] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-none] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-none] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-none] PASSED [ 52%] 810s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-none] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-previous] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-next] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[neither] PASSED [ 52%] 811s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[neither] PASSED [ 52%] 812s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[neither] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[right] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[right] PASSED [ 52%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[right] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[left] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[both] PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_has_break PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_regular_holidays_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_holidays_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample_time PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays_time PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample PASSED [ 53%] 815s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample_time PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_open_close_break_start_end PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_has_break PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_next_prev_session PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_offset PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_session PASSED [ 53%] 816s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_date_to_session PASSED [ 53%] 819s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_open_close PASSED [ 53%] 819s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_in_range PASSED [ 53%] 819s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_has_break PASSED [ 53%] 819s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_window PASSED [ 53%] 819s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_distance PASSED [ 53%] 820s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_trading_index PASSED [ 53%] 820s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_deprecated PASSED [ 53%] 820s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens XFAIL [ 53%] 821s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_historical_regular_holidays_fall_into_precomputed_holidays PASSED [ 53%] 822s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_feb_29_2022_in_lunar_calendar PASSED [ 53%] 822s tests/test_xlim_calendar.py::TestXLIMCalendar::test_base_integrity PASSED [ 53%] 825s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calculated_against_csv PASSED [ 53%] 825s tests/test_xlim_calendar.py::TestXLIMCalendar::test_start_end PASSED [ 53%] 825s tests/test_xlim_calendar.py::TestXLIMCalendar::test_invalid_input PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_min PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_max PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sanity_check_session_lengths PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_specification PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_daylight_savings PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions PASSED [ 53%] 827s tests/test_xlim_calendar.py::TestXLIMCalendar::test_opens_closes_break_starts_ends PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[both] PASSED [ 53%] 828s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[both] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[both] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-next] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-next] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[left] PASSED [ 53%] 830s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[left] PASSED [ 53%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[left] PASSED [ 53%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-previous] PASSED [ 53%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-previous] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-previous] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-next] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[right] PASSED [ 54%] 832s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[right] PASSED [ 54%] 833s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[right] PASSED [ 54%] 833s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[right] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[right] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-previous] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-next] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 54%] 834s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[neither] PASSED [ 54%] 835s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[neither] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[right] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[left] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[both] PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_has_break PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_regular_holidays_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_holidays_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample_time PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays_time PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample_time PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens PASSED [ 54%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes PASSED [ 55%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_open_close_break_start_end PASSED [ 55%] 837s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_has_break PASSED [ 55%] 838s tests/test_xlim_calendar.py::TestXLIMCalendar::test_next_prev_session PASSED [ 55%] 838s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_offset PASSED [ 55%] 838s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_session PASSED [ 55%] 838s tests/test_xlim_calendar.py::TestXLIMCalendar::test_date_to_session PASSED [ 55%] 840s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_open_close PASSED [ 55%] 840s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_in_range PASSED [ 55%] 840s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_has_break PASSED [ 55%] 840s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_window PASSED [ 55%] 840s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_distance PASSED [ 55%] 841s tests/test_xlim_calendar.py::TestXLIMCalendar::test_trading_index PASSED [ 55%] 841s tests/test_xlim_calendar.py::TestXLIMCalendar::test_deprecated PASSED [ 55%] 841s tests/test_xlis_calendar.py::TestXLISCalendar::test_base_integrity PASSED [ 55%] 843s tests/test_xlis_calendar.py::TestXLISCalendar::test_calculated_against_csv PASSED [ 55%] 843s tests/test_xlis_calendar.py::TestXLISCalendar::test_start_end PASSED [ 55%] 843s tests/test_xlis_calendar.py::TestXLISCalendar::test_invalid_input PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_min PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_max PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_sanity_check_session_lengths PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_specification PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_daylight_savings PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_opens_closes_break_starts_ends PASSED [ 55%] 845s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[both] PASSED [ 55%] 846s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[both] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[both] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-next] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-next] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 55%] 847s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[left] PASSED [ 55%] 848s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[left] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[left] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-next] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 55%] 849s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[right] PASSED [ 55%] 850s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[right] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[right] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-none] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-none] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-none] PASSED [ 55%] 851s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-none] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-previous] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-next] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[neither] PASSED [ 55%] 852s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[neither] PASSED [ 55%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[neither] PASSED [ 55%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[neither] PASSED [ 55%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[neither] PASSED [ 55%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[neither] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[right] PASSED [ 56%] 853s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[right] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[left] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[both] PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_has_break PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_regular_holidays_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_holidays_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample_time PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays_time PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample_time PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_open_close_break_start_end PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_has_break PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_next_prev_session PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_offset PASSED [ 56%] 854s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_session PASSED [ 56%] 855s tests/test_xlis_calendar.py::TestXLISCalendar::test_date_to_session PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_open_close PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_in_range PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_has_break PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_window PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_distance PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_trading_index PASSED [ 56%] 857s tests/test_xlis_calendar.py::TestXLISCalendar::test_deprecated PASSED [ 56%] 857s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_base_integrity PASSED [ 56%] 858s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calculated_against_csv PASSED [ 56%] 858s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_start_end PASSED [ 56%] 858s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_invalid_input PASSED [ 56%] 860s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_min PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_max PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sanity_check_session_lengths PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_specification PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_daylight_savings PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[both] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-next] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-next] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[left] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[left] PASSED [ 56%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 57%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[left] PASSED [ 57%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[left] PASSED [ 57%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[left] PASSED [ 57%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[left] PASSED [ 57%] 861s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[left] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[left] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[left] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-next] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[right] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[neither] PASSED [ 57%] 862s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_has_break PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_regular_holidays_sample PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_sample PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_holidays_sample PASSED [ 57%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens_sample PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample_time PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays_time PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample_time PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_open_close_break_start_end PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_has_break PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_next_prev_session PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_offset PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_session PASSED [ 58%] 863s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_date_to_session PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_open_close PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_in_range PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_has_break PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_window PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_distance PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_trading_index PASSED [ 58%] 864s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_deprecated PASSED [ 58%] 864s tests/test_xlon_calendar.py::TestXLONCalendar::test_base_integrity PASSED [ 58%] 867s tests/test_xlon_calendar.py::TestXLONCalendar::test_calculated_against_csv PASSED [ 58%] 867s tests/test_xlon_calendar.py::TestXLONCalendar::test_start_end PASSED [ 58%] 867s tests/test_xlon_calendar.py::TestXLONCalendar::test_invalid_input PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_min PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_max PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_sanity_check_session_lengths PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_specification PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_daylight_savings PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_opens_closes_break_starts_ends PASSED [ 58%] 869s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[both] PASSED [ 58%] 870s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[both] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[both] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-next] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-next] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-next] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-next] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[left] PASSED [ 58%] 872s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[left] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[left] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-next] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-next] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[right] PASSED [ 58%] 874s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[right] PASSED [ 58%] 875s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[right] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[right] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-previous] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-next] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 58%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[neither] PASSED [ 58%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[neither] PASSED [ 58%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[neither] PASSED [ 58%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[neither] PASSED [ 58%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[neither] PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[neither] PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[neither] PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[neither] PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[neither] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[neither] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[neither] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[neither] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[neither] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[both] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_has_break PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_regular_holidays_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_holidays_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample_time PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays_time PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample_time PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_open_close_break_start_end PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_has_break PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_next_prev_session PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_offset PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_session PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_date_to_session PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_open_close PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_in_range PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_has_break PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_window PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_distance PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_trading_index PASSED [ 59%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_deprecated PASSED [ 59%] 882s tests/test_xlux_calendar.py::TestXLUXCalendar::test_base_integrity PASSED [ 59%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calculated_against_csv PASSED [ 59%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_start_end PASSED [ 59%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_invalid_input PASSED [ 59%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_min PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_max PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sanity_check_session_lengths PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_specification PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_daylight_savings PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_opens_closes_break_starts_ends PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[both] PASSED [ 59%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[both] PASSED [ 60%] 888s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[both] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-next] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-next] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[left] PASSED [ 60%] 889s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[left] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[left] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-next] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 60%] 890s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[right] PASSED [ 60%] 891s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[right] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[right] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-previous] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-next] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[neither] PASSED [ 60%] 892s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[neither] PASSED [ 60%] 893s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[neither] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[right] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[left] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[both] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[both] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[both] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[both] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[both] PASSED [ 60%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[both] PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[both] PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[both] PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[both] PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[both] PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_has_break PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_regular_holidays_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_holidays_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample_time PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays_time PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample_time PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_open_close_break_start_end PASSED [ 61%] 894s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_has_break PASSED [ 61%] 895s tests/test_xlux_calendar.py::TestXLUXCalendar::test_next_prev_session PASSED [ 61%] 895s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_offset PASSED [ 61%] 895s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_session PASSED [ 61%] 895s tests/test_xlux_calendar.py::TestXLUXCalendar::test_date_to_session PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_open_close PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_in_range PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_has_break PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_window PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_distance PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_trading_index PASSED [ 61%] 897s tests/test_xlux_calendar.py::TestXLUXCalendar::test_deprecated PASSED [ 61%] 897s tests/test_xmad_calendar.py::TestXMADCalendar::test_base_integrity PASSED [ 61%] 900s tests/test_xmad_calendar.py::TestXMADCalendar::test_calculated_against_csv PASSED [ 61%] 900s tests/test_xmad_calendar.py::TestXMADCalendar::test_start_end PASSED [ 61%] 900s tests/test_xmad_calendar.py::TestXMADCalendar::test_invalid_input PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_min PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_max PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_sanity_check_session_lengths PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_specification PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_daylight_savings PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_opens_closes_break_starts_ends PASSED [ 61%] 902s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[both] PASSED [ 61%] 903s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[both] PASSED [ 61%] 904s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[both] PASSED [ 61%] 904s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-next] PASSED [ 61%] 904s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-next] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-next] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-next] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[left] PASSED [ 61%] 905s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[left] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[left] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-next] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-next] PASSED [ 61%] 907s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[right] PASSED [ 61%] 908s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[right] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[right] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-none] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-none] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-none] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-none] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-none] PASSED [ 61%] 909s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-none] PASSED [ 61%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-none] PASSED [ 61%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 61%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-previous] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-next] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[neither] PASSED [ 62%] 910s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[neither] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[right] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[left] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[both] PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_has_break PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_regular_holidays_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_holidays_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample_time PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays_time PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample_time PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_open_close_break_start_end PASSED [ 62%] 912s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_has_break PASSED [ 62%] 913s tests/test_xmad_calendar.py::TestXMADCalendar::test_next_prev_session PASSED [ 62%] 913s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_offset PASSED [ 62%] 913s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_session PASSED [ 62%] 913s tests/test_xmad_calendar.py::TestXMADCalendar::test_date_to_session PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_open_close PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_in_range PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_has_break PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_window PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_distance PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_trading_index PASSED [ 62%] 916s tests/test_xmad_calendar.py::TestXMADCalendar::test_deprecated PASSED [ 62%] 916s tests/test_xmex_calendar.py::TestXMEXCalendar::test_base_integrity PASSED [ 62%] 918s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calculated_against_csv PASSED [ 62%] 919s tests/test_xmex_calendar.py::TestXMEXCalendar::test_start_end PASSED [ 62%] 919s tests/test_xmex_calendar.py::TestXMEXCalendar::test_invalid_input PASSED [ 62%] 920s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_min PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_max PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sanity_check_session_lengths PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_specification PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_daylight_savings PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_opens_closes_break_starts_ends PASSED [ 62%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[both] PASSED [ 63%] 921s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[both] PASSED [ 63%] 922s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[both] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[both] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-next] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-next] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[left] PASSED [ 63%] 923s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[left] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[left] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-next] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[right] PASSED [ 63%] 925s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[right] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[right] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-previous] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-next] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[neither] PASSED [ 63%] 927s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[neither] PASSED [ 63%] 928s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[neither] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[right] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[left] PASSED [ 63%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[left] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[left] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[left] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[both] PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_has_break PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_regular_holidays_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_holidays_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample_time PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays_time PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample_time PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_open_close_break_start_end PASSED [ 64%] 929s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_has_break PASSED [ 64%] 930s tests/test_xmex_calendar.py::TestXMEXCalendar::test_next_prev_session PASSED [ 64%] 930s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_offset PASSED [ 64%] 930s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_session PASSED [ 64%] 930s tests/test_xmex_calendar.py::TestXMEXCalendar::test_date_to_session PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_open_close PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_in_range PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_has_break PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_window PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_distance PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_trading_index PASSED [ 64%] 932s tests/test_xmex_calendar.py::TestXMEXCalendar::test_deprecated PASSED [ 64%] 932s tests/test_xmil_calendar.py::TestXMILCalendar::test_base_integrity PASSED [ 64%] 934s tests/test_xmil_calendar.py::TestXMILCalendar::test_calculated_against_csv PASSED [ 64%] 935s tests/test_xmil_calendar.py::TestXMILCalendar::test_start_end PASSED [ 64%] 935s tests/test_xmil_calendar.py::TestXMILCalendar::test_invalid_input PASSED [ 64%] 936s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_min PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_max PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_sanity_check_session_lengths PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_specification PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_daylight_savings PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_opens_closes_break_starts_ends PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[both] PASSED [ 64%] 937s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[both] PASSED [ 64%] 938s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[both] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[both] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-next] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-next] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-next] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-next] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[left] PASSED [ 64%] 939s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[left] PASSED [ 64%] 940s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[left] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[left] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-next] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-next] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[right] PASSED [ 64%] 941s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[right] PASSED [ 64%] 942s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[right] PASSED [ 64%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[right] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-previous] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-next] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[neither] PASSED [ 65%] 943s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[neither] PASSED [ 65%] 944s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[neither] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[right] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[left] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[both] PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_has_break PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_regular_holidays_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_holidays_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample_time PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays_time PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample_time PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_open_close_break_start_end PASSED [ 65%] 945s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_has_break PASSED [ 65%] 946s tests/test_xmil_calendar.py::TestXMILCalendar::test_next_prev_session PASSED [ 65%] 946s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_offset PASSED [ 65%] 946s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_session PASSED [ 65%] 946s tests/test_xmil_calendar.py::TestXMILCalendar::test_date_to_session PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_open_close PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_in_range PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_has_break PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_window PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_distance PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_trading_index PASSED [ 65%] 949s tests/test_xmil_calendar.py::TestXMILCalendar::test_deprecated PASSED [ 65%] 949s tests/test_xmos_calendar.py::TestXMOSCalendar::test_base_integrity PASSED [ 65%] 965s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv PASSED [ 65%] 968s tests/test_xmos_calendar.py::TestXMOSCalendar::test_start_end PASSED [ 65%] 969s tests/test_xmos_calendar.py::TestXMOSCalendar::test_invalid_input PASSED [ 66%] 979s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_max PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sanity_check_session_lengths PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_specification PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_daylight_savings PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_opens_closes_break_starts_ends PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[both] PASSED [ 66%] 983s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[both] PASSED [ 66%] 984s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[both] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[both] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-next] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-next] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[left] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[left] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[left] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[left] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[left] PASSED [ 66%] 985s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[left] PASSED [ 66%] 986s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[left] PASSED [ 66%] 986s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[left] PASSED [ 66%] 986s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[left] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[left] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-next] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 66%] 987s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[right] PASSED [ 66%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[right] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[right] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-previous] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-next] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[neither] PASSED [ 66%] 990s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[neither] PASSED [ 66%] 991s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[neither] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[right] PASSED [ 66%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[right] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[left] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[both] PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_has_break PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_regular_holidays_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_holidays_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample_time PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays_time PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample PASSED [ 67%] 992s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample_time PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_open_close_break_start_end PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_has_break PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_next_prev_session PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_offset PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_session PASSED [ 67%] 993s tests/test_xmos_calendar.py::TestXMOSCalendar::test_date_to_session PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_open_close PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_in_range PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_has_break PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_window PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_distance PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_trading_index PASSED [ 67%] 996s tests/test_xmos_calendar.py::TestXMOSCalendar::test_deprecated PASSED [ 67%] 996s tests/test_xnys_calendar.py::TestXNYSCalendar::test_base_integrity PASSED [ 67%] 999s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calculated_against_csv PASSED [ 67%] 1000s tests/test_xnys_calendar.py::TestXNYSCalendar::test_start_end PASSED [ 67%] 1000s tests/test_xnys_calendar.py::TestXNYSCalendar::test_invalid_input PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_min PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_max PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sanity_check_session_lengths PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_specification PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_daylight_savings PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_opens_closes_break_starts_ends PASSED [ 67%] 1002s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[both] PASSED [ 67%] 1003s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[both] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[both] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-next] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-next] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 67%] 1004s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[left] PASSED [ 67%] 1005s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[left] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[left] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-next] PASSED [ 67%] 1006s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 67%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[right] PASSED [ 67%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[right] PASSED [ 68%] 1007s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[right] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[right] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-previous] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-next] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[neither] PASSED [ 68%] 1009s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[neither] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[right] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[left] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[both] PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_has_break PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_regular_holidays_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_holidays_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample_time PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays_time PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample_time PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_open_close_break_start_end PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_has_break PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_next_prev_session PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_offset PASSED [ 68%] 1011s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_session PASSED [ 68%] 1012s tests/test_xnys_calendar.py::TestXNYSCalendar::test_date_to_session PASSED [ 68%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_open_close PASSED [ 68%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_in_range PASSED [ 69%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_has_break PASSED [ 69%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_window PASSED [ 69%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_distance PASSED [ 69%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_trading_index PASSED [ 69%] 1014s tests/test_xnys_calendar.py::TestXNYSCalendar::test_deprecated PASSED [ 69%] 1014s tests/test_xnze_calendar.py::TestXNZECalendar::test_base_integrity PASSED [ 69%] 1017s tests/test_xnze_calendar.py::TestXNZECalendar::test_calculated_against_csv PASSED [ 69%] 1017s tests/test_xnze_calendar.py::TestXNZECalendar::test_start_end PASSED [ 69%] 1017s tests/test_xnze_calendar.py::TestXNZECalendar::test_invalid_input PASSED [ 69%] 1019s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_min PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_max PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_sanity_check_session_lengths PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_specification PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_daylight_savings PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_opens_closes_break_starts_ends PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[both] PASSED [ 69%] 1020s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[both] PASSED [ 69%] 1021s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[both] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[both] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-next] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-next] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-next] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-next] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[left] PASSED [ 69%] 1022s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[left] PASSED [ 69%] 1023s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[left] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[left] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-next] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-next] PASSED [ 69%] 1024s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[right] PASSED [ 69%] 1025s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[right] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[right] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-none] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-none] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-none] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-none] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-none] PASSED [ 69%] 1026s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-none] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-none] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-previous] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-next] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[neither] PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[neither] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[right] PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[right] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[left] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[both] PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_has_break PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_regular_holidays_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_holidays_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample_time PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays_time PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample_time PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_open_close_break_start_end PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_has_break PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_next_prev_session PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_offset PASSED [ 70%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_session PASSED [ 70%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_date_to_session PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_open_close PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_in_range PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_has_break PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_window PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_distance PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_trading_index PASSED [ 70%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_deprecated PASSED [ 70%] 1032s tests/test_xosl_calendar.py::TestXOSLCalendar::test_base_integrity PASSED [ 70%] 1035s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calculated_against_csv PASSED [ 70%] 1035s tests/test_xosl_calendar.py::TestXOSLCalendar::test_start_end PASSED [ 70%] 1035s tests/test_xosl_calendar.py::TestXOSLCalendar::test_invalid_input PASSED [ 70%] 1037s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_min PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_max PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sanity_check_session_lengths PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_specification PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_daylight_savings PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_opens_closes_break_starts_ends PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[both] PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-next] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-next] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-next] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-next] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[left] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-previous] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 71%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-previous] PASSED [ 71%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-previous] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-next] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-next] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[right] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-none] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-none] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-none] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-previous] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-next] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[neither] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_has_break PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_regular_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_open_close_break_start_end PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_has_break PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_next_prev_session PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_offset PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_session PASSED [ 72%] 1047s tests/test_xosl_calendar.py::TestXOSLCalendar::test_date_to_session PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_open_close PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_in_range PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_has_break PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_window PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_distance PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_trading_index PASSED [ 72%] 1049s tests/test_xosl_calendar.py::TestXOSLCalendar::test_deprecated PASSED [ 72%] 1049s tests/test_xpar_calendar.py::TestXPARCalendar::test_base_integrity PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_calculated_against_csv PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_start_end PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_invalid_input PASSED [ 72%] 1053s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_min PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_max PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_sanity_check_session_lengths PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_specification PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_daylight_savings PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_opens_closes_break_starts_ends PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[both] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[both] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[both] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-next] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-next] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[left] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[left] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[left] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-next] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[right] PASSED [ 72%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[right] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[right] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-previous] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-next] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[neither] PASSED [ 72%] 1060s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[neither] PASSED [ 72%] 1061s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[neither] PASSED [ 72%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[neither] PASSED [ 72%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[neither] PASSED [ 72%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[neither] PASSED [ 72%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[neither] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[right] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[left] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[both] PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_has_break PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_regular_holidays_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_holidays_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample_time PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays_time PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample_time PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_open_close_break_start_end PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_has_break PASSED [ 73%] 1062s tests/test_xpar_calendar.py::TestXPARCalendar::test_next_prev_session PASSED [ 73%] 1063s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_offset PASSED [ 73%] 1063s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_session PASSED [ 73%] 1063s tests/test_xpar_calendar.py::TestXPARCalendar::test_date_to_session PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_open_close PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_in_range PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_has_break PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_window PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_distance PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_trading_index PASSED [ 73%] 1065s tests/test_xpar_calendar.py::TestXPARCalendar::test_deprecated PASSED [ 73%] 1065s tests/test_xphs_calendar.py::TestXPHSCalendar::test_base_integrity PASSED [ 73%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calculated_against_csv PASSED [ 73%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_start_end PASSED [ 73%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_invalid_input PASSED [ 73%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_min PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_max PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sanity_check_session_lengths PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_specification PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_daylight_savings PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_opens_closes_break_starts_ends PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[both] PASSED [ 73%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[both] PASSED [ 73%] 1072s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[both] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[both] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-next] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-next] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[left] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[left] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[left] PASSED [ 73%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[left] PASSED [ 74%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[left] PASSED [ 74%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[left] PASSED [ 74%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[left] PASSED [ 74%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[left] PASSED [ 74%] 1074s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[left] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[left] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-next] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 74%] 1075s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[right] PASSED [ 74%] 1076s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[right] PASSED [ 74%] 1077s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[right] PASSED [ 74%] 1077s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-none] PASSED [ 74%] 1077s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-previous] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-next] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[neither] PASSED [ 74%] 1078s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[neither] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[right] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[left] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[both] PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_has_break PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_regular_holidays_sample PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_sample PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_holidays_sample PASSED [ 74%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens_sample PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample_time PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays_time PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample_time PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_open_close_break_start_end PASSED [ 75%] 1080s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_has_break PASSED [ 75%] 1081s tests/test_xphs_calendar.py::TestXPHSCalendar::test_next_prev_session PASSED [ 75%] 1081s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_offset PASSED [ 75%] 1081s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_session PASSED [ 75%] 1081s tests/test_xphs_calendar.py::TestXPHSCalendar::test_date_to_session PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_open_close PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_in_range PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_has_break PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_window PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_distance PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_trading_index PASSED [ 75%] 1084s tests/test_xphs_calendar.py::TestXPHSCalendar::test_deprecated PASSED [ 75%] 1084s tests/test_xpra_calendar.py::TestXPRACalendar::test_base_integrity PASSED [ 75%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_calculated_against_csv PASSED [ 75%] 1087s tests/test_xpra_calendar.py::TestXPRACalendar::test_start_end PASSED [ 75%] 1087s tests/test_xpra_calendar.py::TestXPRACalendar::test_invalid_input PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_min PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_max PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_sanity_check_session_lengths PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_specification PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_daylight_savings PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_opens_closes_break_starts_ends PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[both] PASSED [ 75%] 1089s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[both] PASSED [ 75%] 1090s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[both] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[both] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-next] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-next] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[left] PASSED [ 75%] 1091s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[left] PASSED [ 75%] 1092s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[left] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[left] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-next] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[right] PASSED [ 75%] 1093s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[right] PASSED [ 75%] 1094s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[right] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[right] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-previous] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-next] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 75%] 1095s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[neither] PASSED [ 75%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[neither] PASSED [ 75%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[neither] PASSED [ 75%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[neither] PASSED [ 75%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[neither] PASSED [ 76%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[neither] PASSED [ 76%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[neither] PASSED [ 76%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[neither] PASSED [ 76%] 1096s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[neither] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[right] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[left] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[both] PASSED [ 76%] 1097s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[both] PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[both] PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_has_break PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_regular_holidays_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_holidays_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample_time PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays_time PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample_time PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_open_close_break_start_end PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_has_break PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_next_prev_session PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_offset PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_session PASSED [ 76%] 1098s tests/test_xpra_calendar.py::TestXPRACalendar::test_date_to_session PASSED [ 76%] 1100s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_open_close PASSED [ 76%] 1100s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_in_range PASSED [ 76%] 1100s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_has_break PASSED [ 76%] 1100s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_window PASSED [ 76%] 1100s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_distance PASSED [ 76%] 1101s tests/test_xpra_calendar.py::TestXPRACalendar::test_trading_index PASSED [ 76%] 1101s tests/test_xpra_calendar.py::TestXPRACalendar::test_deprecated PASSED [ 76%] 1101s tests/test_xris_calendar.py::TestXRISCalendar::test_base_integrity PASSED [ 76%] 1102s tests/test_xris_calendar.py::TestXRISCalendar::test_calculated_against_csv PASSED [ 76%] 1102s tests/test_xris_calendar.py::TestXRISCalendar::test_start_end PASSED [ 76%] 1102s tests/test_xris_calendar.py::TestXRISCalendar::test_invalid_input PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_min PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_max PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_sanity_check_session_lengths PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_specification PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_daylight_savings PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_opens_closes_break_starts_ends PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[both] PASSED [ 76%] 1104s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[both] PASSED [ 76%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[both] PASSED [ 76%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[both] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[left] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 77%] 1105s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[right] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-previous] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-next] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[neither] PASSED [ 77%] 1106s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[neither] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[right] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[left] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[both] PASSED [ 77%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[both] PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[both] PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[both] PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[both] PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_has_break PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_regular_holidays_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_non_holidays_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample_time PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays_time PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample_time PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_session_open_close_break_start_end PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_session_has_break PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_next_prev_session PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_session_offset PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_is_session PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_date_to_session PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_open_close PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_in_range PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_has_break PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_window PASSED [ 78%] 1107s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_distance PASSED [ 78%] 1108s tests/test_xris_calendar.py::TestXRISCalendar::test_trading_index PASSED [ 78%] 1108s tests/test_xris_calendar.py::TestXRISCalendar::test_deprecated PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_base_integrity PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_calculated_against_csv PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_start_end PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_invalid_input PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_min PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_max PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_sanity_check_session_lengths PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_specification PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_daylight_savings PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_opens_closes_break_starts_ends PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[both] PASSED [ 78%] 1108s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[both] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[both] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[both] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[left] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[right] PASSED [ 78%] 1109s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[right] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[right] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[right] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 78%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-previous] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-next] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[neither] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[right] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[left] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[left] PASSED [ 79%] 1110s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[left] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[both] PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_has_break PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_regular_holidays_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_holidays_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample_time PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays_time PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample_time PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_open_close_break_start_end PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_has_break PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_next_prev_session PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_offset PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_session PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_date_to_session PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_open_close PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_in_range PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_has_break PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_window PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_distance PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_trading_index PASSED [ 79%] 1111s tests/test_xsau_calendar.py::TestXASUCalendar::test_deprecated PASSED [ 79%] 1111s tests/test_xses_calendar.py::TestXSESCalendar::test_base_integrity PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_calculated_against_csv PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_start_end PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_invalid_input PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_min PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_max PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_sanity_check_session_lengths PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_specification PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_daylight_savings PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_opens_closes_break_starts_ends PASSED [ 79%] 1114s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[both] PASSED [ 80%] 1115s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[both] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[both] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-next] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-next] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-next] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[left] PASSED [ 80%] 1117s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[left] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[left] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-next] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 80%] 1119s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[right] PASSED [ 80%] 1120s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[right] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[right] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-previous] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-next] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 80%] 1122s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[neither] PASSED [ 80%] 1123s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[neither] PASSED [ 80%] 1124s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[neither] PASSED [ 80%] 1124s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[neither] PASSED [ 80%] 1124s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[neither] PASSED [ 80%] 1124s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[neither] PASSED [ 80%] 1124s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[neither] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[right] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[left] PASSED [ 80%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[left] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[left] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[both] PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_has_break PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_regular_holidays_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_non_holidays_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample_time PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays_time PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample_time PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_session_open_close_break_start_end PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_session_has_break PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_next_prev_session PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_session_offset PASSED [ 81%] 1125s tests/test_xses_calendar.py::TestXSESCalendar::test_is_session PASSED [ 81%] 1126s tests/test_xses_calendar.py::TestXSESCalendar::test_date_to_session PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_open_close PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_in_range PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_has_break PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_window PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_distance PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_trading_index PASSED [ 81%] 1129s tests/test_xses_calendar.py::TestXSESCalendar::test_deprecated PASSED [ 81%] 1129s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_base_integrity PASSED [ 81%] 1132s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calculated_against_csv PASSED [ 81%] 1132s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_start_end PASSED [ 81%] 1133s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_invalid_input PASSED [ 81%] 1134s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_min PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_max PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sanity_check_session_lengths PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_specification PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_daylight_savings PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_opens_closes_break_starts_ends PASSED [ 81%] 1135s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[both] PASSED [ 81%] 1136s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[both] PASSED [ 81%] 1137s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[both] PASSED [ 81%] 1137s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-next] PASSED [ 81%] 1137s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-next] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[left] PASSED [ 81%] 1138s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[left] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[left] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-next] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[right] PASSED [ 81%] 1140s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[right] PASSED [ 81%] 1141s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[right] PASSED [ 81%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[right] PASSED [ 81%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-previous] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-next] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 82%] 1142s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[neither] PASSED [ 82%] 1143s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[neither] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[right] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[left] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[both] PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_has_break PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_regular_holidays_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_holidays_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample_time PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays_time PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample_time PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_open_close_break_start_end PASSED [ 82%] 1145s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_has_break PASSED [ 82%] 1146s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_next_prev_session PASSED [ 82%] 1146s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_offset PASSED [ 82%] 1146s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_session PASSED [ 82%] 1146s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_date_to_session PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_open_close PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_in_range PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_has_break PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_window PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_distance PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_trading_index PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_deprecated PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_additional_early_closes_sample PASSED [ 82%] 1149s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_close_time_change PASSED [ 82%] 1149s tests/test_xshg_calendar.py::TestXSHGCalendar::test_base_integrity PASSED [ 82%] 1151s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calculated_against_csv PASSED [ 83%] 1151s tests/test_xshg_calendar.py::TestXSHGCalendar::test_start_end PASSED [ 83%] 1151s tests/test_xshg_calendar.py::TestXSHGCalendar::test_invalid_input PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_min PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_max PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sanity_check_session_lengths PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_specification PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_daylight_savings PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_opens_closes_break_starts_ends PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[both] PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[both] PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[both] PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[both] PASSED [ 83%] 1152s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[both] PASSED [ 83%] 1153s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[both] PASSED [ 83%] 1153s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[both] PASSED [ 83%] 1153s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[both] PASSED [ 83%] 1153s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[both] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[both] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-next] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-next] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 83%] 1156s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[left] PASSED [ 83%] 1157s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[left] PASSED [ 83%] 1160s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[left] PASSED [ 83%] 1160s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-previous] PASSED [ 83%] 1160s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 83%] 1160s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-previous] PASSED [ 83%] 1160s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-previous] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-next] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[right] PASSED [ 83%] 1161s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[right] PASSED [ 83%] 1162s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[right] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[right] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-previous] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-next] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[neither] PASSED [ 83%] 1165s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[neither] PASSED [ 83%] 1166s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[neither] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[right] PASSED [ 83%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[right] PASSED [ 84%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[right] PASSED [ 84%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[right] PASSED [ 84%] 1169s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[left] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[both] PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_has_break PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_regular_holidays_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_holidays_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample_time PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays_time PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample_time PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_open_close_break_start_end PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_has_break PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_next_prev_session PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_offset PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_session PASSED [ 84%] 1170s tests/test_xshg_calendar.py::TestXSHGCalendar::test_date_to_session PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_open_close PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_in_range PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_has_break PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_window PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_distance PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_trading_index PASSED [ 84%] 1173s tests/test_xshg_calendar.py::TestXSHGCalendar::test_deprecated PASSED [ 84%] 1173s tests/test_xsto_calendar.py::TestXSTOCalendar::test_base_integrity PASSED [ 84%] 1176s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calculated_against_csv PASSED [ 84%] 1176s tests/test_xsto_calendar.py::TestXSTOCalendar::test_start_end PASSED [ 84%] 1176s tests/test_xsto_calendar.py::TestXSTOCalendar::test_invalid_input PASSED [ 84%] 1178s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_min PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_max PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sanity_check_session_lengths PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_specification PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_daylight_savings PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_opens_closes_break_starts_ends PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[both] PASSED [ 84%] 1179s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[both] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[both] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-next] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-next] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[left] PASSED [ 84%] 1182s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[left] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[left] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-next] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 84%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[right] PASSED [ 85%] 1183s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[right] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[right] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-previous] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-next] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[neither] PASSED [ 85%] 1185s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[neither] PASSED [ 85%] 1186s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[neither] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[right] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[left] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[both] PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_has_break PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_regular_holidays_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_holidays_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample_time PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays_time PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample_time PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_open_close_break_start_end PASSED [ 85%] 1187s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_has_break PASSED [ 85%] 1188s tests/test_xsto_calendar.py::TestXSTOCalendar::test_next_prev_session PASSED [ 85%] 1188s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_offset PASSED [ 85%] 1188s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_session PASSED [ 85%] 1188s tests/test_xsto_calendar.py::TestXSTOCalendar::test_date_to_session PASSED [ 85%] 1190s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_open_close PASSED [ 86%] 1190s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_in_range PASSED [ 86%] 1190s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_has_break PASSED [ 86%] 1190s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_window PASSED [ 86%] 1190s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_distance PASSED [ 86%] 1191s tests/test_xsto_calendar.py::TestXSTOCalendar::test_trading_index PASSED [ 86%] 1191s tests/test_xsto_calendar.py::TestXSTOCalendar::test_deprecated PASSED [ 86%] 1191s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_base_integrity PASSED [ 86%] 1193s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calculated_against_csv PASSED [ 86%] 1193s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_start_end PASSED [ 86%] 1193s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_invalid_input PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_min PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_max PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sanity_check_session_lengths PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_specification PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_daylight_savings PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions PASSED [ 86%] 1195s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_opens_closes_break_starts_ends PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[both] PASSED [ 86%] 1196s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[both] PASSED [ 86%] 1197s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[both] PASSED [ 86%] 1197s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-next] PASSED [ 86%] 1197s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 86%] 1197s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-next] PASSED [ 86%] 1197s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[left] PASSED [ 86%] 1198s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[left] PASSED [ 86%] 1199s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[left] PASSED [ 86%] 1199s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-previous] PASSED [ 86%] 1199s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 86%] 1199s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-previous] PASSED [ 86%] 1199s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-previous] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-next] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[right] PASSED [ 86%] 1200s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[right] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[right] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-none] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-none] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-none] PASSED [ 86%] 1201s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-none] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-previous] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-next] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[neither] PASSED [ 86%] 1202s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[neither] PASSED [ 86%] 1203s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[neither] PASSED [ 86%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[neither] PASSED [ 86%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[neither] PASSED [ 86%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[neither] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[right] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[left] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[both] PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_has_break PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_regular_holidays_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_holidays_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample_time PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays_time PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample_time PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_open_close_break_start_end PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_has_break PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_next_prev_session PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_offset PASSED [ 87%] 1204s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_session PASSED [ 87%] 1205s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_date_to_session PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_open_close PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_in_range PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_has_break PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_window PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_distance PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_trading_index PASSED [ 87%] 1207s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_deprecated PASSED [ 87%] 1207s tests/test_xtae_calendar.py::TestXTAECalendar::test_base_integrity PASSED [ 87%] 1210s tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv PASSED [ 87%] 1211s tests/test_xtae_calendar.py::TestXTAECalendar::test_start_end PASSED [ 87%] 1211s tests/test_xtae_calendar.py::TestXTAECalendar::test_invalid_input PASSED [ 87%] 1214s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_max PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_sanity_check_session_lengths PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_specification PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_daylight_savings PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_opens_closes_break_starts_ends PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[both] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-next] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-next] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-next] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-next] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[left] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[left] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[left] PASSED [ 87%] 1215s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[left] PASSED [ 87%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[left] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-next] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-next] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[right] PASSED [ 88%] 1216s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[right] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[right] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[right] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-previous] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-next] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[neither] PASSED [ 88%] 1217s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[neither] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[right] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[left] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[both] PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_has_break PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_regular_holidays_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_holidays_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample_time PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays_time PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample_time PASSED [ 88%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_open_close_break_start_end PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_has_break PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_next_prev_session PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_offset PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_session PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_date_to_session PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_open_close PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_in_range PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_has_break PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_window PASSED [ 89%] 1218s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_distance PASSED [ 89%] 1219s tests/test_xtae_calendar.py::TestXTAECalendar::test_trading_index PASSED [ 89%] 1219s tests/test_xtae_calendar.py::TestXTAECalendar::test_deprecated PASSED [ 89%] 1219s tests/test_xtai_calendar.py::TestXTAICalendar::test_base_integrity PASSED [ 89%] 1227s tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv PASSED [ 89%] 1227s tests/test_xtai_calendar.py::TestXTAICalendar::test_start_end PASSED [ 89%] 1228s tests/test_xtai_calendar.py::TestXTAICalendar::test_invalid_input PASSED [ 89%] 1229s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_min PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_max PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_sanity_check_session_lengths PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_specification PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_daylight_savings PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_opens_closes_break_starts_ends PASSED [ 89%] 1230s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[both] PASSED [ 89%] 1231s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[both] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-next] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-next] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-next] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-next] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[left] PASSED [ 89%] 1237s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[left] PASSED [ 89%] 1238s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[left] PASSED [ 89%] 1243s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] PASSED [ 89%] 1243s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-previous] PASSED [ 89%] 1243s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-previous] PASSED [ 89%] 1243s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-previous] PASSED [ 89%] 1243s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-previous] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-previous] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-previous] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-next] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-next] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[right] PASSED [ 89%] 1244s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[right] PASSED [ 89%] 1245s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[right] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-none] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-previous] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 89%] 1250s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-next] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-next] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[neither] PASSED [ 89%] 1251s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[neither] PASSED [ 89%] 1252s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[neither] PASSED [ 89%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] PASSED [ 89%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[neither] PASSED [ 89%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[neither] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[right] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[left] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[both] PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_has_break PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_regular_holidays_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_holidays_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample_time PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays_time PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample_time PASSED [ 90%] 1257s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens PASSED [ 90%] 1258s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes PASSED [ 90%] 1258s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_open_close_break_start_end PASSED [ 90%] 1258s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_has_break PASSED [ 90%] 1259s tests/test_xtai_calendar.py::TestXTAICalendar::test_next_prev_session PASSED [ 90%] 1259s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_offset PASSED [ 90%] 1259s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_session PASSED [ 90%] 1260s tests/test_xtai_calendar.py::TestXTAICalendar::test_date_to_session PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_in_range PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_has_break PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_window PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_distance PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_trading_index PASSED [ 90%] 1269s tests/test_xtai_calendar.py::TestXTAICalendar::test_deprecated PASSED [ 90%] 1269s tests/test_xtal_calendar.py::TestXTALCalendar::test_base_integrity PASSED [ 90%] 1270s tests/test_xtal_calendar.py::TestXTALCalendar::test_calculated_against_csv PASSED [ 90%] 1271s tests/test_xtal_calendar.py::TestXTALCalendar::test_start_end PASSED [ 90%] 1271s tests/test_xtal_calendar.py::TestXTALCalendar::test_invalid_input PASSED [ 90%] 1272s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_min PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_max PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_sanity_check_session_lengths PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_specification PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_daylight_savings PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_opens_closes_break_starts_ends PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[both] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-next] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-next] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-next] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-next] PASSED [ 90%] 1273s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[left] PASSED [ 90%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[left] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-next] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-next] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[right] PASSED [ 91%] 1274s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-previous] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-next] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[neither] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[right] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[left] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[both] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[both] PASSED [ 91%] 1275s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[both] PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_has_break PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_regular_holidays_sample PASSED [ 91%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_sample PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_holidays_sample PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens_sample PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample_time PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays_time PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample_time PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_open_close_break_start_end PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_has_break PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_next_prev_session PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_offset PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_session PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_date_to_session PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_open_close PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_in_range PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_has_break PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_window PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_distance PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_trading_index PASSED [ 92%] 1276s tests/test_xtal_calendar.py::TestXTALCalendar::test_deprecated PASSED [ 92%] 1276s tests/test_xtks_calendar.py::TestXTKSCalendar::test_base_integrity PASSED [ 92%] 1279s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calculated_against_csv PASSED [ 92%] 1280s tests/test_xtks_calendar.py::TestXTKSCalendar::test_start_end PASSED [ 92%] 1280s tests/test_xtks_calendar.py::TestXTKSCalendar::test_invalid_input PASSED [ 92%] 1280s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_min PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_max PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sanity_check_session_lengths PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_specification PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_daylight_savings PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_opens_closes_break_starts_ends PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[both] PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[both] PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[both] PASSED [ 92%] 1281s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[both] PASSED [ 92%] 1282s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[both] PASSED [ 92%] 1282s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[both] PASSED [ 92%] 1282s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[both] PASSED [ 92%] 1282s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[both] PASSED [ 92%] 1282s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[both] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[both] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-next] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-next] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 92%] 1284s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[left] PASSED [ 92%] 1285s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[left] PASSED [ 92%] 1287s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[left] PASSED [ 92%] 1287s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-previous] PASSED [ 92%] 1287s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 92%] 1287s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-previous] PASSED [ 92%] 1287s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-previous] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-next] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[right] PASSED [ 92%] 1288s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[right] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[right] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-previous] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-next] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[neither] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[neither] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[neither] PASSED [ 92%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[neither] PASSED [ 93%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[neither] PASSED [ 93%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[neither] PASSED [ 93%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[neither] PASSED [ 93%] 1291s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[neither] PASSED [ 93%] 1292s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[neither] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[right] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[left] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[both] PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_has_break PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_regular_holidays_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_holidays_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample_time PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays_time PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample_time PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_open_close_break_start_end PASSED [ 93%] 1294s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_has_break PASSED [ 93%] 1295s tests/test_xtks_calendar.py::TestXTKSCalendar::test_next_prev_session PASSED [ 93%] 1295s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_offset PASSED [ 93%] 1295s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_session PASSED [ 93%] 1295s tests/test_xtks_calendar.py::TestXTKSCalendar::test_date_to_session PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_open_close PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_in_range PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_has_break PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_window PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_distance PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_trading_index PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_deprecated PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_golden_week_holidays PASSED [ 93%] 1297s tests/test_xtks_calendar.py::TestXTKSCalendar::test_emperors_birthday PASSED [ 93%] 1297s tests/test_xtse_calendar.py::TestXTSECalendar::test_base_integrity PASSED [ 93%] 1300s tests/test_xtse_calendar.py::TestXTSECalendar::test_calculated_against_csv PASSED [ 93%] 1300s tests/test_xtse_calendar.py::TestXTSECalendar::test_start_end PASSED [ 93%] 1300s tests/test_xtse_calendar.py::TestXTSECalendar::test_invalid_input PASSED [ 93%] 1302s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_min PASSED [ 93%] 1302s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_max PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_sanity_check_session_lengths PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_specification PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_daylight_savings PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_opens_closes_break_starts_ends PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[both] PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[both] PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[both] PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[both] PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[both] PASSED [ 93%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[both] PASSED [ 94%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[both] PASSED [ 94%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[both] PASSED [ 94%] 1303s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[both] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[both] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-next] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-next] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[left] PASSED [ 94%] 1305s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[left] PASSED [ 94%] 1306s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[left] PASSED [ 94%] 1306s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-previous] PASSED [ 94%] 1306s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 94%] 1306s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-previous] PASSED [ 94%] 1306s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-previous] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-next] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[right] PASSED [ 94%] 1307s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[right] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[right] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-previous] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-next] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[neither] PASSED [ 94%] 1309s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[neither] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[right] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[left] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[both] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[both] PASSED [ 94%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[both] PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_has_break PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_regular_holidays_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_holidays_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample_time PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays_time PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample_time PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_open_close_break_start_end PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_has_break PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_next_prev_session PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_offset PASSED [ 95%] 1311s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_session PASSED [ 95%] 1312s tests/test_xtse_calendar.py::TestXTSECalendar::test_date_to_session PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_open_close PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_in_range PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_has_break PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_window PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_distance PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_trading_index PASSED [ 95%] 1314s tests/test_xtse_calendar.py::TestXTSECalendar::test_deprecated PASSED [ 95%] 1314s tests/test_xwar_calendar.py::TestXWARCalendar::test_base_integrity PASSED [ 95%] 1317s tests/test_xwar_calendar.py::TestXWARCalendar::test_calculated_against_csv PASSED [ 95%] 1317s tests/test_xwar_calendar.py::TestXWARCalendar::test_start_end PASSED [ 95%] 1317s tests/test_xwar_calendar.py::TestXWARCalendar::test_invalid_input PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_min PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_max PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_sanity_check_session_lengths PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_specification PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_daylight_savings PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions PASSED [ 95%] 1319s tests/test_xwar_calendar.py::TestXWARCalendar::test_opens_closes_break_starts_ends PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[both] PASSED [ 95%] 1320s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[both] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[both] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-next] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-next] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[left] PASSED [ 95%] 1322s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[left] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[left] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-next] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[right] PASSED [ 95%] 1324s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[right] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[right] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-none] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-none] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 95%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-none] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-none] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-previous] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-next] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[neither] PASSED [ 96%] 1326s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[neither] PASSED [ 96%] 1327s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[neither] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[right] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[left] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[both] PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_has_break PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_regular_holidays_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_holidays_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample_time PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays_time PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample_time PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_open_close_break_start_end PASSED [ 96%] 1328s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_has_break PASSED [ 96%] 1329s tests/test_xwar_calendar.py::TestXWARCalendar::test_next_prev_session PASSED [ 96%] 1329s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_offset PASSED [ 96%] 1329s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_session PASSED [ 96%] 1329s tests/test_xwar_calendar.py::TestXWARCalendar::test_date_to_session PASSED [ 96%] 1331s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_open_close PASSED [ 96%] 1331s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_in_range PASSED [ 96%] 1331s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_has_break PASSED [ 96%] 1331s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_window PASSED [ 96%] 1331s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_distance PASSED [ 96%] 1332s tests/test_xwar_calendar.py::TestXWARCalendar::test_trading_index PASSED [ 96%] 1332s tests/test_xwar_calendar.py::TestXWARCalendar::test_deprecated PASSED [ 96%] 1332s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_base_integrity PASSED [ 96%] 1334s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calculated_against_csv PASSED [ 96%] 1334s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_start_end PASSED [ 96%] 1335s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_invalid_input PASSED [ 96%] 1336s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_min PASSED [ 96%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_max PASSED [ 96%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sanity_check_session_lengths PASSED [ 96%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_specification PASSED [ 96%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_daylight_savings PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_opens_closes_break_starts_ends PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[both] PASSED [ 97%] 1337s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[both] PASSED [ 97%] 1338s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[both] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[both] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-next] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-next] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 97%] 1339s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[left] PASSED [ 97%] 1340s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[left] PASSED [ 97%] 1341s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[left] PASSED [ 97%] 1341s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-previous] PASSED [ 97%] 1341s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 97%] 1341s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-previous] PASSED [ 97%] 1341s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-previous] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-next] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[right] PASSED [ 97%] 1342s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[right] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[right] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-previous] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-next] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[neither] PASSED [ 97%] 1344s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[neither] PASSED [ 97%] 1345s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[neither] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[right] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[left] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[left] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[left] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[left] PASSED [ 97%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[left] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[both] PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_has_break PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_regular_holidays_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_holidays_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample_time PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays_time PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample_time PASSED [ 98%] 1346s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_open_close_break_start_end PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_has_break PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_next_prev_session PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_offset PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_session PASSED [ 98%] 1347s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_date_to_session PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_open_close PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_in_range PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_has_break PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_window PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_distance PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_trading_index PASSED [ 98%] 1350s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_deprecated PASSED [ 98%] 1350s tests/test_xzag_calendar.py::TestXZAGCalendar::test_base_integrity PASSED [ 98%] 1351s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calculated_against_csv PASSED [ 98%] 1351s tests/test_xzag_calendar.py::TestXZAGCalendar::test_start_end PASSED [ 98%] 1352s tests/test_xzag_calendar.py::TestXZAGCalendar::test_invalid_input PASSED [ 98%] 1353s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_min PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_max PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sanity_check_session_lengths PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_specification PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_daylight_savings PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_opens_closes_break_starts_ends PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[both] PASSED [ 98%] 1354s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[both] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[both] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[left] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[right] PASSED [ 98%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[right] PASSED [ 99%] 1355s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[right] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[right] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[right] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-previous] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-next] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[neither] PASSED [ 99%] 1356s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[neither] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[right] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[left] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[both] PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_has_break PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_regular_holidays_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_holidays_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample_time PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays_time PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample_time PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_open_close_break_start_end PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_has_break PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_next_prev_session PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_offset PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_session PASSED [ 99%] 1357s tests/test_xzag_calendar.py::TestXZAGCalendar::test_date_to_session PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_open_close PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_in_range PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_has_break PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_window PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_distance PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_trading_index PASSED [ 99%] 1358s tests/test_xzag_calendar.py::TestXZAGCalendar::test_deprecated PASSED [100%] 1358s 1358s ============================= slowest 15 durations ============================= 1358s 36.67s call tests/test_exchange_calendar.py::test_default_calendars 1358s 19.59s setup tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv 1358s 16.17s setup tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv 1358s 9.98s call tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min 1358s 9.05s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close 1358s 8.26s setup tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv 1358s 8.04s setup tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv 1358s 7.15s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min 1358s 6.01s call tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XHKG] 1358s 5.55s call tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[CMES] 1358s 5.16s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] 1358s 5.10s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] 1358s 5.07s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] 1358s 5.07s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] 1358s 4.90s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] 1358s ========= 9125 passed, 65 deselected, 1 xfailed in 1252.05s (0:20:52) ========== 1359s autopkgtest [03:57:23]: test pybuild-autopkgtest: -----------------------] 1360s autopkgtest [03:57:24]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1360s pybuild-autopkgtest PASS 1360s autopkgtest [03:57:24]: @@@@@@@@@@@@@@@@@@@@ summary 1360s pybuild-autopkgtest PASS