0s autopkgtest [22:29:34]: starting date and time: 2026-02-08 22:29:34+0000 0s autopkgtest [22:29:34]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [22:29:34]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.umz2soj9/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:exchange-calendars --apt-upgrade exchange-calendars --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=exchange-calendars/4.13.1-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-31.secgroup --name adt-resolute-amd64-exchange-calendars-20260208-222934-juju-7f2275-prod-proposed-migration-environment-20-ce6d50c5-4f91-4253-bcb2-3b954dbd7735 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-amd64-exchange-calendars-20260208-222934-juju-7f2275-prod-proposed-migration-environment-20-ce6d50c5-4f91-4253-bcb2-3b954dbd7735 from image adt/ubuntu-resolute-amd64-server-20260204.img (UUID fedf54b4-458b-493e-8072-6425c19717b4)... 72s autopkgtest [22:30:46]: testbed dpkg architecture: amd64 72s autopkgtest [22:30:46]: testbed apt version: 3.1.14 72s autopkgtest [22:30:46]: @@@@@@@@@@@@@@@@@@@@ test bed setup 72s autopkgtest [22:30:46]: testbed release detected to be: None 73s autopkgtest [22:30:47]: updating testbed package index (apt update) 73s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 73s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 73s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 73s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 73s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1574 kB] 74s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [162 kB] 74s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [30.0 kB] 74s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [240 kB] 74s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [206 kB] 74s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6120 B] 74s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [120 B] 74s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [627 kB] 74s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1531 kB] 74s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [32.6 kB] 74s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4684 B] 74s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [25.6 kB] 74s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [1020 B] 75s Fetched 4564 kB in 1s (4255 kB/s) 75s Reading package lists... 76s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 76s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 76s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 76s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 76s Reading package lists... 76s Reading package lists... 77s Building dependency tree... 77s Reading state information... 77s Calculating upgrade... 77s The following package was automatically installed and is no longer required: 77s libpython3.13 77s Use 'sudo apt autoremove' to remove it. 77s The following NEW packages will be installed: 77s libpython3.14 libpython3.14-minimal libpython3.14-stdlib 77s linux-headers-6.19.0-3 linux-headers-6.19.0-3-generic 77s linux-image-6.19.0-3-generic linux-modules-6.19.0-3-generic 77s linux-tools-6.19.0-3 linux-tools-6.19.0-3-generic 77s The following packages will be upgraded: 77s 3cpio amd64-microcode apt bpftool busybox-initramfs busybox-static dash dbus 77s dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common 77s dbus-user-session debianutils dmsetup ethtool findutils 77s gir1.2-girepository-3.0 gir1.2-glib-2.0 hwdata less libapt-pkg7.0 libattr1 77s libbpf1 libbsd0 libdbus-1-3 libdevmapper1.02.1 libdrm-amdgpu1 libdrm-common 77s libdrm2 libevent-core-2.1-7t64 libgdbm-compat4t64 libgdbm6t64 77s libgirepository-2.0-0 libglib2.0-0t64 libglib2.0-data libgpm2 libgudev-1.0-0 77s libidn2-0 libjansson4 libkeyutils1 liblsof0 libmaxminddb0 77s libnetfilter-conntrack3 libnpth0t64 libonig5 libpcap0.8t64 libpci3 77s libsensors-config libsensors5 libusb-1.0-0 libwrap0 libxau6 libxkbcommon0 77s linux-generic linux-headers-generic linux-headers-virtual 77s linux-image-generic linux-image-virtual linux-perf linux-tools-common 77s linux-virtual lsof man-db mawk patch pciutils pnp.ids pollinate 77s python3-linkify-it python3-markdown-it python3-referencing sed 77s shared-mime-info tar tcpdump ubuntu-kernel-accessories ubuntu-standard 77s 78 upgraded, 9 newly installed, 0 to remove and 0 not upgraded. 77s Need to get 233 MB of archives. 77s After this operation, 339 MB of additional disk space will be used. 77s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 debianutils amd64 5.23.2build1 [93.3 kB] 77s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 dash amd64 0.5.12-12ubuntu3 [96.0 kB] 77s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 findutils amd64 4.10.0-3build2 [307 kB] 77s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 sed amd64 4.9-2build3 [195 kB] 77s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 tar amd64 1.35+dfsg-3.1build2 [257 kB] 77s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libattr1 amd64 1:2.5.2-3build2 [11.4 kB] 77s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libbsd0 amd64 0.12.2-2build2 [42.3 kB] 77s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 mawk amd64 1.3.4.20260129-1 [133 kB] 77s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libapt-pkg7.0 amd64 3.1.15 [1151 kB] 77s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 apt amd64 3.1.15 [1479 kB] 77s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-system-bus-common all 1.16.2-2ubuntu3 [55.8 kB] 77s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-session-bus-common all 1.16.2-2ubuntu3 [54.4 kB] 77s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-user-session amd64 1.16.2-2ubuntu3 [9696 B] 77s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-daemon amd64 1.16.2-2ubuntu3 [119 kB] 77s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-bin amd64 1.16.2-2ubuntu3 [40.1 kB] 77s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus amd64 1.16.2-2ubuntu3 [24.2 kB] 77s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libdbus-1-3 amd64 1.16.2-2ubuntu3 [185 kB] 77s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevmapper1.02.1 amd64 2:1.02.205-2ubuntu3 [142 kB] 77s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 dmsetup amd64 2:1.02.205-2ubuntu3 [79.4 kB] 77s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 ethtool amd64 1:6.15-3build1 [318 kB] 77s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-girepository-3.0 amd64 2.87.2-2 [25.2 kB] 77s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libgirepository-2.0-0 amd64 2.87.2-2 [76.1 kB] 77s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-glib-2.0 amd64 2.87.2-2 [182 kB] 77s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-0t64 amd64 2.87.2-2 [1613 kB] 77s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 less amd64 668-1build1 [172 kB] 77s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libbpf1 amd64 1:1.6.2-1build1 [184 kB] 77s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-data all 2.87.2-2 [58.2 kB] 77s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libidn2-0 amd64 2.3.8-4build1 [67.6 kB] 77s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libkeyutils1 amd64 1.6.3-6ubuntu3 [10.6 kB] 77s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-linkify-it all 2.0.3-1ubuntu3 [19.4 kB] 77s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-markdown-it all 3.0.0-3build1 [54.4 kB] 77s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 shared-mime-info amd64 2.4-5build3 [476 kB] 77s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-static amd64 1:1.37.0-7ubuntu1 [1034 kB] 77s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-common all 2.4.131-1 [9774 B] 77s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm2 amd64 2.4.131-1 [42.3 kB] 77s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm6t64 amd64 1.26-1build1 [36.5 kB] 77s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libgpm2 amd64 1.20.7-12build1 [14.4 kB] 77s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libjansson4 amd64 2.14-2build4 [33.2 kB] 77s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 lsof amd64 4.99.4+dfsg-2build2 [239 kB] 77s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsof0 amd64 4.99.4+dfsg-2build2 [56.5 kB] 77s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 libmaxminddb0 amd64 1.12.2-1build2 [18.9 kB] 77s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 libnetfilter-conntrack3 amd64 1.1.1-1 [47.5 kB] 77s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libpcap0.8t64 amd64 1.10.5-2ubuntu3 [154 kB] 77s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 pciutils amd64 1:3.14.0-1build2 [95.5 kB] 77s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 libpci3 amd64 1:3.14.0-1build2 [38.1 kB] 77s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors-config all 1:3.6.2-2build1 [6862 B] 77s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors5 amd64 1:3.6.2-2build1 [28.9 kB] 77s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 libusb-1.0-0 amd64 2:1.0.29-2build1 [56.9 kB] 77s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 libxau6 amd64 1:1.0.11-1build2 [7502 B] 77s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libxkbcommon0 amd64 1.13.1-1 [159 kB] 77s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 man-db amd64 2.13.1-1build1 [1392 kB] 77s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 tcpdump amd64 4.99.5-2ubuntu3 [477 kB] 77s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-standard amd64 1.564 [13.3 kB] 77s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.14.0-1ubuntu1 [285 kB] 77s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 bpftool amd64 7.7.0+6.19.0-3.3 [1229 kB] 77s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-initramfs amd64 1:1.37.0-7ubuntu1 [191 kB] 77s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 hwdata all 0.394-1build1 [1566 B] 77s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 pnp.ids all 0.394-1build1 [29.6 kB] 77s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-amdgpu1 amd64 2.4.131-1 [23.2 kB] 77s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libevent-core-2.1-7t64 amd64 2.1.12-stable-10build2 [93.1 kB] 77s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm-compat4t64 amd64 1.26-1build1 [6796 B] 77s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libgudev-1.0-0 amd64 1:238-7build1 [15.9 kB] 77s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libnpth0t64 amd64 1.8-3build1 [9302 B] 77s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libonig5 amd64 6.9.10-1build1 [174 kB] 77s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 77s Get:66 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 78s Get:67 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14 amd64 3.14.2-1 [2568 kB] 78s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 libwrap0 amd64 7.6.q-36build2 [48.5 kB] 78s Get:69 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-modules-6.19.0-3-generic amd64 6.19.0-3.3 [171 MB] 80s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-6.19.0-3-generic amd64 6.19.0-3.3+1 [16.8 MB] 80s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 amd64-microcode amd64 3.20251202.1ubuntu1 [459 kB] 80s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-generic amd64 6.19.0-3.3 [1698 B] 80s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-generic amd64 6.19.0-3.3 [12.2 kB] 80s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-virtual amd64 6.19.0-3.3 [1700 B] 80s Get:75 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-virtual amd64 6.19.0-3.3 [12.1 kB] 80s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-virtual amd64 6.19.0-3.3 [1646 B] 80s Get:77 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3 all 6.19.0-3.3 [14.9 MB] 80s Get:78 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3-generic amd64 6.19.0-3.3 [4330 kB] 80s Get:79 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-generic amd64 6.19.0-3.3 [12.0 kB] 80s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-perf amd64 6.19.0-3.3 [4480 kB] 81s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-common all 6.19.0-3.3 [345 kB] 81s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3 amd64 6.19.0-3.3 [1455 kB] 81s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3-generic amd64 6.19.0-3.3 [1612 B] 81s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 patch amd64 2.8-2build1 [95.7 kB] 81s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 pollinate all 4.33-4ubuntu5 [14.0 kB] 81s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-referencing all 0.36.2-1ubuntu2 [22.2 kB] 81s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-kernel-accessories amd64 1.564 [13.1 kB] 81s dpkg-preconfigure: unable to re-open stdin: No such file or directory 81s Fetched 233 MB in 4s (61.0 MB/s) 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../debianutils_5.23.2build1_amd64.deb ... 81s Unpacking debianutils (5.23.2build1) over (5.23.2) ... 81s Setting up debianutils (5.23.2build1) ... 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../dash_0.5.12-12ubuntu3_amd64.deb ... 81s Unpacking dash (0.5.12-12ubuntu3) over (0.5.12-12ubuntu2) ... 81s Setting up dash (0.5.12-12ubuntu3) ... 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../findutils_4.10.0-3build2_amd64.deb ... 81s Unpacking findutils (4.10.0-3build2) over (4.10.0-3build1) ... 81s Setting up findutils (4.10.0-3build2) ... 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../sed_4.9-2build3_amd64.deb ... 81s Unpacking sed (4.9-2build3) over (4.9-2build2) ... 81s Setting up sed (4.9-2build3) ... 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../tar_1.35+dfsg-3.1build2_amd64.deb ... 81s Unpacking tar (1.35+dfsg-3.1build2) over (1.35+dfsg-3.1build1) ... 81s Setting up tar (1.35+dfsg-3.1build2) ... 81s (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 ... 83957 files and directories currently installed.) 81s Preparing to unpack .../libattr1_1%3a2.5.2-3build2_amd64.deb ... 81s Unpacking libattr1:amd64 (1:2.5.2-3build2) over (1:2.5.2-3build1) ... 82s Setting up libattr1:amd64 (1:2.5.2-3build2) ... 82s (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 ... 83957 files and directories currently installed.) 82s Preparing to unpack .../00-libbsd0_0.12.2-2build2_amd64.deb ... 82s Unpacking libbsd0:amd64 (0.12.2-2build2) over (0.12.2-2build1) ... 82s Preparing to unpack .../01-mawk_1.3.4.20260129-1_amd64.deb ... 82s Unpacking mawk (1.3.4.20260129-1) over (1.3.4.20250131-2) ... 82s Preparing to unpack .../02-libapt-pkg7.0_3.1.15_amd64.deb ... 82s Unpacking libapt-pkg7.0:amd64 (3.1.15) over (3.1.14) ... 82s Preparing to unpack .../03-apt_3.1.15_amd64.deb ... 82s Unpacking apt (3.1.15) over (3.1.14) ... 82s Preparing to unpack .../04-dbus-system-bus-common_1.16.2-2ubuntu3_all.deb ... 82s Unpacking dbus-system-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../05-dbus-session-bus-common_1.16.2-2ubuntu3_all.deb ... 82s Unpacking dbus-session-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../06-dbus-user-session_1.16.2-2ubuntu3_amd64.deb ... 82s Unpacking dbus-user-session (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../07-dbus-daemon_1.16.2-2ubuntu3_amd64.deb ... 82s Unpacking dbus-daemon (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../08-dbus-bin_1.16.2-2ubuntu3_amd64.deb ... 82s Unpacking dbus-bin (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../09-dbus_1.16.2-2ubuntu3_amd64.deb ... 82s Unpacking dbus (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../10-libdbus-1-3_1.16.2-2ubuntu3_amd64.deb ... 82s Unpacking libdbus-1-3:amd64 (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 82s Preparing to unpack .../11-libdevmapper1.02.1_2%3a1.02.205-2ubuntu3_amd64.deb ... 82s Unpacking libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 82s Preparing to unpack .../12-dmsetup_2%3a1.02.205-2ubuntu3_amd64.deb ... 82s Unpacking dmsetup (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 82s Preparing to unpack .../13-ethtool_1%3a6.15-3build1_amd64.deb ... 82s Unpacking ethtool (1:6.15-3build1) over (1:6.15-3) ... 82s Preparing to unpack .../14-gir1.2-girepository-3.0_2.87.2-2_amd64.deb ... 82s Unpacking gir1.2-girepository-3.0:amd64 (2.87.2-2) over (2.86.3-4) ... 82s Preparing to unpack .../15-libgirepository-2.0-0_2.87.2-2_amd64.deb ... 82s Unpacking libgirepository-2.0-0:amd64 (2.87.2-2) over (2.86.3-4) ... 82s Preparing to unpack .../16-gir1.2-glib-2.0_2.87.2-2_amd64.deb ... 82s Unpacking gir1.2-glib-2.0:amd64 (2.87.2-2) over (2.86.3-4) ... 82s Preparing to unpack .../17-libglib2.0-0t64_2.87.2-2_amd64.deb ... 82s Unpacking libglib2.0-0t64:amd64 (2.87.2-2) over (2.86.3-4) ... 82s Preparing to unpack .../18-less_668-1build1_amd64.deb ... 82s Unpacking less (668-1build1) over (668-1) ... 82s Preparing to unpack .../19-libbpf1_1%3a1.6.2-1build1_amd64.deb ... 82s Unpacking libbpf1:amd64 (1:1.6.2-1build1) over (1:1.6.2-1) ... 82s Preparing to unpack .../20-libglib2.0-data_2.87.2-2_all.deb ... 82s Unpacking libglib2.0-data (2.87.2-2) over (2.86.3-4) ... 82s Preparing to unpack .../21-libidn2-0_2.3.8-4build1_amd64.deb ... 82s Unpacking libidn2-0:amd64 (2.3.8-4build1) over (2.3.8-4) ... 82s Preparing to unpack .../22-libkeyutils1_1.6.3-6ubuntu3_amd64.deb ... 82s Unpacking libkeyutils1:amd64 (1.6.3-6ubuntu3) over (1.6.3-6ubuntu2) ... 82s Preparing to unpack .../23-python3-linkify-it_2.0.3-1ubuntu3_all.deb ... 82s Unpacking python3-linkify-it (2.0.3-1ubuntu3) over (2.0.3-1ubuntu2) ... 83s Preparing to unpack .../24-python3-markdown-it_3.0.0-3build1_all.deb ... 83s Unpacking python3-markdown-it (3.0.0-3build1) over (3.0.0-3) ... 83s Preparing to unpack .../25-shared-mime-info_2.4-5build3_amd64.deb ... 83s Unpacking shared-mime-info (2.4-5build3) over (2.4-5build2) ... 83s Preparing to unpack .../26-busybox-static_1%3a1.37.0-7ubuntu1_amd64.deb ... 83s Unpacking busybox-static (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 83s Preparing to unpack .../27-libdrm-common_2.4.131-1_all.deb ... 83s Unpacking libdrm-common (2.4.131-1) over (2.4.129-1) ... 83s Preparing to unpack .../28-libdrm2_2.4.131-1_amd64.deb ... 83s Unpacking libdrm2:amd64 (2.4.131-1) over (2.4.129-1) ... 83s Preparing to unpack .../29-libgdbm6t64_1.26-1build1_amd64.deb ... 83s Unpacking libgdbm6t64:amd64 (1.26-1build1) over (1.26-1) ... 83s Preparing to unpack .../30-libgpm2_1.20.7-12build1_amd64.deb ... 83s Unpacking libgpm2:amd64 (1.20.7-12build1) over (1.20.7-12) ... 83s Preparing to unpack .../31-libjansson4_2.14-2build4_amd64.deb ... 83s Unpacking libjansson4:amd64 (2.14-2build4) over (2.14-2build3) ... 83s Preparing to unpack .../32-lsof_4.99.4+dfsg-2build2_amd64.deb ... 83s Unpacking lsof (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 83s Preparing to unpack .../33-liblsof0_4.99.4+dfsg-2build2_amd64.deb ... 83s Unpacking liblsof0 (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 83s Preparing to unpack .../34-libmaxminddb0_1.12.2-1build2_amd64.deb ... 83s Unpacking libmaxminddb0:amd64 (1.12.2-1build2) over (1.12.2-1build1) ... 83s Preparing to unpack .../35-libnetfilter-conntrack3_1.1.1-1_amd64.deb ... 83s Unpacking libnetfilter-conntrack3:amd64 (1.1.1-1) over (1.1.0-1build1) ... 83s Preparing to unpack .../36-libpcap0.8t64_1.10.5-2ubuntu3_amd64.deb ... 83s Unpacking libpcap0.8t64:amd64 (1.10.5-2ubuntu3) over (1.10.5-2ubuntu2) ... 83s Preparing to unpack .../37-pciutils_1%3a3.14.0-1build2_amd64.deb ... 83s Unpacking pciutils (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 83s Preparing to unpack .../38-libpci3_1%3a3.14.0-1build2_amd64.deb ... 83s Unpacking libpci3:amd64 (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 83s Preparing to unpack .../39-libsensors-config_1%3a3.6.2-2build1_all.deb ... 83s Unpacking libsensors-config (1:3.6.2-2build1) over (1:3.6.2-2) ... 83s Preparing to unpack .../40-libsensors5_1%3a3.6.2-2build1_amd64.deb ... 83s Unpacking libsensors5:amd64 (1:3.6.2-2build1) over (1:3.6.2-2) ... 83s Preparing to unpack .../41-libusb-1.0-0_2%3a1.0.29-2build1_amd64.deb ... 83s Unpacking libusb-1.0-0:amd64 (2:1.0.29-2build1) over (2:1.0.29-2) ... 83s Preparing to unpack .../42-libxau6_1%3a1.0.11-1build2_amd64.deb ... 83s Unpacking libxau6:amd64 (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 83s Preparing to unpack .../43-libxkbcommon0_1.13.1-1_amd64.deb ... 83s Unpacking libxkbcommon0:amd64 (1.13.1-1) over (1.12.3-1) ... 83s Preparing to unpack .../44-man-db_2.13.1-1build1_amd64.deb ... 83s Unpacking man-db (2.13.1-1build1) over (2.13.1-1) ... 83s Preparing to unpack .../45-tcpdump_4.99.5-2ubuntu3_amd64.deb ... 83s Unpacking tcpdump (4.99.5-2ubuntu3) over (4.99.5-2ubuntu2) ... 83s Preparing to unpack .../46-ubuntu-standard_1.564_amd64.deb ... 83s Unpacking ubuntu-standard (1.564) over (1.563) ... 83s Preparing to unpack .../47-3cpio_0.14.0-1ubuntu1_amd64.deb ... 83s Unpacking 3cpio (0.14.0-1ubuntu1) over (0.13.1-1ubuntu1) ... 83s Preparing to unpack .../48-bpftool_7.7.0+6.19.0-3.3_amd64.deb ... 83s Unpacking bpftool (7.7.0+6.19.0-3.3) over (7.7.0+6.18.0-9.9) ... 83s Preparing to unpack .../49-busybox-initramfs_1%3a1.37.0-7ubuntu1_amd64.deb ... 83s Unpacking busybox-initramfs (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 84s Preparing to unpack .../50-hwdata_0.394-1build1_all.deb ... 84s Unpacking hwdata (0.394-1build1) over (0.394-1) ... 84s Preparing to unpack .../51-pnp.ids_0.394-1build1_all.deb ... 84s Unpacking pnp.ids (0.394-1build1) over (0.394-1) ... 84s Preparing to unpack .../52-libdrm-amdgpu1_2.4.131-1_amd64.deb ... 84s Unpacking libdrm-amdgpu1:amd64 (2.4.131-1) over (2.4.129-1) ... 84s Preparing to unpack .../53-libevent-core-2.1-7t64_2.1.12-stable-10build2_amd64.deb ... 84s Unpacking libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) over (2.1.12-stable-10build1) ... 84s Preparing to unpack .../54-libgdbm-compat4t64_1.26-1build1_amd64.deb ... 84s Unpacking libgdbm-compat4t64:amd64 (1.26-1build1) over (1.26-1) ... 84s Preparing to unpack .../55-libgudev-1.0-0_1%3a238-7build1_amd64.deb ... 84s Unpacking libgudev-1.0-0:amd64 (1:238-7build1) over (1:238-7) ... 84s Preparing to unpack .../56-libnpth0t64_1.8-3build1_amd64.deb ... 84s Unpacking libnpth0t64:amd64 (1.8-3build1) over (1.8-3) ... 84s Preparing to unpack .../57-libonig5_6.9.10-1build1_amd64.deb ... 84s Unpacking libonig5:amd64 (6.9.10-1build1) over (6.9.10-1) ... 84s Selecting previously unselected package libpython3.14-minimal:amd64. 84s Preparing to unpack .../58-libpython3.14-minimal_3.14.2-1_amd64.deb ... 84s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 84s Selecting previously unselected package libpython3.14-stdlib:amd64. 84s Preparing to unpack .../59-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 84s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 84s Selecting previously unselected package libpython3.14:amd64. 84s Preparing to unpack .../60-libpython3.14_3.14.2-1_amd64.deb ... 84s Unpacking libpython3.14:amd64 (3.14.2-1) ... 84s Preparing to unpack .../61-libwrap0_7.6.q-36build2_amd64.deb ... 84s Unpacking libwrap0:amd64 (7.6.q-36build2) over (7.6.q-36build1) ... 84s Selecting previously unselected package linux-modules-6.19.0-3-generic. 84s Preparing to unpack .../62-linux-modules-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 84s Unpacking linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 85s Selecting previously unselected package linux-image-6.19.0-3-generic. 85s Preparing to unpack .../63-linux-image-6.19.0-3-generic_6.19.0-3.3+1_amd64.deb ... 85s Unpacking linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 85s Preparing to unpack .../64-amd64-microcode_3.20251202.1ubuntu1_amd64.deb ... 85s Unpacking amd64-microcode (3.20251202.1ubuntu1) over (3.20250708.1ubuntu1) ... 85s Preparing to unpack .../65-linux-generic_6.19.0-3.3_amd64.deb ... 85s Unpacking linux-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 85s Preparing to unpack .../66-linux-image-generic_6.19.0-3.3_amd64.deb ... 85s Unpacking linux-image-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 85s Preparing to unpack .../67-linux-virtual_6.19.0-3.3_amd64.deb ... 85s Unpacking linux-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 85s Preparing to unpack .../68-linux-image-virtual_6.19.0-3.3_amd64.deb ... 85s Unpacking linux-image-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 85s Preparing to unpack .../69-linux-headers-virtual_6.19.0-3.3_amd64.deb ... 85s Unpacking linux-headers-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 85s Selecting previously unselected package linux-headers-6.19.0-3. 85s Preparing to unpack .../70-linux-headers-6.19.0-3_6.19.0-3.3_all.deb ... 85s Unpacking linux-headers-6.19.0-3 (6.19.0-3.3) ... 86s Selecting previously unselected package linux-headers-6.19.0-3-generic. 86s Preparing to unpack .../71-linux-headers-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 86s Unpacking linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 87s Preparing to unpack .../72-linux-headers-generic_6.19.0-3.3_amd64.deb ... 87s Unpacking linux-headers-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 87s Preparing to unpack .../73-linux-perf_6.19.0-3.3_amd64.deb ... 87s Unpacking linux-perf (6.19.0-3.3) over (6.18.0-9.9) ... 87s Preparing to unpack .../74-linux-tools-common_6.19.0-3.3_all.deb ... 87s Unpacking linux-tools-common (6.19.0-3.3) over (6.18.0-9.9) ... 87s Selecting previously unselected package linux-tools-6.19.0-3. 87s Preparing to unpack .../75-linux-tools-6.19.0-3_6.19.0-3.3_amd64.deb ... 87s Unpacking linux-tools-6.19.0-3 (6.19.0-3.3) ... 87s Selecting previously unselected package linux-tools-6.19.0-3-generic. 87s Preparing to unpack .../76-linux-tools-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 87s Unpacking linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 87s Preparing to unpack .../77-patch_2.8-2build1_amd64.deb ... 87s Unpacking patch (2.8-2build1) over (2.8-2) ... 87s Preparing to unpack .../78-pollinate_4.33-4ubuntu5_all.deb ... 87s Unpacking pollinate (4.33-4ubuntu5) over (4.33-4ubuntu4) ... 87s Preparing to unpack .../79-python3-referencing_0.36.2-1ubuntu2_all.deb ... 87s Unpacking python3-referencing (0.36.2-1ubuntu2) over (0.36.2-1ubuntu1) ... 87s Preparing to unpack .../80-ubuntu-kernel-accessories_1.564_amd64.deb ... 87s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 87s Setting up 3cpio (0.14.0-1ubuntu1) ... 87s Setting up libxau6:amd64 (1:1.0.11-1build2) ... 87s Setting up libnpth0t64:amd64 (1.8-3build1) ... 87s Setting up libkeyutils1:amd64 (1.6.3-6ubuntu3) ... 87s Setting up ubuntu-kernel-accessories (1.564) ... 87s Setting up libgpm2:amd64 (1.20.7-12build1) ... 87s Setting up libgdbm6t64:amd64 (1.26-1build1) ... 87s Setting up linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 88s Setting up libgdbm-compat4t64:amd64 (1.26-1build1) ... 88s Setting up bpftool (7.7.0+6.19.0-3.3) ... 88s Setting up liblsof0 (4.99.4+dfsg-2build2) ... 88s Setting up libmaxminddb0:amd64 (1.12.2-1build2) ... 88s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 88s Setting up libsensors-config (1:3.6.2-2build1) ... 89s Setting up less (668-1build1) ... 89s Setting up linux-headers-6.19.0-3 (6.19.0-3.3) ... 89s Setting up libidn2-0:amd64 (2.3.8-4build1) ... 89s Setting up amd64-microcode (3.20251202.1ubuntu1) ... 89s amd64-microcode: microcode will be updated at next boot 89s Setting up man-db (2.13.1-1build1) ... 89s Updating database of manual pages ... 90s man-db.service is a disabled or a static unit not running, not starting it. 90s Setting up libjansson4:amd64 (2.14-2build4) ... 90s Setting up libglib2.0-0t64:amd64 (2.87.2-2) ... 90s No schema files found: doing nothing. 90s Setting up libglib2.0-data (2.87.2-2) ... 90s Setting up pollinate (4.33-4ubuntu5) ... 100s Setting up busybox-static (1:1.37.0-7ubuntu1) ... 100s Setting up libwrap0:amd64 (7.6.q-36build2) ... 100s Setting up linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 102s I: /boot/vmlinuz is now a symlink to vmlinuz-6.19.0-3-generic 102s I: /boot/initrd.img is now a symlink to initrd.img-6.19.0-3-generic 102s Setting up libdbus-1-3:amd64 (1.16.2-2ubuntu3) ... 102s Setting up shared-mime-info (2.4-5build3) ... 102s Setting up patch (2.8-2build1) ... 102s Setting up gir1.2-glib-2.0:amd64 (2.87.2-2) ... 102s Setting up libsensors5:amd64 (1:3.6.2-2build1) ... 102s Setting up busybox-initramfs (1:1.37.0-7ubuntu1) ... 102s Setting up lsof (4.99.4+dfsg-2build2) ... 102s Setting up libpci3:amd64 (1:3.14.0-1build2) ... 102s Setting up libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) ... 102s Setting up dmsetup (2:1.02.205-2ubuntu3) ... 102s Setting up libnetfilter-conntrack3:amd64 (1.1.1-1) ... 102s Setting up pnp.ids (0.394-1build1) ... 102s Setting up dbus-session-bus-common (1.16.2-2ubuntu3) ... 102s Setting up python3-linkify-it (2.0.3-1ubuntu3) ... 102s Setting up libpcap0.8t64:amd64 (1.10.5-2ubuntu3) ... 103s Setting up mawk (1.3.4.20260129-1) ... 103s Setting up libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) ... 103s Setting up libusb-1.0-0:amd64 (2:1.0.29-2build1) ... 103s Setting up libapt-pkg7.0:amd64 (3.1.15) ... 103s Setting up linux-image-virtual (6.19.0-3.3) ... 103s Setting up dbus-system-bus-common (1.16.2-2ubuntu3) ... 103s Setting up libbsd0:amd64 (0.12.2-2build2) ... 103s Setting up libdrm-common (2.4.131-1) ... 103s Setting up dbus-bin (1.16.2-2ubuntu3) ... 103s Setting up libonig5:amd64 (6.9.10-1build1) ... 103s Setting up libgudev-1.0-0:amd64 (1:238-7build1) ... 103s Setting up libbpf1:amd64 (1:1.6.2-1build1) ... 103s Setting up ethtool (1:6.15-3build1) ... 103s Setting up python3-referencing (0.36.2-1ubuntu2) ... 103s Setting up libxkbcommon0:amd64 (1.13.1-1) ... 103s Setting up linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 103s Setting up tcpdump (4.99.5-2ubuntu3) ... 103s Setting up linux-image-generic (6.19.0-3.3) ... 103s Setting up apt (3.1.15) ... 103s Setting up libgirepository-2.0-0:amd64 (2.87.2-2) ... 103s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 103s Setting up linux-headers-generic (6.19.0-3.3) ... 103s Setting up dbus-daemon (1.16.2-2ubuntu3) ... 103s Setting up gir1.2-girepository-3.0:amd64 (2.87.2-2) ... 103s Setting up hwdata (0.394-1build1) ... 103s Setting up dbus-user-session (1.16.2-2ubuntu3) ... 103s Setting up dbus (1.16.2-2ubuntu3) ... 103s A reboot is required to replace the running dbus-daemon. 103s Please reboot the system when convenient. 103s Setting up pciutils (1:3.14.0-1build2) ... 103s Setting up python3-markdown-it (3.0.0-3build1) ... 103s Setting up libdrm2:amd64 (2.4.131-1) ... 103s Setting up libpython3.14:amd64 (3.14.2-1) ... 103s Setting up linux-tools-common (6.19.0-3.3) ... 103s Setting up libdrm-amdgpu1:amd64 (2.4.131-1) ... 103s Setting up linux-headers-virtual (6.19.0-3.3) ... 103s Setting up linux-generic (6.19.0-3.3) ... 103s Setting up linux-tools-6.19.0-3 (6.19.0-3.3) ... 103s Setting up ubuntu-standard (1.564) ... 103s Setting up linux-virtual (6.19.0-3.3) ... 103s Setting up linux-perf (6.19.0-3.3) ... 103s Setting up linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 103s Processing triggers for debianutils (5.23.2build1) ... 104s Processing triggers for install-info (7.2-5) ... 104s Processing triggers for initramfs-tools (0.150ubuntu7) ... 104s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 108s Processing triggers for libc-bin (2.42-2ubuntu4) ... 108s Processing triggers for linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 108s /etc/kernel/postinst.d/initramfs-tools: 108s update-initramfs: Generating /boot/initrd.img-6.19.0-3-generic 112s /etc/kernel/postinst.d/zz-update-grub: 112s Sourcing file `/etc/default/grub' 112s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 112s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 112s Generating grub configuration file ... 112s Found linux image: /boot/vmlinuz-6.19.0-3-generic 112s Found initrd image: /boot/initrd.img-6.19.0-3-generic 112s Found linux image: /boot/vmlinuz-6.18.0-9-generic 112s Found initrd image: /boot/initrd.img-6.18.0-9-generic 112s Warning: os-prober will not be executed to detect other bootable partitions. 112s Systems on them will not be added to the GRUB boot configuration. 112s Check GRUB_DISABLE_OS_PROBER documentation entry. 112s Adding boot menu entry for UEFI Firmware Settings ... 112s done 112s autopkgtest [22:31:26]: upgrading testbed (apt dist-upgrade and autopurge) 113s Reading package lists... 113s Building dependency tree... 113s Reading state information... 113s Calculating upgrade... 113s The following package was automatically installed and is no longer required: 113s libpython3.13 113s Use 'sudo apt autoremove' to remove it. 113s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 114s Reading package lists... 114s Building dependency tree... 114s Reading state information... 114s Solving dependencies... 114s The following packages will be REMOVED: 114s libpython3.13* 114s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 114s After this operation, 7599 kB disk space will be freed. 114s (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 ... 125265 files and directories currently installed.) 114s Removing libpython3.13:amd64 (3.13.11-1) ... 114s Processing triggers for libc-bin (2.42-2ubuntu4) ... 114s autopkgtest [22:31:28]: rebooting testbed after setup commands that affected boot 143s autopkgtest [22:31:57]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 23 20:01:24 UTC 2026 145s autopkgtest [22:31:59]: @@@@@@@@@@@@@@@@@@@@ apt-source exchange-calendars 147s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/universe exchange-calendars 4.13.1-1 (dsc) [2395 B] 147s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/universe exchange-calendars 4.13.1-1 (tar) [4083 kB] 147s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/universe exchange-calendars 4.13.1-1 (diff) [3556 B] 147s gpgv: Signature made Sun Feb 8 12:26:48 2026 UTC 147s gpgv: using RSA key FB8ACFA78C726089C38AD0269605A1098C63B92A 147s gpgv: Can't check signature: No public key 147s dpkg-source: warning: cannot verify inline signature for ./exchange-calendars_4.13.1-1.dsc: no acceptable signature found 147s autopkgtest [22:32:01]: testing package exchange-calendars version 4.13.1-1 148s autopkgtest [22:32:02]: build not needed 149s autopkgtest [22:32:03]: test pybuild-autopkgtest: preparing testbed 150s Reading package lists... 150s Building dependency tree... 150s Reading state information... 150s Solving dependencies... 150s The following NEW packages will be installed: 150s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 150s cpp-15-x86-64-linux-gnu cpp-x86-64-linux-gnu debhelper debugedit 150s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 150s g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 150s gcc-15-x86-64-linux-gnu gcc-x86-64-linux-gnu gettext intltool-debian 150s libarchive-zip-perl libasan8 libblas3 libc-dev-bin libc6-dev libcc1-0 150s libcrypt-dev libdebhelper-perl libfile-stripnondeterminism-perl 150s libgcc-15-dev libgfortran5 libgomp1 libhwasan0 libisl23 libitm1 liblapack3 150s liblsan0 libmpc3 libquadmath0 libstdc++-15-dev libtool libtsan2 libubsan1 150s linux-libc-dev m4 po-debconf pybuild-plugin-autopkgtest 150s pybuild-plugin-pyproject python3-all python3-build 150s python3-exchange-calendars python3-hypothesis python3-iniconfig 150s python3-installer python3-korean-lunar-calendar python3-numpy 150s python3-numpy-dev python3-pandas python3-pandas-lib python3-pluggy 150s python3-pyluach python3-pyproject-hooks python3-pytest python3-pytz 150s python3-sortedcontainers python3-toolz python3-wheel python3.14 150s python3.14-minimal rpcsvc-proto 150s 0 upgraded, 75 newly installed, 0 to remove and 0 not upgraded. 150s Need to get 105 MB of archives. 150s After this operation, 407 MB of additional disk space will be used. 150s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy-dev amd64 1:2.3.5+ds-3 [147 kB] 150s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 libblas3 amd64 3.12.1-7ubuntu1 [260 kB] 150s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 libgfortran5 amd64 15.2.0-12ubuntu1 [939 kB] 150s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 liblapack3 amd64 3.12.1-7ubuntu1 [2739 kB] 151s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy amd64 1:2.3.5+ds-3 [8129 kB] 151s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 151s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 m4 amd64 1.4.21-1 [219 kB] 151s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 autoconf all 2.72-3.1ubuntu2 [384 kB] 151s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 autotools-dev all 20240727.1build1 [43.4 kB] 151s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 automake all 1:1.18.1-3build1 [582 kB] 151s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 autopoint all 0.23.2-1 [620 kB] 151s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 libc-dev-bin amd64 2.42-2ubuntu4 [23.3 kB] 152s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-libc-dev amd64 6.19.0-3.3 [1846 kB] 152s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 libcrypt-dev amd64 1:4.5.1-1 [122 kB] 152s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 rpcsvc-proto amd64 1.4.3-1build1 [68.3 kB] 152s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 libc6-dev amd64 2.42-2ubuntu4 [2207 kB] 152s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libisl23 amd64 0.27-1build1 [691 kB] 152s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libmpc3 amd64 1.3.1-2 [54.8 kB] 152s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15-x86-64-linux-gnu amd64 15.2.0-12ubuntu1 [12.9 MB] 152s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-15 amd64 15.2.0-12ubuntu1 [1034 B] 152s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [5746 B] 152s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 cpp amd64 4:15.2.0-4ubuntu1 [22.4 kB] 152s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 libcc1-0 amd64 15.2.0-12ubuntu1 [47.4 kB] 152s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-12ubuntu1 [151 kB] 152s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 libitm1 amd64 15.2.0-12ubuntu1 [29.5 kB] 152s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libasan8 amd64 15.2.0-12ubuntu1 [3070 kB] 152s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsan0 amd64 15.2.0-12ubuntu1 [1360 kB] 152s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libtsan2 amd64 15.2.0-12ubuntu1 [2757 kB] 152s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libubsan1 amd64 15.2.0-12ubuntu1 [1210 kB] 152s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 libhwasan0 amd64 15.2.0-12ubuntu1 [1685 kB] 152s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 libquadmath0 amd64 15.2.0-12ubuntu1 [153 kB] 152s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 libgcc-15-dev amd64 15.2.0-12ubuntu1 [2866 kB] 152s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15-x86-64-linux-gnu amd64 15.2.0-12ubuntu1 [25.4 MB] 153s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-15 amd64 15.2.0-12ubuntu1 [530 kB] 153s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [1208 B] 153s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 gcc amd64 4:15.2.0-4ubuntu1 [5024 B] 153s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libstdc++-15-dev amd64 15.2.0-12ubuntu1 [2553 kB] 153s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15-x86-64-linux-gnu amd64 15.2.0-12ubuntu1 [14.4 MB] 153s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-15 amd64 15.2.0-12ubuntu1 [25.3 kB] 153s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 g++-x86-64-linux-gnu amd64 4:15.2.0-4ubuntu1 [966 B] 153s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 g++ amd64 4:15.2.0-4ubuntu1 [1100 B] 153s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 build-essential amd64 12.12ubuntu2 [5256 B] 153s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libdebhelper-perl all 13.28ubuntu1 [97.4 kB] 153s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 libtool all 2.5.4-9 [169 kB] 153s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-autoreconf all 21+nmu1 [11.9 kB] 153s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 libarchive-zip-perl all 1.68-1 [90.2 kB] 153s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1build1 [20.6 kB] 153s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 dh-strip-nondeterminism all 1.15.0-1build1 [5110 B] 153s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 debugedit amd64 1:5.2-3build1 [48.8 kB] 153s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 dwz amd64 0.16-2build1 [113 kB] 153s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 gettext amd64 0.23.2-1 [1019 kB] 153s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 intltool-debian all 0.35.0+20060710.6build1 [24.1 kB] 153s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 po-debconf all 1.0.22 [215 kB] 153s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 debhelper all 13.28ubuntu1 [916 kB] 153s Get:55 http://ftpmaster.internal/ubuntu resolute/universe amd64 dh-python all 7.20260125 [122 kB] 153s Get:56 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-autopkgtest all 7.20260125 [1744 B] 153s Get:57 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 153s Get:58 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wheel all 0.46.1-2 [22.1 kB] 153s Get:59 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-build all 1.2.2-5 [30.9 kB] 153s Get:60 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 153s Get:61 http://ftpmaster.internal/ubuntu resolute/universe amd64 pybuild-plugin-pyproject all 7.20260125 [1712 B] 153s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 153s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-all amd64 3.13.9-3 [890 B] 153s Get:64 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-korean-lunar-calendar all 0.3.1-2build1 [9300 B] 153s Get:65 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 153s Get:66 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas-lib amd64 2.3.3+dfsg-3 [6929 kB] 154s Get:67 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas all 2.3.3+dfsg-3 [2948 kB] 154s Get:68 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyluach all 2.3.0-1 [24.2 kB] 154s Get:69 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-toolz all 1.1.0-1 [46.5 kB] 154s Get:70 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 python3-exchange-calendars all 4.13.1-1 [156 kB] 154s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sortedcontainers all 2.4.0-2build1 [27.1 kB] 154s Get:72 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-hypothesis all 6.150.0-1 [375 kB] 154s Get:73 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 154s Get:74 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 154s Get:75 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 154s Fetched 105 MB in 4s (28.4 MB/s) 154s Selecting previously unselected package python3-numpy-dev:amd64. 154s (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 ... 125261 files and directories currently installed.) 154s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_amd64.deb ... 154s Unpacking python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 154s Selecting previously unselected package libblas3:amd64. 154s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_amd64.deb ... 154s Unpacking libblas3:amd64 (3.12.1-7ubuntu1) ... 154s Selecting previously unselected package libgfortran5:amd64. 154s Preparing to unpack .../02-libgfortran5_15.2.0-12ubuntu1_amd64.deb ... 154s Unpacking libgfortran5:amd64 (15.2.0-12ubuntu1) ... 154s Selecting previously unselected package liblapack3:amd64. 154s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_amd64.deb ... 154s Unpacking liblapack3:amd64 (3.12.1-7ubuntu1) ... 154s Selecting previously unselected package python3-numpy. 154s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_amd64.deb ... 154s Unpacking python3-numpy (1:2.3.5+ds-3) ... 154s Selecting previously unselected package python3.14-minimal. 154s Preparing to unpack .../05-python3.14-minimal_3.14.2-1_amd64.deb ... 154s Unpacking python3.14-minimal (3.14.2-1) ... 154s Selecting previously unselected package m4. 154s Preparing to unpack .../06-m4_1.4.21-1_amd64.deb ... 154s Unpacking m4 (1.4.21-1) ... 154s Selecting previously unselected package autoconf. 154s Preparing to unpack .../07-autoconf_2.72-3.1ubuntu2_all.deb ... 154s Unpacking autoconf (2.72-3.1ubuntu2) ... 154s Selecting previously unselected package autotools-dev. 154s Preparing to unpack .../08-autotools-dev_20240727.1build1_all.deb ... 154s Unpacking autotools-dev (20240727.1build1) ... 154s Selecting previously unselected package automake. 154s Preparing to unpack .../09-automake_1%3a1.18.1-3build1_all.deb ... 154s Unpacking automake (1:1.18.1-3build1) ... 154s Selecting previously unselected package autopoint. 154s Preparing to unpack .../10-autopoint_0.23.2-1_all.deb ... 154s Unpacking autopoint (0.23.2-1) ... 154s Selecting previously unselected package libc-dev-bin. 154s Preparing to unpack .../11-libc-dev-bin_2.42-2ubuntu4_amd64.deb ... 154s Unpacking libc-dev-bin (2.42-2ubuntu4) ... 154s Selecting previously unselected package linux-libc-dev:amd64. 154s Preparing to unpack .../12-linux-libc-dev_6.19.0-3.3_amd64.deb ... 154s Unpacking linux-libc-dev:amd64 (6.19.0-3.3) ... 154s Selecting previously unselected package libcrypt-dev:amd64. 154s Preparing to unpack .../13-libcrypt-dev_1%3a4.5.1-1_amd64.deb ... 154s Unpacking libcrypt-dev:amd64 (1:4.5.1-1) ... 154s Selecting previously unselected package rpcsvc-proto. 154s Preparing to unpack .../14-rpcsvc-proto_1.4.3-1build1_amd64.deb ... 154s Unpacking rpcsvc-proto (1.4.3-1build1) ... 155s Selecting previously unselected package libc6-dev:amd64. 155s Preparing to unpack .../15-libc6-dev_2.42-2ubuntu4_amd64.deb ... 155s Unpacking libc6-dev:amd64 (2.42-2ubuntu4) ... 155s Selecting previously unselected package libisl23:amd64. 155s Preparing to unpack .../16-libisl23_0.27-1build1_amd64.deb ... 155s Unpacking libisl23:amd64 (0.27-1build1) ... 155s Selecting previously unselected package libmpc3:amd64. 155s Preparing to unpack .../17-libmpc3_1.3.1-2_amd64.deb ... 155s Unpacking libmpc3:amd64 (1.3.1-2) ... 155s Selecting previously unselected package cpp-15-x86-64-linux-gnu. 155s Preparing to unpack .../18-cpp-15-x86-64-linux-gnu_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking cpp-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package cpp-15. 155s Preparing to unpack .../19-cpp-15_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking cpp-15 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package cpp-x86-64-linux-gnu. 155s Preparing to unpack .../20-cpp-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 155s Unpacking cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package cpp. 155s Preparing to unpack .../21-cpp_4%3a15.2.0-4ubuntu1_amd64.deb ... 155s Unpacking cpp (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package libcc1-0:amd64. 155s Preparing to unpack .../22-libcc1-0_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libcc1-0:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libgomp1:amd64. 155s Preparing to unpack .../23-libgomp1_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libgomp1:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libitm1:amd64. 155s Preparing to unpack .../24-libitm1_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libitm1:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libasan8:amd64. 155s Preparing to unpack .../25-libasan8_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libasan8:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package liblsan0:amd64. 155s Preparing to unpack .../26-liblsan0_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking liblsan0:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libtsan2:amd64. 155s Preparing to unpack .../27-libtsan2_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libtsan2:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libubsan1:amd64. 155s Preparing to unpack .../28-libubsan1_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libubsan1:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libhwasan0:amd64. 155s Preparing to unpack .../29-libhwasan0_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libhwasan0:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libquadmath0:amd64. 155s Preparing to unpack .../30-libquadmath0_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libquadmath0:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package libgcc-15-dev:amd64. 155s Preparing to unpack .../31-libgcc-15-dev_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libgcc-15-dev:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package gcc-15-x86-64-linux-gnu. 155s Preparing to unpack .../32-gcc-15-x86-64-linux-gnu_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking gcc-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package gcc-15. 155s Preparing to unpack .../33-gcc-15_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking gcc-15 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package gcc-x86-64-linux-gnu. 155s Preparing to unpack .../34-gcc-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 155s Unpacking gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package gcc. 155s Preparing to unpack .../35-gcc_4%3a15.2.0-4ubuntu1_amd64.deb ... 155s Unpacking gcc (4:15.2.0-4ubuntu1) ... 155s Selecting previously unselected package libstdc++-15-dev:amd64. 155s Preparing to unpack .../36-libstdc++-15-dev_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking libstdc++-15-dev:amd64 (15.2.0-12ubuntu1) ... 155s Selecting previously unselected package g++-15-x86-64-linux-gnu. 155s Preparing to unpack .../37-g++-15-x86-64-linux-gnu_15.2.0-12ubuntu1_amd64.deb ... 155s Unpacking g++-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 156s Selecting previously unselected package g++-15. 156s Preparing to unpack .../38-g++-15_15.2.0-12ubuntu1_amd64.deb ... 156s Unpacking g++-15 (15.2.0-12ubuntu1) ... 156s Selecting previously unselected package g++-x86-64-linux-gnu. 156s Preparing to unpack .../39-g++-x86-64-linux-gnu_4%3a15.2.0-4ubuntu1_amd64.deb ... 156s Unpacking g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 156s Selecting previously unselected package g++. 156s Preparing to unpack .../40-g++_4%3a15.2.0-4ubuntu1_amd64.deb ... 156s Unpacking g++ (4:15.2.0-4ubuntu1) ... 156s Selecting previously unselected package build-essential. 156s Preparing to unpack .../41-build-essential_12.12ubuntu2_amd64.deb ... 156s Unpacking build-essential (12.12ubuntu2) ... 156s Selecting previously unselected package libdebhelper-perl. 156s Preparing to unpack .../42-libdebhelper-perl_13.28ubuntu1_all.deb ... 156s Unpacking libdebhelper-perl (13.28ubuntu1) ... 156s Selecting previously unselected package libtool. 156s Preparing to unpack .../43-libtool_2.5.4-9_all.deb ... 156s Unpacking libtool (2.5.4-9) ... 156s Selecting previously unselected package dh-autoreconf. 156s Preparing to unpack .../44-dh-autoreconf_21+nmu1_all.deb ... 156s Unpacking dh-autoreconf (21+nmu1) ... 156s Selecting previously unselected package libarchive-zip-perl. 156s Preparing to unpack .../45-libarchive-zip-perl_1.68-1_all.deb ... 156s Unpacking libarchive-zip-perl (1.68-1) ... 156s Selecting previously unselected package libfile-stripnondeterminism-perl. 156s Preparing to unpack .../46-libfile-stripnondeterminism-perl_1.15.0-1build1_all.deb ... 156s Unpacking libfile-stripnondeterminism-perl (1.15.0-1build1) ... 156s Selecting previously unselected package dh-strip-nondeterminism. 156s Preparing to unpack .../47-dh-strip-nondeterminism_1.15.0-1build1_all.deb ... 156s Unpacking dh-strip-nondeterminism (1.15.0-1build1) ... 156s Selecting previously unselected package debugedit. 156s Preparing to unpack .../48-debugedit_1%3a5.2-3build1_amd64.deb ... 156s Unpacking debugedit (1:5.2-3build1) ... 156s Selecting previously unselected package dwz. 156s Preparing to unpack .../49-dwz_0.16-2build1_amd64.deb ... 156s Unpacking dwz (0.16-2build1) ... 156s Selecting previously unselected package gettext. 156s Preparing to unpack .../50-gettext_0.23.2-1_amd64.deb ... 156s Unpacking gettext (0.23.2-1) ... 156s Selecting previously unselected package intltool-debian. 156s Preparing to unpack .../51-intltool-debian_0.35.0+20060710.6build1_all.deb ... 156s Unpacking intltool-debian (0.35.0+20060710.6build1) ... 156s Selecting previously unselected package po-debconf. 156s Preparing to unpack .../52-po-debconf_1.0.22_all.deb ... 156s Unpacking po-debconf (1.0.22) ... 156s Selecting previously unselected package debhelper. 156s Preparing to unpack .../53-debhelper_13.28ubuntu1_all.deb ... 156s Unpacking debhelper (13.28ubuntu1) ... 156s Selecting previously unselected package dh-python. 156s Preparing to unpack .../54-dh-python_7.20260125_all.deb ... 156s Unpacking dh-python (7.20260125) ... 156s Selecting previously unselected package pybuild-plugin-autopkgtest. 156s Preparing to unpack .../55-pybuild-plugin-autopkgtest_7.20260125_all.deb ... 156s Unpacking pybuild-plugin-autopkgtest (7.20260125) ... 156s Selecting previously unselected package python3-pyproject-hooks. 156s Preparing to unpack .../56-python3-pyproject-hooks_1.2.0-1_all.deb ... 156s Unpacking python3-pyproject-hooks (1.2.0-1) ... 156s Selecting previously unselected package python3-wheel. 156s Preparing to unpack .../57-python3-wheel_0.46.1-2_all.deb ... 156s Unpacking python3-wheel (0.46.1-2) ... 156s Selecting previously unselected package python3-build. 156s Preparing to unpack .../58-python3-build_1.2.2-5_all.deb ... 156s Unpacking python3-build (1.2.2-5) ... 156s Selecting previously unselected package python3-installer. 156s Preparing to unpack .../59-python3-installer_0.7.0+dfsg1-3_all.deb ... 156s Unpacking python3-installer (0.7.0+dfsg1-3) ... 156s Selecting previously unselected package pybuild-plugin-pyproject. 156s Preparing to unpack .../60-pybuild-plugin-pyproject_7.20260125_all.deb ... 156s Unpacking pybuild-plugin-pyproject (7.20260125) ... 156s Selecting previously unselected package python3.14. 156s Preparing to unpack .../61-python3.14_3.14.2-1_amd64.deb ... 156s Unpacking python3.14 (3.14.2-1) ... 156s Selecting previously unselected package python3-all. 156s Preparing to unpack .../62-python3-all_3.13.9-3_amd64.deb ... 156s Unpacking python3-all (3.13.9-3) ... 156s Selecting previously unselected package python3-korean-lunar-calendar. 156s Preparing to unpack .../63-python3-korean-lunar-calendar_0.3.1-2build1_all.deb ... 156s Unpacking python3-korean-lunar-calendar (0.3.1-2build1) ... 156s Selecting previously unselected package python3-pytz. 156s Preparing to unpack .../64-python3-pytz_2025.2-5_all.deb ... 156s Unpacking python3-pytz (2025.2-5) ... 156s Selecting previously unselected package python3-pandas-lib:amd64. 156s Preparing to unpack .../65-python3-pandas-lib_2.3.3+dfsg-3_amd64.deb ... 156s Unpacking python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 156s Selecting previously unselected package python3-pandas. 156s Preparing to unpack .../66-python3-pandas_2.3.3+dfsg-3_all.deb ... 156s Unpacking python3-pandas (2.3.3+dfsg-3) ... 156s Selecting previously unselected package python3-pyluach. 156s Preparing to unpack .../67-python3-pyluach_2.3.0-1_all.deb ... 156s Unpacking python3-pyluach (2.3.0-1) ... 156s Selecting previously unselected package python3-toolz. 156s Preparing to unpack .../68-python3-toolz_1.1.0-1_all.deb ... 156s Unpacking python3-toolz (1.1.0-1) ... 156s Selecting previously unselected package python3-exchange-calendars. 156s Preparing to unpack .../69-python3-exchange-calendars_4.13.1-1_all.deb ... 156s Unpacking python3-exchange-calendars (4.13.1-1) ... 156s Selecting previously unselected package python3-sortedcontainers. 156s Preparing to unpack .../70-python3-sortedcontainers_2.4.0-2build1_all.deb ... 156s Unpacking python3-sortedcontainers (2.4.0-2build1) ... 156s Selecting previously unselected package python3-hypothesis. 156s Preparing to unpack .../71-python3-hypothesis_6.150.0-1_all.deb ... 156s Unpacking python3-hypothesis (6.150.0-1) ... 156s Selecting previously unselected package python3-iniconfig. 156s Preparing to unpack .../72-python3-iniconfig_2.1.0-2_all.deb ... 156s Unpacking python3-iniconfig (2.1.0-2) ... 156s Selecting previously unselected package python3-pluggy. 156s Preparing to unpack .../73-python3-pluggy_1.6.0-2_all.deb ... 156s Unpacking python3-pluggy (1.6.0-2) ... 156s Selecting previously unselected package python3-pytest. 156s Preparing to unpack .../74-python3-pytest_9.0.2-2_all.deb ... 156s Unpacking python3-pytest (9.0.2-2) ... 156s Setting up dh-python (7.20260125) ... 156s Setting up python3-iniconfig (2.1.0-2) ... 157s Setting up python3-pyluach (2.3.0-1) ... 157s Setting up libarchive-zip-perl (1.68-1) ... 157s Setting up libdebhelper-perl (13.28ubuntu1) ... 157s Setting up linux-libc-dev:amd64 (6.19.0-3.3) ... 157s Setting up m4 (1.4.21-1) ... 157s Setting up python3-pytz (2025.2-5) ... 157s Setting up python3-sortedcontainers (2.4.0-2build1) ... 157s Setting up libgomp1:amd64 (15.2.0-12ubuntu1) ... 157s Setting up python3-wheel (0.46.1-2) ... 157s Setting up autotools-dev (20240727.1build1) ... 157s Setting up libblas3:amd64 (3.12.1-7ubuntu1) ... 157s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 157s Setting up python3-korean-lunar-calendar (0.3.1-2build1) ... 157s Setting up rpcsvc-proto (1.4.3-1build1) ... 157s Setting up python3-pyproject-hooks (1.2.0-1) ... 157s Setting up libquadmath0:amd64 (15.2.0-12ubuntu1) ... 157s Setting up libmpc3:amd64 (1.3.1-2) ... 157s Setting up python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 157s Setting up autopoint (0.23.2-1) ... 157s Setting up python3-installer (0.7.0+dfsg1-3) ... 157s Setting up libgfortran5:amd64 (15.2.0-12ubuntu1) ... 157s Setting up autoconf (2.72-3.1ubuntu2) ... 157s Setting up python3-pluggy (1.6.0-2) ... 158s Setting up libubsan1:amd64 (15.2.0-12ubuntu1) ... 158s Setting up dwz (0.16-2build1) ... 158s Setting up libhwasan0:amd64 (15.2.0-12ubuntu1) ... 158s Setting up libcrypt-dev:amd64 (1:4.5.1-1) ... 158s Setting up libasan8:amd64 (15.2.0-12ubuntu1) ... 158s Setting up debugedit (1:5.2-3build1) ... 158s Setting up python3-toolz (1.1.0-1) ... 158s Setting up libtsan2:amd64 (15.2.0-12ubuntu1) ... 158s Setting up libisl23:amd64 (0.27-1build1) ... 158s Setting up python3-build (1.2.2-5) ... 158s Setting up libc-dev-bin (2.42-2ubuntu4) ... 158s Setting up python3.14-minimal (3.14.2-1) ... 158s Setting up libcc1-0:amd64 (15.2.0-12ubuntu1) ... 158s Setting up liblsan0:amd64 (15.2.0-12ubuntu1) ... 158s Setting up libitm1:amd64 (15.2.0-12ubuntu1) ... 158s Setting up automake (1:1.18.1-3build1) ... 158s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 158s Setting up libfile-stripnondeterminism-perl (1.15.0-1build1) ... 158s Setting up liblapack3:amd64 (3.12.1-7ubuntu1) ... 158s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 158s Setting up gettext (0.23.2-1) ... 158s Setting up libgcc-15-dev:amd64 (15.2.0-12ubuntu1) ... 158s Setting up pybuild-plugin-pyproject (7.20260125) ... 158s Setting up python3-pytest (9.0.2-2) ... 159s Setting up python3-hypothesis (6.150.0-1) ... 159s Setting up cpp-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 159s Setting up intltool-debian (0.35.0+20060710.6build1) ... 159s Setting up gcc-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 159s Setting up python3-numpy (1:2.3.5+ds-3) ... 161s Setting up dh-strip-nondeterminism (1.15.0-1build1) ... 161s Setting up cpp-15 (15.2.0-12ubuntu1) ... 161s Setting up libc6-dev:amd64 (2.42-2ubuntu4) ... 161s Setting up python3.14 (3.14.2-1) ... 162s Setting up cpp-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 162s Setting up gcc-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 162s Setting up po-debconf (1.0.22) ... 162s Setting up python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 162s Setting up python3-all (3.13.9-3) ... 162s Setting up gcc-15 (15.2.0-12ubuntu1) ... 162s Setting up libstdc++-15-dev:amd64 (15.2.0-12ubuntu1) ... 162s Setting up python3-pandas (2.3.3+dfsg-3) ... 167s Setting up cpp (4:15.2.0-4ubuntu1) ... 167s Setting up g++-15-x86-64-linux-gnu (15.2.0-12ubuntu1) ... 167s Setting up libtool (2.5.4-9) ... 167s Setting up python3-exchange-calendars (4.13.1-1) ... 168s Setting up gcc (4:15.2.0-4ubuntu1) ... 168s Setting up dh-autoreconf (21+nmu1) ... 168s Setting up g++-x86-64-linux-gnu (4:15.2.0-4ubuntu1) ... 168s Setting up g++-15 (15.2.0-12ubuntu1) ... 168s Setting up debhelper (13.28ubuntu1) ... 168s Setting up g++ (4:15.2.0-4ubuntu1) ... 168s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 168s Setting up build-essential (12.12ubuntu2) ... 168s Setting up pybuild-plugin-autopkgtest (7.20260125) ... 168s Processing triggers for man-db (2.13.1-1build1) ... 168s Processing triggers for install-info (7.2-5) ... 169s Processing triggers for libc-bin (2.42-2ubuntu4) ... 169s Processing triggers for systemd (259-1ubuntu3) ... 169s autopkgtest [22:32:23]: test pybuild-autopkgtest: pybuild-autopkgtest 169s autopkgtest [22:32:23]: test pybuild-autopkgtest: [----------------------- 170s pybuild-autopkgtest 170s I: pybuild base:384: cd /tmp/autopkgtest.XDrXDq/autopkgtest_tmp/build; python3.14 -m pytest -k "not test_testbase_integrity and not exchange_calendars.utils.pandas_utils.indexes_union and not test_indices_fuzz" 170s ============================= test session starts ============================== 170s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 170s cachedir: .pytest_cache 170s hypothesis profile 'default' 170s rootdir: /tmp/autopkgtest.XDrXDq/autopkgtest_tmp/build 170s configfile: pyproject.toml 170s testpaths: tests, exchange_calendars/utils/pandas_utils.py 170s plugins: hypothesis-6.150.0, typeguard-4.4.4 171s collecting ... collected 9759 items / 74 deselected / 9685 selected 171s 171s tests/test_aixk_calendar.py::TestAIXKCalendar::test_base_integrity PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calculated_against_csv PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_start_end PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_invalid_input PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_min PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_max PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sanity_check_session_lengths PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_specification PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_daylight_savings PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_opens_closes_break_starts_ends PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[both] PASSED [ 0%] 172s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[both] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[both] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[both] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[neither] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[right] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[left] PASSED [ 0%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[left] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[both] PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_has_break PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_regular_holidays_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_holidays_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample_time PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays_time PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample_time PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_open_close_break_start_end PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_has_break PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_next_prev_session PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_offset PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_session PASSED [ 1%] 173s tests/test_aixk_calendar.py::TestAIXKCalendar::test_date_to_session PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_open_close PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_in_range PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_has_break PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_window PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_distance PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_trading_index PASSED [ 1%] 174s tests/test_aixk_calendar.py::TestAIXKCalendar::test_deprecated PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_base_integrity PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calculated_against_csv PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_start_end PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_invalid_input PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_min PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_max PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sanity_check_session_lengths PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_specification PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_daylight_savings PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_opens_closes_break_starts_ends PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[left] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-next] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-next] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-next] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-next] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-previous] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-previous] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-none] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-none] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-none] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-none] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[right] PASSED [ 1%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[right] PASSED [ 2%] 174s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[left] PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_has_break PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_regular_holidays_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_holidays_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample_time PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays_time PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample_time PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_open_close_break_start_end PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_has_break PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_next_prev_session PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_offset PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_session PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_date_to_session PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_open_close PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_in_range PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_has_break PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_window PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_distance PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_trading_index PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_deprecated PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_day PASSED [ 2%] 175s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_minute PASSED [ 2%] 175s tests/test_asex_calendar.py::TestASEXCalendar::test_base_integrity PASSED [ 2%] 175s tests/test_asex_calendar.py::TestASEXCalendar::test_calculated_against_csv PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_start_end PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_invalid_input PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_min PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_max PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_sanity_check_session_lengths PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_specification PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_daylight_savings PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_opens_closes_break_starts_ends PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[both] PASSED [ 2%] 176s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[both] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-next] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-next] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[left] PASSED [ 2%] 177s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[left] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[left] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-next] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[right] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-none] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-none] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-none] PASSED [ 2%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-none] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-previous] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-next] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 3%] 178s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[neither] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[right] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[left] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[both] PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_has_break PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_regular_holidays_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_non_holidays_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample_time PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays_time PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample_time PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_session_open_close_break_start_end PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_session_has_break PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_next_prev_session PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_session_offset PASSED [ 3%] 179s tests/test_asex_calendar.py::TestASEXCalendar::test_is_session PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_date_to_session PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_open_close PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_in_range PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_has_break PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_window PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_distance PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_trading_index PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_deprecated PASSED [ 3%] 180s tests/test_asex_calendar.py::TestASEXCalendar::test_close_time_change PASSED [ 3%] 180s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_base_integrity PASSED [ 3%] 181s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calculated_against_csv PASSED [ 3%] 181s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_start_end PASSED [ 3%] 181s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_invalid_input PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_min PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_max PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sanity_check_session_lengths PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_specification PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_daylight_savings PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_opens_closes_break_starts_ends PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[both] PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[both] PASSED [ 3%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[both] PASSED [ 4%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[both] PASSED [ 4%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[both] PASSED [ 4%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[both] PASSED [ 4%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[both] PASSED [ 4%] 182s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[both] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[both] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[both] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-next] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-next] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[left] PASSED [ 4%] 183s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[left] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[left] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-next] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[right] PASSED [ 4%] 184s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[right] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[right] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-previous] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-next] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[neither] PASSED [ 4%] 185s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[neither] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[right] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[left] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[both] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[both] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[both] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[both] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[both] PASSED [ 4%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[both] PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[both] PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[both] PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[both] PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[both] PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_has_break PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_regular_holidays_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_holidays_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample_time PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays_time PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample_time PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_open_close_break_start_end PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_has_break PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_next_prev_session PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_offset PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_session PASSED [ 5%] 186s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_date_to_session PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_open_close PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_in_range PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_has_break PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_window PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_distance PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_trading_index PASSED [ 5%] 187s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_deprecated PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_add_new_aliases PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_aliases_to_names PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_allow_alias_override_with_force PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_follow_alias_chain PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_cache PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_kwargs PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_names PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_names_to_aliases PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_alias_that_already_exists PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_cyclic_aliases PASSED [ 5%] 187s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_remove_aliases PASSED [ 5%] 187s tests/test_calendar_helpers.py::test_constants PASSED [ 5%] 187s tests/test_calendar_helpers.py::test_is_date PASSED [ 5%] 187s tests/test_calendar_helpers.py::test_is_utc PASSED [ 5%] 187s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-True] PASSED [ 5%] 188s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-False] PASSED [ 5%] 188s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-True] PASSED [ 5%] 188s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-False] PASSED [ 5%] 188s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-True] PASSED [ 5%] 188s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-False] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-True] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-False] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-True] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-False] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-True] PASSED [ 5%] 189s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-False] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-True] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-False] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[left] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[right] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[both] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[neither] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[2021-13-13] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[malformed1] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[not a timestamp] PASSED [ 5%] 190s tests/test_calendar_helpers.py::test_parse_timestamp_error_oob PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[2021-06-02 23:00] PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult1] PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult2] PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[2021-06-05] PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult1] PASSED [ 5%] 191s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult2] PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult3] PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date_or_minute_oob PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date[2021-06-05] PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date[date_mult1] PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date[date_mult2] PASSED [ 5%] 192s tests/test_calendar_helpers.py::test_parse_date[date_mult3] PASSED [ 5%] 193s tests/test_calendar_helpers.py::test_parse_date_errors PASSED [ 5%] 193s tests/test_calendar_helpers.py::test_parse_session PASSED [ 5%] 193s tests/test_calendar_helpers.py::test_parse_trading_minute PASSED [ 5%] 195s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] PASSED [ 5%] 195s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XLON] PASSED [ 5%] 198s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] PASSED [ 5%] 198s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XHKG] PASSED [ 5%] 199s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XTAE] PASSED [ 5%] 199s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XTAE] PASSED [ 5%] 202s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] PASSED [ 5%] 202s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[CMES] PASSED [ 5%] 202s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[24/7] PASSED [ 5%] 203s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[24/7] PASSED [ 5%] 203s tests/test_calendar_helpers.py::TestTradingIndex::test_for_empty_with_neither_fuzz PASSED [ 5%] 203s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[XHKG] PASSED [ 5%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[24/7] PASSED [ 5%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[CMES] PASSED [ 5%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-True] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-False] PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_force PASSED [ 6%] 204s tests/test_calendar_helpers.py::TestTradingIndex::test_ignore_breaks PASSED [ 6%] 205s tests/test_calendar_helpers.py::TestTradingIndex::test_align PASSED [ 6%] 205s tests/test_calendar_helpers.py::TestTradingIndex::test_align_overlap PASSED [ 6%] 205s tests/test_calendar_helpers.py::TestTradingIndex::test_start_end_times PASSED [ 6%] 205s tests/test_calendar_helpers.py::TestTradingIndex::test_parsing_errors PASSED [ 6%] 205s tests/test_cmes_calendar.py::TestCMESCalendar::test_base_integrity PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_calculated_against_csv PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_start_end PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_invalid_input PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_min PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_max PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_sanity_check_session_lengths PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_specification PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_daylight_savings PASSED [ 6%] 206s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_opens_closes_break_starts_ends PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[left] PASSED [ 6%] 207s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[left] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[left] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[left] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-next] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-next] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 6%] 208s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-previous] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-previous] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-none] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-none] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[right] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[left] PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_has_break PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_regular_holidays_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_holidays_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample_time PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays_time PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample_time PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_open_close_break_start_end PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_has_break PASSED [ 6%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_next_prev_session PASSED [ 7%] 209s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_offset PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_session PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_date_to_session PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_open_close PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_in_range PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_has_break PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_window PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_distance PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_trading_index PASSED [ 7%] 210s tests/test_cmes_calendar.py::TestCMESCalendar::test_deprecated PASSED [ 7%] 210s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar PASSED [ 7%] 210s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar_type PASSED [ 7%] 210s tests/test_exchange_calendar.py::TestCalendarRegistration::test_both_places_are_checked PASSED [ 7%] 210s tests/test_exchange_calendar.py::TestCalendarRegistration::test_force_registration PASSED [ 7%] 222s tests/test_exchange_calendar.py::test_default_calendars PASSED [ 7%] 222s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19-0-time_offset0-tz0-2016-07-19 9:31] PASSED [ 7%] 222s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19--1-time_offset1-tz1-2016-07-18 17:01] PASSED [ 7%] 222s tests/test_exchange_calendar.py::test_days_at_time[2004-04-05--1-time_offset2-tz2-2004-04-04 17:01] PASSED [ 7%] 222s tests/test_exchange_calendar.py::test_days_at_time[1990-04-02--1-time_offset3-tz3-1990-04-01 19:01] PASSED [ 7%] 222s tests/test_iepa_calendar.py::TestIEPACalendar::test_base_integrity PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_calculated_against_csv PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_start_end PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_invalid_input PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_min PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_max PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_sanity_check_session_lengths PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_specification PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_daylight_savings PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_opens_closes_break_starts_ends PASSED [ 7%] 223s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[both] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-next] PASSED [ 7%] 224s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-next] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-next] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-next] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[left] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-previous] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-previous] PASSED [ 7%] 225s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-previous] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-next] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-next] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[right] PASSED [ 7%] 226s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[right] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[right] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-previous] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-next] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[neither] PASSED [ 7%] 227s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[neither] PASSED [ 7%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[neither] PASSED [ 7%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[neither] PASSED [ 7%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[neither] PASSED [ 7%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[neither] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[right] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[left] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[both] PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_has_break PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_regular_holidays_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_holidays_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample_time PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays_time PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample_time PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_open_close_break_start_end PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_has_break PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_next_prev_session PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_offset PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_session PASSED [ 8%] 228s tests/test_iepa_calendar.py::TestIEPACalendar::test_date_to_session PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_open_close PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_in_range PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_has_break PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_window PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_distance PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_trading_index PASSED [ 8%] 229s tests/test_iepa_calendar.py::TestIEPACalendar::test_deprecated PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_base_integrity PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calculated_against_csv PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_start_end PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_invalid_input PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_min PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_max PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sanity_check_session_lengths PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_specification PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_daylight_savings PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_opens_closes_break_starts_ends PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[left] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-next] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-next] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-next] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-next] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[right] PASSED [ 8%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-previous] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-none] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-none] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-none] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-none] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[right] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[left] PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_has_break PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_regular_holidays_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_holidays_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample_time PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays_time PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample_time PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_open_close_break_start_end PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_has_break PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_next_prev_session PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_offset PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_session PASSED [ 9%] 229s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_date_to_session PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_open_close PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_in_range PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_has_break PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_window PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_distance PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_trading_index PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_deprecated PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday PASSED [ 9%] 230s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday_minute PASSED [ 9%] 230s tests/test_xams_calendar.py::TestXAMSCalendar::test_base_integrity PASSED [ 9%] 230s tests/test_xams_calendar.py::TestXAMSCalendar::test_calculated_against_csv PASSED [ 9%] 230s tests/test_xams_calendar.py::TestXAMSCalendar::test_start_end PASSED [ 9%] 230s tests/test_xams_calendar.py::TestXAMSCalendar::test_invalid_input PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_min PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_max PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_sanity_check_session_lengths PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_specification PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_daylight_savings PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_opens_closes_break_starts_ends PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[both] PASSED [ 9%] 231s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[both] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[both] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-next] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-next] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[left] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-previous] PASSED [ 9%] 232s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 9%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-previous] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-next] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[right] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-previous] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-next] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 10%] 233s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[neither] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[right] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[left] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[both] PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_has_break PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_regular_holidays_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_holidays_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample_time PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays_time PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample_time PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_open_close_break_start_end PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_has_break PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_next_prev_session PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_offset PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_session PASSED [ 10%] 234s tests/test_xams_calendar.py::TestXAMSCalendar::test_date_to_session PASSED [ 10%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_open_close PASSED [ 10%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_in_range PASSED [ 10%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_has_break PASSED [ 11%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_window PASSED [ 11%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_distance PASSED [ 11%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_trading_index PASSED [ 11%] 235s tests/test_xams_calendar.py::TestXAMSCalendar::test_deprecated PASSED [ 11%] 235s tests/test_xasx_calendar.py::TestXASXCalendar::test_base_integrity PASSED [ 11%] 236s tests/test_xasx_calendar.py::TestXASXCalendar::test_calculated_against_csv PASSED [ 11%] 236s tests/test_xasx_calendar.py::TestXASXCalendar::test_start_end PASSED [ 11%] 236s tests/test_xasx_calendar.py::TestXASXCalendar::test_invalid_input PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_min PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_max PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_sanity_check_session_lengths PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_specification PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_daylight_savings PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_opens_closes_break_starts_ends PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[both] PASSED [ 11%] 237s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[both] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[both] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[left] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 11%] 238s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[right] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-previous] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-next] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[neither] PASSED [ 11%] 239s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[neither] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[right] PASSED [ 11%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[right] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[right] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[right] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[left] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[both] PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_has_break PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_regular_holidays_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_holidays_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample_time PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays_time PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample_time PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_open_close_break_start_end PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_has_break PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_next_prev_session PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_offset PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_session PASSED [ 12%] 240s tests/test_xasx_calendar.py::TestXASXCalendar::test_date_to_session PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_open_close PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_in_range PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_has_break PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_window PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_distance PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_trading_index PASSED [ 12%] 241s tests/test_xasx_calendar.py::TestXASXCalendar::test_deprecated PASSED [ 12%] 241s tests/test_xbda_calendar.py::TestXBDACalendar::test_base_integrity PASSED [ 12%] 242s tests/test_xbda_calendar.py::TestXBDACalendar::test_calculated_against_csv PASSED [ 12%] 242s tests/test_xbda_calendar.py::TestXBDACalendar::test_start_end PASSED [ 12%] 242s tests/test_xbda_calendar.py::TestXBDACalendar::test_invalid_input PASSED [ 12%] 242s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_min PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_max PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_sanity_check_session_lengths PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_specification PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_daylight_savings PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_opens_closes_break_starts_ends PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[both] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[left] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-next] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[right] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[right] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[right] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[right] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[right] PASSED [ 12%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[right] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[right] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[right] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[right] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[right] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-previous] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-next] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[neither] PASSED [ 13%] 243s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[neither] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[right] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[left] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[both] PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_has_break PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_regular_holidays_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_holidays_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample_time PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays_time PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample_time PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_open_close_break_start_end PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_has_break PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_next_prev_session PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_offset PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_session PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_date_to_session PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_open_close PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_in_range PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_has_break PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_window PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_distance PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_trading_index PASSED [ 13%] 244s tests/test_xbda_calendar.py::TestXBDACalendar::test_deprecated PASSED [ 13%] 244s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_base_integrity PASSED [ 13%] 244s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calculated_against_csv PASSED [ 13%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_start_end PASSED [ 13%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_invalid_input PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_bound_min PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_bound_max PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sanity_check_session_lengths PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_adhoc_holidays_specification PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_daylight_savings PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[both] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-next] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-next] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[left] PASSED [ 14%] 245s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-next] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[left] PASSED [ 14%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[left] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[left] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[left] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_has_break PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_regular_holidays_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_adhoc_holidays_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_holidays_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_late_opens_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_sample_time PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_weekdays PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_weekdays_time PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_early_closes_sample PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_early_closes_sample_time PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_late_opens PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_open_close_break_start_end PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_has_break PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_next_prev_session PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_offset PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_session PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_date_to_session PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_open_close PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_in_range PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_has_break PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_window PASSED [ 15%] 246s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_distance PASSED [ 15%] 247s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_trading_index PASSED [ 15%] 247s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_deprecated PASSED [ 15%] 247s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_base_integrity PASSED [ 15%] 247s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calculated_against_csv PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_start_end PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_invalid_input PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_min PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_max PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sanity_check_session_lengths PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_specification PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_daylight_savings PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_opens_closes_break_starts_ends PASSED [ 15%] 248s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[both] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-next] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-next] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[left] PASSED [ 15%] 249s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[left] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[left] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-next] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[right] PASSED [ 15%] 250s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[right] PASSED [ 15%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[right] PASSED [ 15%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-none] PASSED [ 15%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 15%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-none] PASSED [ 15%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-none] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-none] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-previous] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-next] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[neither] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[right] PASSED [ 16%] 251s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[right] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[right] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[right] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[left] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[both] PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_has_break PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_regular_holidays_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_holidays_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample_time PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays_time PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample_time PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_open_close_break_start_end PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_has_break PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_next_prev_session PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_offset PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_session PASSED [ 16%] 252s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_date_to_session PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_open_close PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_in_range PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_has_break PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_window PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_distance PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_trading_index PASSED [ 16%] 253s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_deprecated PASSED [ 16%] 253s tests/test_xbog_calendar.py::TestXBOGCalendar::test_base_integrity PASSED [ 16%] 254s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calculated_against_csv PASSED [ 16%] 254s tests/test_xbog_calendar.py::TestXBOGCalendar::test_start_end PASSED [ 16%] 254s tests/test_xbog_calendar.py::TestXBOGCalendar::test_invalid_input PASSED [ 16%] 254s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_min PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_max PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sanity_check_session_lengths PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_specification PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_daylight_savings PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_opens_closes_break_starts_ends PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[both] PASSED [ 16%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[both] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-next] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-next] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[left] PASSED [ 17%] 255s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[left] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[left] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[left] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-next] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[right] PASSED [ 17%] 256s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-previous] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-next] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[neither] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[right] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[left] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[both] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[both] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[both] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[both] PASSED [ 17%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[both] PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_has_break PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_regular_holidays_sample PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_sample PASSED [ 18%] 257s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_holidays_sample PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens_sample PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample_time PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays_time PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample_time PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_open_close_break_start_end PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_has_break PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_next_prev_session PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_offset PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_session PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_date_to_session PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_open_close PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_in_range PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_has_break PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_window PASSED [ 18%] 258s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_distance PASSED [ 18%] 259s tests/test_xbog_calendar.py::TestXBOGCalendar::test_trading_index PASSED [ 18%] 259s tests/test_xbog_calendar.py::TestXBOGCalendar::test_deprecated PASSED [ 18%] 259s tests/test_xbom_calendar.py::TestXBOMCalendar::test_base_integrity PASSED [ 18%] 261s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv PASSED [ 18%] 261s tests/test_xbom_calendar.py::TestXBOMCalendar::test_start_end PASSED [ 18%] 261s tests/test_xbom_calendar.py::TestXBOMCalendar::test_invalid_input PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_min PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_max PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sanity_check_session_lengths PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_specification PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_daylight_savings PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_opens_closes_break_starts_ends PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[both] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-next] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-next] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[left] PASSED [ 18%] 262s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[left] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[left] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-next] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[right] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-none] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-none] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-none] PASSED [ 18%] 263s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-none] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-previous] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-next] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 18%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[neither] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[right] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[left] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[both] PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_has_break PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_regular_holidays_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_holidays_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample_time PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays_time PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample_time PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_open_close_break_start_end PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_has_break PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_next_prev_session PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_offset PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_session PASSED [ 19%] 264s tests/test_xbom_calendar.py::TestXBOMCalendar::test_date_to_session PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_open_close PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_in_range PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_has_break PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_window PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_distance PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_trading_index PASSED [ 19%] 265s tests/test_xbom_calendar.py::TestXBOMCalendar::test_deprecated PASSED [ 19%] 265s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_base_integrity PASSED [ 19%] 265s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calculated_against_csv PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_start_end PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_invalid_input PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_bound_min PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_bound_max PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sanity_check_session_lengths PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_adhoc_holidays_specification PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_daylight_savings PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[both] PASSED [ 19%] 266s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[both] PASSED [ 19%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_has_break PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_regular_holidays_sample PASSED [ 20%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_adhoc_holidays_sample PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_holidays_sample PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_late_opens_sample PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_sample PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_sample_time PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_weekdays PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_weekdays_time PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_early_closes_sample PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_early_closes_sample_time PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_late_opens PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_open_close_break_start_end PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_has_break PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_next_prev_session PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_offset PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_session PASSED [ 21%] 267s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_date_to_session PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_open_close PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_in_range PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_has_break PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_window PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_distance PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_trading_index PASSED [ 21%] 268s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_deprecated PASSED [ 21%] 268s tests/test_xbru_calendar.py::TestXBRUCalendar::test_base_integrity PASSED [ 21%] 268s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calculated_against_csv PASSED [ 21%] 268s tests/test_xbru_calendar.py::TestXBRUCalendar::test_start_end PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_invalid_input PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_min PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_max PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sanity_check_session_lengths PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_specification PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_daylight_savings PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_opens_closes_break_starts_ends PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[both] PASSED [ 21%] 269s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[both] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[both] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[both] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-next] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-next] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[left] PASSED [ 21%] 270s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[left] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[left] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-next] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[right] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-next] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 21%] 271s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[neither] PASSED [ 21%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[neither] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[right] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[left] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[both] PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_has_break PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_regular_holidays_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_holidays_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample_time PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays_time PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample_time PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_open_close_break_start_end PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_has_break PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_next_prev_session PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_offset PASSED [ 22%] 272s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_session PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_date_to_session PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_open_close PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_in_range PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_has_break PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_window PASSED [ 22%] 273s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_distance PASSED [ 22%] 274s tests/test_xbru_calendar.py::TestXBRUCalendar::test_trading_index PASSED [ 22%] 274s tests/test_xbru_calendar.py::TestXBRUCalendar::test_deprecated PASSED [ 22%] 274s tests/test_xbse_calendar.py::TestXBSECalendar::test_base_integrity PASSED [ 22%] 274s tests/test_xbse_calendar.py::TestXBSECalendar::test_calculated_against_csv PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_start_end PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_invalid_input PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_min PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_max PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_sanity_check_session_lengths PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_specification PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_daylight_savings PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_opens_closes_break_starts_ends PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[both] PASSED [ 22%] 275s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[both] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[both] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-next] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-next] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 22%] 276s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[left] PASSED [ 22%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[left] PASSED [ 22%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[left] PASSED [ 22%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[left] PASSED [ 22%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[left] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-next] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[right] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 23%] 277s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-previous] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-next] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[neither] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[right] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[left] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[both] PASSED [ 23%] 278s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[both] PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[both] PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[both] PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[both] PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_has_break PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_regular_holidays_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_holidays_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample_time PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays_time PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample_time PASSED [ 23%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_open_close_break_start_end PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_has_break PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_next_prev_session PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_offset PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_session PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_date_to_session PASSED [ 24%] 279s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_open_close PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_in_range PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_has_break PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_window PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_distance PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_trading_index PASSED [ 24%] 280s tests/test_xbse_calendar.py::TestXBSECalendar::test_deprecated PASSED [ 24%] 280s tests/test_xbud_calendar.py::TestXBUDCalendar::test_base_integrity PASSED [ 24%] 280s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calculated_against_csv PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_start_end PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_invalid_input PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_min PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_max PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sanity_check_session_lengths PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_specification PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_daylight_savings PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_opens_closes_break_starts_ends PASSED [ 24%] 281s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[both] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-next] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-next] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-next] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-next] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[left] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[left] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[left] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[left] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[left] PASSED [ 24%] 282s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[left] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[left] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[left] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[left] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[left] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-next] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-next] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[right] PASSED [ 24%] 283s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[right] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[right] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-previous] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-next] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[neither] PASSED [ 24%] 284s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[neither] PASSED [ 24%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[neither] PASSED [ 24%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[neither] PASSED [ 24%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[neither] PASSED [ 24%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[neither] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[neither] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[neither] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[right] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[left] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[both] PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_has_break PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_regular_holidays_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_holidays_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample_time PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays_time PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample_time PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_open_close_break_start_end PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_has_break PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_next_prev_session PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_offset PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_session PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_date_to_session PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_open_close PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_in_range PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_has_break PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_window PASSED [ 25%] 285s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_distance PASSED [ 25%] 286s tests/test_xbud_calendar.py::TestXBUDCalendar::test_trading_index PASSED [ 25%] 286s tests/test_xbud_calendar.py::TestXBUDCalendar::test_deprecated PASSED [ 25%] 286s tests/test_xbue_calendar.py::TestXBUECalendar::test_base_integrity PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_calculated_against_csv PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_start_end PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_invalid_input PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_min PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_max PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_sanity_check_session_lengths PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_specification PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_daylight_savings PASSED [ 25%] 287s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_opens_closes_break_starts_ends PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[both] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-next] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-next] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-next] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-next] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[left] PASSED [ 25%] 288s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[left] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[left] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[left] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-previous] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-previous] PASSED [ 25%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-previous] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-next] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-next] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[right] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-none] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-none] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-none] PASSED [ 26%] 289s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-none] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-none] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-none] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-none] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-previous] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-next] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[neither] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[right] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[left] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[both] PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_has_break PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_regular_holidays_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_holidays_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample_time PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays_time PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample_time PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_open_close_break_start_end PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_has_break PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_next_prev_session PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_offset PASSED [ 26%] 290s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_session PASSED [ 26%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_date_to_session PASSED [ 26%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_open_close PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_in_range PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_has_break PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_window PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_distance PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_trading_index PASSED [ 27%] 291s tests/test_xbue_calendar.py::TestXBUECalendar::test_deprecated PASSED [ 27%] 291s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_base_integrity PASSED [ 27%] 292s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calculated_against_csv PASSED [ 27%] 292s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_start_end PASSED [ 27%] 292s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_invalid_input PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_min PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_max PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sanity_check_session_lengths PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_specification PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_daylight_savings PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_opens_closes_break_starts_ends PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[both] PASSED [ 27%] 293s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[both] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[both] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-next] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-next] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[left] PASSED [ 27%] 294s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[left] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[left] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-next] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[right] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-next] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 27%] 295s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[neither] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[right] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[right] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[right] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[right] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[right] PASSED [ 27%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[right] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[right] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[right] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[right] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[right] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[left] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[both] PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_has_break PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_regular_holidays_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_holidays_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample_time PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays_time PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample_time PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_open_close_break_start_end PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_has_break PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_next_prev_session PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_offset PASSED [ 28%] 296s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_session PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_date_to_session PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_open_close PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_in_range PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_has_break PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_window PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_distance PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_trading_index PASSED [ 28%] 297s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_deprecated PASSED [ 28%] 297s tests/test_xcse_calendar.py::TestXCSECalendar::test_base_integrity PASSED [ 28%] 298s tests/test_xcse_calendar.py::TestXCSECalendar::test_calculated_against_csv PASSED [ 28%] 298s tests/test_xcse_calendar.py::TestXCSECalendar::test_start_end PASSED [ 28%] 298s tests/test_xcse_calendar.py::TestXCSECalendar::test_invalid_input PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_min PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_max PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_sanity_check_session_lengths PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_specification PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_daylight_savings PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_opens_closes_break_starts_ends PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[both] PASSED [ 28%] 299s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[both] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[both] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[both] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-next] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-next] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[left] PASSED [ 28%] 300s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[left] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[left] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-next] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[right] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[right] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[right] PASSED [ 28%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[right] PASSED [ 29%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[right] PASSED [ 29%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[right] PASSED [ 29%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[right] PASSED [ 29%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[right] PASSED [ 29%] 301s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[right] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[right] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-previous] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-next] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[neither] PASSED [ 29%] 302s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[neither] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[right] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[left] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[both] PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_has_break PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_regular_holidays_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_holidays_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample_time PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays_time PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample_time PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_open_close_break_start_end PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_has_break PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_next_prev_session PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_offset PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_session PASSED [ 29%] 303s tests/test_xcse_calendar.py::TestXCSECalendar::test_date_to_session PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_open_close PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_in_range PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_has_break PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_window PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_distance PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_trading_index PASSED [ 29%] 304s tests/test_xcse_calendar.py::TestXCSECalendar::test_deprecated PASSED [ 29%] 304s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_base_integrity PASSED [ 29%] 304s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calculated_against_csv PASSED [ 29%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_start_end PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_invalid_input PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_min PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_max PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sanity_check_session_lengths PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_specification PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_daylight_savings PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[both] PASSED [ 30%] 305s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[both] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[both] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[both] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[left] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[right] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 30%] 306s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[left] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[left] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[left] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 30%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_has_break PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_regular_holidays_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_holidays_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample_time PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays_time PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample_time PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_open_close_break_start_end PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_has_break PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_next_prev_session PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_offset PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_session PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_date_to_session PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_open_close PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_in_range PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_has_break PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_window PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_distance PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_trading_index PASSED [ 31%] 307s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_deprecated PASSED [ 31%] 307s tests/test_xdub_calendar.py::TestXDUBCalendar::test_base_integrity PASSED [ 31%] 308s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calculated_against_csv PASSED [ 31%] 308s tests/test_xdub_calendar.py::TestXDUBCalendar::test_start_end PASSED [ 31%] 308s tests/test_xdub_calendar.py::TestXDUBCalendar::test_invalid_input PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_min PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_max PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sanity_check_session_lengths PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_specification PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_daylight_savings PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_opens_closes_break_starts_ends PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[both] PASSED [ 31%] 309s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[both] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[both] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-next] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-next] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-next] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-next] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[left] PASSED [ 31%] 310s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[left] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-next] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-next] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[right] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-none] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-none] PASSED [ 31%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-previous] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-next] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 32%] 311s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[neither] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[right] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[left] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[both] PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_has_break PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_regular_holidays_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_holidays_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample_time PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays_time PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample_time PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_open_close_break_start_end PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_has_break PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_next_prev_session PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_offset PASSED [ 32%] 312s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_session PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_date_to_session PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_open_close PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_in_range PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_has_break PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_window PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_distance PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_trading_index PASSED [ 32%] 313s tests/test_xdub_calendar.py::TestXDUBCalendar::test_deprecated PASSED [ 32%] 313s tests/test_xdus_calendar.py::TestXDUSCalendar::test_base_integrity PASSED [ 32%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calculated_against_csv PASSED [ 32%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_start_end PASSED [ 32%] 314s tests/test_xdus_calendar.py::TestXDUSCalendar::test_invalid_input PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_min PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_max PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sanity_check_session_lengths PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_specification PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_daylight_savings PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_opens_closes_break_starts_ends PASSED [ 32%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[both] PASSED [ 33%] 315s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[both] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[both] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[both] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-next] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-next] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[left] PASSED [ 33%] 316s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[left] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[left] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[left] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-next] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[right] PASSED [ 33%] 317s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[right] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[right] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[right] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-previous] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-next] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 33%] 318s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[neither] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[right] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[left] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[both] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[both] PASSED [ 33%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[both] PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_has_break PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_regular_holidays_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_holidays_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample_time PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays_time PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample_time PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_open_close_break_start_end PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_has_break PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_next_prev_session PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_offset PASSED [ 34%] 319s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_session PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_date_to_session PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_open_close PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_in_range PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_has_break PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_window PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_distance PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_trading_index PASSED [ 34%] 320s tests/test_xdus_calendar.py::TestXDUSCalendar::test_deprecated PASSED [ 34%] 320s tests/test_xeee_calendar.py::TestXEEECalendar::test_base_integrity PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_calculated_against_csv PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_start_end PASSED [ 34%] 321s tests/test_xeee_calendar.py::TestXEEECalendar::test_invalid_input PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_min PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_max PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_sanity_check_session_lengths PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_specification PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_daylight_savings PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_opens_closes_break_starts_ends PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[both] PASSED [ 34%] 322s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[both] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[both] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-next] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-next] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-next] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-next] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[left] PASSED [ 34%] 323s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[left] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[left] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-next] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-next] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[right] PASSED [ 34%] 324s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[right] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[right] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-previous] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 34%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-next] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[neither] PASSED [ 35%] 325s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[neither] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[right] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[left] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[both] PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_has_break PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_regular_holidays_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_holidays_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample_time PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays_time PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample_time PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_open_close_break_start_end PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_has_break PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_next_prev_session PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_offset PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_session PASSED [ 35%] 326s tests/test_xeee_calendar.py::TestXEEECalendar::test_date_to_session PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_open_close PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_in_range PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_has_break PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_window PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_distance PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_trading_index PASSED [ 35%] 327s tests/test_xeee_calendar.py::TestXEEECalendar::test_deprecated PASSED [ 35%] 327s tests/test_xetr_calendar.py::TestXETRCalendar::test_base_integrity PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_calculated_against_csv PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_start_end PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_invalid_input PASSED [ 35%] 328s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_min PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_max PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_sanity_check_session_lengths PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_specification PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_daylight_savings PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_opens_closes_break_starts_ends PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[both] PASSED [ 35%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[both] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[both] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-next] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-next] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-next] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-next] PASSED [ 36%] 329s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[left] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-next] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-next] PASSED [ 36%] 330s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[right] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-previous] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-next] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[neither] PASSED [ 36%] 331s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[neither] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[right] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[left] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[both] PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_has_break PASSED [ 36%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_regular_holidays_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_holidays_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample_time PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays_time PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample_time PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_open_close_break_start_end PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_has_break PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_next_prev_session PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_offset PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_session PASSED [ 37%] 332s tests/test_xetr_calendar.py::TestXETRCalendar::test_date_to_session PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_open_close PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_in_range PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_has_break PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_window PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_distance PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_trading_index PASSED [ 37%] 333s tests/test_xetr_calendar.py::TestXETRCalendar::test_deprecated PASSED [ 37%] 333s tests/test_xfra_calendar.py::TestXFRACalendar::test_base_integrity PASSED [ 37%] 334s tests/test_xfra_calendar.py::TestXFRACalendar::test_calculated_against_csv PASSED [ 37%] 334s tests/test_xfra_calendar.py::TestXFRACalendar::test_start_end PASSED [ 37%] 334s tests/test_xfra_calendar.py::TestXFRACalendar::test_invalid_input PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_min PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_max PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_sanity_check_session_lengths PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_specification PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_daylight_savings PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_opens_closes_break_starts_ends PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[both] PASSED [ 37%] 335s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[both] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[both] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-next] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-next] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[left] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-previous] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-previous] PASSED [ 37%] 336s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-previous] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-next] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[right] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-previous] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-next] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 37%] 337s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[neither] PASSED [ 37%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[neither] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[right] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[left] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[both] PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_has_break PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_regular_holidays_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_holidays_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample_time PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays_time PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample_time PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_open_close_break_start_end PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_has_break PASSED [ 38%] 338s tests/test_xfra_calendar.py::TestXFRACalendar::test_next_prev_session PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_offset PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_session PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_date_to_session PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_open_close PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_in_range PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_has_break PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_window PASSED [ 38%] 339s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_distance PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_trading_index PASSED [ 38%] 340s tests/test_xfra_calendar.py::TestXFRACalendar::test_deprecated PASSED [ 38%] 340s tests/test_xham_calendar.py::TestXHAMCalendar::test_base_integrity PASSED [ 38%] 340s tests/test_xham_calendar.py::TestXHAMCalendar::test_calculated_against_csv PASSED [ 38%] 340s tests/test_xham_calendar.py::TestXHAMCalendar::test_start_end PASSED [ 38%] 340s tests/test_xham_calendar.py::TestXHAMCalendar::test_invalid_input PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_min PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_max PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_sanity_check_session_lengths PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_specification PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_daylight_savings PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_opens_closes_break_starts_ends PASSED [ 38%] 341s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[both] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-next] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-next] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 38%] 342s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[left] PASSED [ 38%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[left] PASSED [ 38%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[left] PASSED [ 38%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[left] PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[left] PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[left] PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[left] PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[left] PASSED [ 39%] 343s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[left] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[left] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-next] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[right] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-next] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 39%] 344s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[neither] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[right] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[left] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[both] PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_has_break PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_regular_holidays_sample PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_sample PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_holidays_sample PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens_sample PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample_time PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays_time PASSED [ 39%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample_time PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_open_close_break_start_end PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_has_break PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_next_prev_session PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_offset PASSED [ 40%] 345s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_session PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_date_to_session PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_open_close PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_in_range PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_has_break PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_window PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_distance PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_trading_index PASSED [ 40%] 346s tests/test_xham_calendar.py::TestXHAMCalendar::test_deprecated PASSED [ 40%] 346s tests/test_xhel_calendar.py::TestXHELCalendar::test_base_integrity PASSED [ 40%] 347s tests/test_xhel_calendar.py::TestXHELCalendar::test_calculated_against_csv PASSED [ 40%] 347s tests/test_xhel_calendar.py::TestXHELCalendar::test_start_end PASSED [ 40%] 347s tests/test_xhel_calendar.py::TestXHELCalendar::test_invalid_input PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_min PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_max PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_sanity_check_session_lengths PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_specification PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_daylight_savings PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_opens_closes_break_starts_ends PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[both] PASSED [ 40%] 348s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[both] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[both] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[left] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-next] PASSED [ 40%] 349s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[right] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-previous] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-next] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[neither] PASSED [ 40%] 350s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[neither] PASSED [ 40%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[neither] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[neither] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[neither] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[neither] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[neither] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[right] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[left] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[both] PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_has_break PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_regular_holidays_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_holidays_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample_time PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays_time PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample_time PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_open_close_break_start_end PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_has_break PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_next_prev_session PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_offset PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_session PASSED [ 41%] 351s tests/test_xhel_calendar.py::TestXHELCalendar::test_date_to_session PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_open_close PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_in_range PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_has_break PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_window PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_distance PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_trading_index PASSED [ 41%] 352s tests/test_xhel_calendar.py::TestXHELCalendar::test_deprecated PASSED [ 41%] 352s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_base_integrity PASSED [ 41%] 353s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calculated_against_csv PASSED [ 41%] 353s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_start_end PASSED [ 41%] 353s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_invalid_input PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_min PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_max PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sanity_check_session_lengths PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_specification PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_daylight_savings PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_opens_closes_break_starts_ends PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[both] PASSED [ 41%] 354s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[both] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[both] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[both] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-next] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-next] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 41%] 355s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[left] PASSED [ 41%] 356s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[left] PASSED [ 41%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[left] PASSED [ 41%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-previous] PASSED [ 41%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-previous] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-previous] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-next] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[right] PASSED [ 42%] 357s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[right] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[right] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[right] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-none] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-none] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-none] PASSED [ 42%] 358s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-none] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-previous] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-next] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[neither] PASSED [ 42%] 359s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[neither] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[right] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[left] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[both] PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_has_break PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_regular_holidays_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_holidays_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample_time PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays_time PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample PASSED [ 42%] 360s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample_time PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_open_close_break_start_end PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_has_break PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_next_prev_session PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_offset PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_session PASSED [ 42%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_date_to_session PASSED [ 43%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_open_close PASSED [ 43%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_in_range PASSED [ 43%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_has_break PASSED [ 43%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_window PASSED [ 43%] 361s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_distance PASSED [ 43%] 362s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_trading_index PASSED [ 43%] 362s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_deprecated PASSED [ 43%] 362s tests/test_xice_calendar.py::TestXICECalendar::test_base_integrity PASSED [ 43%] 362s tests/test_xice_calendar.py::TestXICECalendar::test_calculated_against_csv PASSED [ 43%] 362s tests/test_xice_calendar.py::TestXICECalendar::test_start_end PASSED [ 43%] 362s tests/test_xice_calendar.py::TestXICECalendar::test_invalid_input PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_bound_min PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_bound_max PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_sanity_check_session_lengths PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_specification PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_daylight_savings PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_sessions PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_opens_closes_break_starts_ends PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[both] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[left] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-next] PASSED [ 43%] 363s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-previous] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-next] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[neither] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[right] PASSED [ 43%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[right] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[left] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[both] PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_has_break PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_regular_holidays_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_non_holidays_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample_time PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays_time PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample_time PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_open_close_break_start_end PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_has_break PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_next_prev_session PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_session_offset PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_is_session PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_date_to_session PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_open_close PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_in_range PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_has_break PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_window PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_distance PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_trading_index PASSED [ 44%] 364s tests/test_xice_calendar.py::TestXICECalendar::test_deprecated PASSED [ 44%] 364s tests/test_xidx_calendar.py::TestXIDXCalendar::test_base_integrity PASSED [ 44%] 365s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calculated_against_csv PASSED [ 44%] 365s tests/test_xidx_calendar.py::TestXIDXCalendar::test_start_end PASSED [ 44%] 365s tests/test_xidx_calendar.py::TestXIDXCalendar::test_invalid_input PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_min PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_max PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sanity_check_session_lengths PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_specification PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_daylight_savings PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_opens_closes_break_starts_ends PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[both] PASSED [ 44%] 366s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[both] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[both] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-next] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-next] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[left] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-previous] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-previous] PASSED [ 44%] 367s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-previous] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-next] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[right] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[right] PASSED [ 44%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[right] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-previous] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-next] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 45%] 368s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[neither] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[right] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[left] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[both] PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_has_break PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_regular_holidays_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_holidays_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample_time PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays_time PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample_time PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_open_close_break_start_end PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_has_break PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_next_prev_session PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_offset PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_session PASSED [ 45%] 369s tests/test_xidx_calendar.py::TestXIDXCalendar::test_date_to_session PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_open_close PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_in_range PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_has_break PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_window PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_distance PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_index PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_deprecated PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_days PASSED [ 45%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 46%] 370s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2018-holidays1] PASSED [ 46%] 370s tests/test_xist_calendar.py::TestXISTCalendar::test_base_integrity PASSED [ 46%] 371s tests/test_xist_calendar.py::TestXISTCalendar::test_calculated_against_csv PASSED [ 46%] 371s tests/test_xist_calendar.py::TestXISTCalendar::test_start_end PASSED [ 46%] 371s tests/test_xist_calendar.py::TestXISTCalendar::test_invalid_input PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_min PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_max PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_sanity_check_session_lengths PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_specification PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_daylight_savings PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_opens_closes_break_starts_ends PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[both] PASSED [ 46%] 372s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[both] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[both] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[left] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-next] PASSED [ 46%] 373s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[right] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-previous] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-next] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[neither] PASSED [ 46%] 374s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[neither] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[right] PASSED [ 46%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[right] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[left] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[both] PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_has_break PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_regular_holidays_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_non_holidays_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample_time PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays_time PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample_time PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_session_open_close_break_start_end PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_session_has_break PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_next_prev_session PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_session_offset PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_is_session PASSED [ 47%] 375s tests/test_xist_calendar.py::TestXISTCalendar::test_date_to_session PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_open_close PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_in_range PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_has_break PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_window PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_distance PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_trading_index PASSED [ 47%] 376s tests/test_xist_calendar.py::TestXISTCalendar::test_deprecated PASSED [ 47%] 376s tests/test_xjse_calendar.py::TestXJSECalendar::test_base_integrity PASSED [ 47%] 377s tests/test_xjse_calendar.py::TestXJSECalendar::test_calculated_against_csv PASSED [ 47%] 377s tests/test_xjse_calendar.py::TestXJSECalendar::test_start_end PASSED [ 47%] 377s tests/test_xjse_calendar.py::TestXJSECalendar::test_invalid_input PASSED [ 47%] 377s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_min PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_max PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_sanity_check_session_lengths PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_specification PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_daylight_savings PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_opens_closes_break_starts_ends PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[both] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-next] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-next] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 47%] 378s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[left] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-next] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[right] PASSED [ 47%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[right] PASSED [ 48%] 379s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-previous] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-next] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[neither] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[right] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[left] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[both] PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_has_break PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_regular_holidays_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_holidays_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample_time PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays_time PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample_time PASSED [ 48%] 380s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_open_close_break_start_end PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_has_break PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_next_prev_session PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_offset PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_session PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_date_to_session PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_open_close PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_in_range PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_has_break PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_window PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_distance PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_trading_index PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_deprecated PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_no_weekend_sessions PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2019-holidays0] PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2018-holidays1] PASSED [ 48%] 381s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2016-holidays2] PASSED [ 48%] 381s tests/test_xkar_calendar.py::TestXKARCalendar::test_base_integrity PASSED [ 48%] 382s tests/test_xkar_calendar.py::TestXKARCalendar::test_calculated_against_csv PASSED [ 48%] 382s tests/test_xkar_calendar.py::TestXKARCalendar::test_start_end PASSED [ 49%] 382s tests/test_xkar_calendar.py::TestXKARCalendar::test_invalid_input PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_min PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_max PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_sanity_check_session_lengths PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_specification PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_daylight_savings PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_opens_closes_break_starts_ends PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[both] PASSED [ 49%] 383s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[both] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[both] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-next] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-next] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[left] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-previous] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-previous] PASSED [ 49%] 384s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-previous] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-next] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[right] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-previous] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-next] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 49%] 385s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[neither] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[right] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[left] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[left] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[left] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[left] PASSED [ 49%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[left] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[both] PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_has_break PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_regular_holidays_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_holidays_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample_time PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays_time PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample_time PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_open_close_break_start_end PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_has_break PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_next_prev_session PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_offset PASSED [ 50%] 386s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_session PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_date_to_session PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_open_close PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_in_range PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_has_break PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_window PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_distance PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_trading_index PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_deprecated PASSED [ 50%] 387s tests/test_xkar_calendar.py::TestXKARCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 50%] 387s tests/test_xkls_calendar.py::TestXKLSCalendar::test_base_integrity PASSED [ 50%] 388s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calculated_against_csv PASSED [ 50%] 388s tests/test_xkls_calendar.py::TestXKLSCalendar::test_start_end PASSED [ 50%] 388s tests/test_xkls_calendar.py::TestXKLSCalendar::test_invalid_input PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_min PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_max PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sanity_check_session_lengths PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_specification PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_daylight_savings PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_opens_closes_break_starts_ends PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[both] PASSED [ 50%] 389s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[both] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[both] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-next] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-next] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[left] PASSED [ 50%] 390s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[left] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[left] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-next] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[right] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-none] PASSED [ 50%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 51%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-none] PASSED [ 51%] 391s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-none] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-none] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-previous] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-next] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[neither] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[right] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[left] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[left] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[left] PASSED [ 51%] 392s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[left] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[both] PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_has_break PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_regular_holidays_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_holidays_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample_time PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays_time PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample_time PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_open_close_break_start_end PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_has_break PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_next_prev_session PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_offset PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_session PASSED [ 51%] 393s tests/test_xkls_calendar.py::TestXKLSCalendar::test_date_to_session PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_open_close PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_in_range PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_has_break PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_window PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_distance PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_trading_index PASSED [ 51%] 394s tests/test_xkls_calendar.py::TestXKLSCalendar::test_deprecated PASSED [ 51%] 394s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_base_integrity PASSED [ 51%] 400s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv PASSED [ 51%] 402s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end PASSED [ 51%] 402s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_invalid_input PASSED [ 51%] 405s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sanity_check_session_lengths PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_specification PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_daylight_savings PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions PASSED [ 51%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_opens_closes_break_starts_ends PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[both] PASSED [ 52%] 406s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[both] PASSED [ 52%] 407s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[both] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[both] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-next] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-next] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[left] PASSED [ 52%] 408s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[left] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[left] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[left] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-next] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 52%] 409s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[right] PASSED [ 52%] 410s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[right] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[right] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-previous] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-next] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[neither] PASSED [ 52%] 411s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[neither] PASSED [ 52%] 412s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[neither] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[right] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[left] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[both] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[both] PASSED [ 52%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[both] PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_has_break PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_regular_holidays_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_holidays_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample_time PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays_time PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample_time PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_open_close_break_start_end PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_has_break PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_next_prev_session PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_offset PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_session PASSED [ 53%] 413s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_date_to_session PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_open_close PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_in_range PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_has_break PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_window PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_distance PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_trading_index PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_deprecated PASSED [ 53%] 414s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens XFAIL [ 53%] 415s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_historical_regular_holidays_fall_into_precomputed_holidays PASSED [ 53%] 415s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_feb_29_2022_in_lunar_calendar PASSED [ 53%] 415s tests/test_xlim_calendar.py::TestXLIMCalendar::test_base_integrity PASSED [ 53%] 416s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calculated_against_csv PASSED [ 53%] 416s tests/test_xlim_calendar.py::TestXLIMCalendar::test_start_end PASSED [ 53%] 416s tests/test_xlim_calendar.py::TestXLIMCalendar::test_invalid_input PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_min PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_max PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sanity_check_session_lengths PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_specification PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_daylight_savings PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_opens_closes_break_starts_ends PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[both] PASSED [ 53%] 417s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[both] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[both] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-next] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-next] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[left] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-previous] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-previous] PASSED [ 53%] 418s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-previous] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-next] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[right] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-none] PASSED [ 53%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 54%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-previous] PASSED [ 54%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 54%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-next] PASSED [ 54%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 54%] 419s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[neither] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[right] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[left] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[both] PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_has_break PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_regular_holidays_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_holidays_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample_time PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays_time PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample_time PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_open_close_break_start_end PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_has_break PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_next_prev_session PASSED [ 54%] 420s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_offset PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_session PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_date_to_session PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_open_close PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_in_range PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_has_break PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_window PASSED [ 54%] 421s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_distance PASSED [ 54%] 422s tests/test_xlim_calendar.py::TestXLIMCalendar::test_trading_index PASSED [ 54%] 422s tests/test_xlim_calendar.py::TestXLIMCalendar::test_deprecated PASSED [ 54%] 422s tests/test_xlis_calendar.py::TestXLISCalendar::test_base_integrity PASSED [ 54%] 422s tests/test_xlis_calendar.py::TestXLISCalendar::test_calculated_against_csv PASSED [ 54%] 422s tests/test_xlis_calendar.py::TestXLISCalendar::test_start_end PASSED [ 54%] 422s tests/test_xlis_calendar.py::TestXLISCalendar::test_invalid_input PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_min PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_max PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_sanity_check_session_lengths PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_specification PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_daylight_savings PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_opens_closes_break_starts_ends PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[both] PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[both] PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[both] PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[both] PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[both] PASSED [ 54%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[both] PASSED [ 55%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[both] PASSED [ 55%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[both] PASSED [ 55%] 423s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[both] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[both] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-next] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-next] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[left] PASSED [ 55%] 424s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[left] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[left] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-next] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[right] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-next] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 55%] 425s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[neither] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[right] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[left] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[both] PASSED [ 55%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[both] PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[both] PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_has_break PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_regular_holidays_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_holidays_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample_time PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays_time PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample_time PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_open_close_break_start_end PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_has_break PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_next_prev_session PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_offset PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_session PASSED [ 56%] 426s tests/test_xlis_calendar.py::TestXLISCalendar::test_date_to_session PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_open_close PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_in_range PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_has_break PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_window PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_distance PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_trading_index PASSED [ 56%] 427s tests/test_xlis_calendar.py::TestXLISCalendar::test_deprecated PASSED [ 56%] 427s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_base_integrity PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calculated_against_csv PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_start_end PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_invalid_input PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_min PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_max PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sanity_check_session_lengths PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_specification PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_daylight_savings PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[both] PASSED [ 56%] 428s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[both] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[both] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[left] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[right] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[neither] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[neither] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[neither] PASSED [ 56%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_has_break PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_regular_holidays_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_holidays_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample_time PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays_time PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample_time PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_open_close_break_start_end PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_has_break PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_next_prev_session PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_offset PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_session PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_date_to_session PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_open_close PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_in_range PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_has_break PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_window PASSED [ 57%] 429s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_distance PASSED [ 57%] 430s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_trading_index PASSED [ 57%] 430s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_deprecated PASSED [ 57%] 430s tests/test_xlju_calendar.py::TestXLJUCalendar::test_base_integrity PASSED [ 57%] 430s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calculated_against_csv PASSED [ 57%] 430s tests/test_xlju_calendar.py::TestXLJUCalendar::test_start_end PASSED [ 57%] 430s tests/test_xlju_calendar.py::TestXLJUCalendar::test_invalid_input PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_bound_min PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_bound_max PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sanity_check_session_lengths PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_adhoc_holidays_specification PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_daylight_savings PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_opens_closes_break_starts_ends PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[both] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-next] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-next] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 57%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[left] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-next] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[right] PASSED [ 58%] 431s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-previous] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-next] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[neither] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[right] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[left] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[both] PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_has_break PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_regular_holidays_sample PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_adhoc_holidays_sample PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_holidays_sample PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_late_opens_sample PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_sample PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_sample_time PASSED [ 58%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_weekdays PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_weekdays_time PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_early_closes_sample PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_early_closes_sample_time PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_late_opens PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_open_close_break_start_end PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_has_break PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_next_prev_session PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_offset PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_session PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_date_to_session PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_open_close PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_in_range PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_has_break PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_window PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_distance PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_trading_index PASSED [ 59%] 432s tests/test_xlju_calendar.py::TestXLJUCalendar::test_deprecated PASSED [ 59%] 432s tests/test_xlon_calendar.py::TestXLONCalendar::test_base_integrity PASSED [ 59%] 433s tests/test_xlon_calendar.py::TestXLONCalendar::test_calculated_against_csv PASSED [ 59%] 433s tests/test_xlon_calendar.py::TestXLONCalendar::test_start_end PASSED [ 59%] 433s tests/test_xlon_calendar.py::TestXLONCalendar::test_invalid_input PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_min PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_max PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_sanity_check_session_lengths PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_specification PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_daylight_savings PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_opens_closes_break_starts_ends PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[both] PASSED [ 59%] 434s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[both] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[both] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-next] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-next] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-next] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-next] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[left] PASSED [ 59%] 435s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[left] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[left] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-next] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-next] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[right] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-none] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-none] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-none] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-none] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-none] PASSED [ 59%] 436s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-none] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-none] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-previous] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-next] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[neither] PASSED [ 59%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[neither] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[right] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[left] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[both] PASSED [ 60%] 437s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[both] PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[both] PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_has_break PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_regular_holidays_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_holidays_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample_time PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays_time PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample_time PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_open_close_break_start_end PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_has_break PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_next_prev_session PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_offset PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_session PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_date_to_session PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_open_close PASSED [ 60%] 438s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_in_range PASSED [ 60%] 439s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_has_break PASSED [ 60%] 439s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_window PASSED [ 60%] 439s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_distance PASSED [ 60%] 439s tests/test_xlon_calendar.py::TestXLONCalendar::test_trading_index PASSED [ 60%] 439s tests/test_xlon_calendar.py::TestXLONCalendar::test_deprecated PASSED [ 60%] 439s tests/test_xlux_calendar.py::TestXLUXCalendar::test_base_integrity PASSED [ 60%] 439s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calculated_against_csv PASSED [ 60%] 439s tests/test_xlux_calendar.py::TestXLUXCalendar::test_start_end PASSED [ 60%] 439s tests/test_xlux_calendar.py::TestXLUXCalendar::test_invalid_input PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_min PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_max PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sanity_check_session_lengths PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_specification PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_daylight_savings PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_opens_closes_break_starts_ends PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[both] PASSED [ 60%] 440s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[both] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[both] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-next] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-next] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[left] PASSED [ 60%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[left] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[left] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-next] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[right] PASSED [ 61%] 441s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[right] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[right] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[right] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-previous] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-next] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[neither] PASSED [ 61%] 442s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[neither] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[right] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[left] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[both] PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_has_break PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_regular_holidays_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_holidays_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample_time PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays_time PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample_time PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_open_close_break_start_end PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_has_break PASSED [ 61%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_next_prev_session PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_offset PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_session PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_date_to_session PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_open_close PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_in_range PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_has_break PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_window PASSED [ 62%] 443s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_distance PASSED [ 62%] 444s tests/test_xlux_calendar.py::TestXLUXCalendar::test_trading_index PASSED [ 62%] 444s tests/test_xlux_calendar.py::TestXLUXCalendar::test_deprecated PASSED [ 62%] 444s tests/test_xmad_calendar.py::TestXMADCalendar::test_base_integrity PASSED [ 62%] 444s tests/test_xmad_calendar.py::TestXMADCalendar::test_calculated_against_csv PASSED [ 62%] 444s tests/test_xmad_calendar.py::TestXMADCalendar::test_start_end PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_invalid_input PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_min PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_max PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_sanity_check_session_lengths PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_specification PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_daylight_savings PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_opens_closes_break_starts_ends PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[both] PASSED [ 62%] 445s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[both] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-next] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-next] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-next] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-next] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[left] PASSED [ 62%] 446s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[left] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[left] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[left] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-next] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-next] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[right] PASSED [ 62%] 447s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[right] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[right] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-previous] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-next] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[neither] PASSED [ 62%] 448s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[neither] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[right] PASSED [ 62%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[right] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[left] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[both] PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_has_break PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_regular_holidays_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_holidays_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample_time PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays_time PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample_time PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_open_close_break_start_end PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_has_break PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_next_prev_session PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_offset PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_session PASSED [ 63%] 449s tests/test_xmad_calendar.py::TestXMADCalendar::test_date_to_session PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_open_close PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_in_range PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_has_break PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_window PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_distance PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_trading_index PASSED [ 63%] 450s tests/test_xmad_calendar.py::TestXMADCalendar::test_deprecated PASSED [ 63%] 450s tests/test_xmex_calendar.py::TestXMEXCalendar::test_base_integrity PASSED [ 63%] 451s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calculated_against_csv PASSED [ 63%] 451s tests/test_xmex_calendar.py::TestXMEXCalendar::test_start_end PASSED [ 63%] 451s tests/test_xmex_calendar.py::TestXMEXCalendar::test_invalid_input PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_min PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_max PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sanity_check_session_lengths PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_specification PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_daylight_savings PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_opens_closes_break_starts_ends PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[both] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-next] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-next] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 63%] 452s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[left] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-next] PASSED [ 63%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[right] PASSED [ 64%] 453s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[right] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[right] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-previous] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-next] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[neither] PASSED [ 64%] 454s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[neither] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[right] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[left] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[both] PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_has_break PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_regular_holidays_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_holidays_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample_time PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays_time PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample_time PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_open_close_break_start_end PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_has_break PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_next_prev_session PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_offset PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_session PASSED [ 64%] 455s tests/test_xmex_calendar.py::TestXMEXCalendar::test_date_to_session PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_open_close PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_in_range PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_has_break PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_window PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_distance PASSED [ 64%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_trading_index PASSED [ 65%] 456s tests/test_xmex_calendar.py::TestXMEXCalendar::test_deprecated PASSED [ 65%] 456s tests/test_xmil_calendar.py::TestXMILCalendar::test_base_integrity PASSED [ 65%] 456s tests/test_xmil_calendar.py::TestXMILCalendar::test_calculated_against_csv PASSED [ 65%] 456s tests/test_xmil_calendar.py::TestXMILCalendar::test_start_end PASSED [ 65%] 456s tests/test_xmil_calendar.py::TestXMILCalendar::test_invalid_input PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_min PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_max PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_sanity_check_session_lengths PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_specification PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_daylight_savings PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_opens_closes_break_starts_ends PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[both] PASSED [ 65%] 457s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[both] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[both] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-next] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-next] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-next] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-next] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[left] PASSED [ 65%] 458s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[left] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[left] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-next] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-next] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[right] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-next] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 65%] 459s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[neither] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[right] PASSED [ 65%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[left] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[both] PASSED [ 66%] 460s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[both] PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[both] PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_has_break PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_regular_holidays_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_holidays_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample_time PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays_time PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample_time PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_open_close_break_start_end PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_has_break PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_next_prev_session PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_offset PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_session PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_date_to_session PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_open_close PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_in_range PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_has_break PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_window PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_distance PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_trading_index PASSED [ 66%] 461s tests/test_xmil_calendar.py::TestXMILCalendar::test_deprecated PASSED [ 66%] 461s tests/test_xmos_calendar.py::TestXMOSCalendar::test_base_integrity PASSED [ 66%] 466s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv PASSED [ 66%] 467s tests/test_xmos_calendar.py::TestXMOSCalendar::test_start_end PASSED [ 66%] 468s tests/test_xmos_calendar.py::TestXMOSCalendar::test_invalid_input PASSED [ 66%] 471s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_max PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sanity_check_session_lengths PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_specification PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_daylight_savings PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_opens_closes_break_starts_ends PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[both] PASSED [ 66%] 472s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[both] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[both] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-next] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-next] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[left] PASSED [ 66%] 473s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[left] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[left] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-next] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[right] PASSED [ 66%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[right] PASSED [ 67%] 474s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-previous] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-next] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[neither] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[right] PASSED [ 67%] 475s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[left] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[both] PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_has_break PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_regular_holidays_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_holidays_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample_time PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays_time PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample_time PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_open_close_break_start_end PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_has_break PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_next_prev_session PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_offset PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_session PASSED [ 67%] 476s tests/test_xmos_calendar.py::TestXMOSCalendar::test_date_to_session PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_open_close PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_in_range PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_has_break PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_window PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_distance PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_trading_index PASSED [ 67%] 477s tests/test_xmos_calendar.py::TestXMOSCalendar::test_deprecated PASSED [ 67%] 477s tests/test_xnys_calendar.py::TestXNYSCalendar::test_base_integrity PASSED [ 67%] 478s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calculated_against_csv PASSED [ 67%] 478s tests/test_xnys_calendar.py::TestXNYSCalendar::test_start_end PASSED [ 67%] 478s tests/test_xnys_calendar.py::TestXNYSCalendar::test_invalid_input PASSED [ 67%] 478s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_min PASSED [ 67%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_max PASSED [ 67%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sanity_check_session_lengths PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_specification PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_daylight_savings PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_opens_closes_break_starts_ends PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[both] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-next] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-next] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 68%] 479s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[left] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-next] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[right] PASSED [ 68%] 480s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[right] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[right] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[right] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-previous] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-next] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[neither] PASSED [ 68%] 481s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[neither] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[right] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[left] PASSED [ 68%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[left] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[left] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[both] PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_has_break PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_regular_holidays_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_holidays_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample_time PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays_time PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample_time PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_open_close_break_start_end PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_has_break PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_next_prev_session PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_offset PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_session PASSED [ 69%] 482s tests/test_xnys_calendar.py::TestXNYSCalendar::test_date_to_session PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_open_close PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_in_range PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_has_break PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_window PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_distance PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_trading_index PASSED [ 69%] 483s tests/test_xnys_calendar.py::TestXNYSCalendar::test_deprecated PASSED [ 69%] 483s tests/test_xnze_calendar.py::TestXNZECalendar::test_base_integrity PASSED [ 69%] 484s tests/test_xnze_calendar.py::TestXNZECalendar::test_calculated_against_csv PASSED [ 69%] 484s tests/test_xnze_calendar.py::TestXNZECalendar::test_start_end PASSED [ 69%] 484s tests/test_xnze_calendar.py::TestXNZECalendar::test_invalid_input PASSED [ 69%] 484s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_min PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_max PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_sanity_check_session_lengths PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_specification PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_daylight_savings PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_opens_closes_break_starts_ends PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[both] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-next] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-next] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-next] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-next] PASSED [ 69%] 485s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[left] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-next] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-next] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[right] PASSED [ 69%] 486s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[right] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[right] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[right] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-none] PASSED [ 69%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-none] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-previous] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-next] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[neither] PASSED [ 70%] 487s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[neither] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[right] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[left] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[both] PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_has_break PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_regular_holidays_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_holidays_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample_time PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays_time PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample_time PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_open_close_break_start_end PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_has_break PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_next_prev_session PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_offset PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_session PASSED [ 70%] 488s tests/test_xnze_calendar.py::TestXNZECalendar::test_date_to_session PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_open_close PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_in_range PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_has_break PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_window PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_distance PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_trading_index PASSED [ 70%] 489s tests/test_xnze_calendar.py::TestXNZECalendar::test_deprecated PASSED [ 70%] 489s tests/test_xosl_calendar.py::TestXOSLCalendar::test_base_integrity PASSED [ 70%] 490s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calculated_against_csv PASSED [ 70%] 490s tests/test_xosl_calendar.py::TestXOSLCalendar::test_start_end PASSED [ 70%] 490s tests/test_xosl_calendar.py::TestXOSLCalendar::test_invalid_input PASSED [ 70%] 490s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_min PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_max PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sanity_check_session_lengths PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_specification PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_daylight_savings PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_opens_closes_break_starts_ends PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[both] PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[both] PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[both] PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[both] PASSED [ 70%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[both] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-next] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-next] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-next] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-next] PASSED [ 71%] 491s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[left] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-next] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-next] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[right] PASSED [ 71%] 492s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[right] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[right] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-previous] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-next] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[neither] PASSED [ 71%] 493s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[neither] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[right] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[left] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[both] PASSED [ 71%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[both] PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[both] PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[both] PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_has_break PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_regular_holidays_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_holidays_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample_time PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays_time PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample_time PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_open_close_break_start_end PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_has_break PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_next_prev_session PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_offset PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_session PASSED [ 72%] 494s tests/test_xosl_calendar.py::TestXOSLCalendar::test_date_to_session PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_open_close PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_in_range PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_has_break PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_window PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_distance PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_trading_index PASSED [ 72%] 495s tests/test_xosl_calendar.py::TestXOSLCalendar::test_deprecated PASSED [ 72%] 495s tests/test_xpar_calendar.py::TestXPARCalendar::test_base_integrity PASSED [ 72%] 495s tests/test_xpar_calendar.py::TestXPARCalendar::test_calculated_against_csv PASSED [ 72%] 495s tests/test_xpar_calendar.py::TestXPARCalendar::test_start_end PASSED [ 72%] 495s tests/test_xpar_calendar.py::TestXPARCalendar::test_invalid_input PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_min PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_max PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_sanity_check_session_lengths PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_specification PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_daylight_savings PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_opens_closes_break_starts_ends PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[both] PASSED [ 72%] 496s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[both] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[both] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-next] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-next] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[left] PASSED [ 72%] 497s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[left] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[left] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-next] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[right] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-next] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 72%] 498s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[neither] PASSED [ 72%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[neither] PASSED [ 72%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[neither] PASSED [ 72%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[neither] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[right] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[left] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[both] PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_has_break PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_regular_holidays_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_holidays_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample_time PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays_time PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample_time PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_open_close_break_start_end PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_has_break PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_next_prev_session PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_offset PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_session PASSED [ 73%] 499s tests/test_xpar_calendar.py::TestXPARCalendar::test_date_to_session PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_open_close PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_in_range PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_has_break PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_window PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_distance PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_trading_index PASSED [ 73%] 500s tests/test_xpar_calendar.py::TestXPARCalendar::test_deprecated PASSED [ 73%] 500s tests/test_xphs_calendar.py::TestXPHSCalendar::test_base_integrity PASSED [ 73%] 501s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calculated_against_csv PASSED [ 73%] 501s tests/test_xphs_calendar.py::TestXPHSCalendar::test_start_end PASSED [ 73%] 501s tests/test_xphs_calendar.py::TestXPHSCalendar::test_invalid_input PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_min PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_max PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sanity_check_session_lengths PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_specification PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_daylight_savings PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_opens_closes_break_starts_ends PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[both] PASSED [ 73%] 502s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[both] PASSED [ 73%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[both] PASSED [ 73%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-next] PASSED [ 73%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 73%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-next] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[left] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-previous] PASSED [ 74%] 503s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-next] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[right] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-next] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 74%] 504s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[neither] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[right] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[left] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[both] PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_has_break PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_regular_holidays_sample PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_sample PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_holidays_sample PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens_sample PASSED [ 74%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample_time PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays_time PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample_time PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_open_close_break_start_end PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_has_break PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_next_prev_session PASSED [ 75%] 505s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_offset PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_session PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_date_to_session PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_open_close PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_in_range PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_has_break PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_window PASSED [ 75%] 506s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_distance PASSED [ 75%] 507s tests/test_xphs_calendar.py::TestXPHSCalendar::test_trading_index PASSED [ 75%] 507s tests/test_xphs_calendar.py::TestXPHSCalendar::test_deprecated PASSED [ 75%] 507s tests/test_xpra_calendar.py::TestXPRACalendar::test_base_integrity PASSED [ 75%] 507s tests/test_xpra_calendar.py::TestXPRACalendar::test_calculated_against_csv PASSED [ 75%] 507s tests/test_xpra_calendar.py::TestXPRACalendar::test_start_end PASSED [ 75%] 507s tests/test_xpra_calendar.py::TestXPRACalendar::test_invalid_input PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_min PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_max PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_sanity_check_session_lengths PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_specification PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_daylight_savings PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_opens_closes_break_starts_ends PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[both] PASSED [ 75%] 508s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[both] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[both] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-next] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-next] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[left] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-previous] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-previous] PASSED [ 75%] 509s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-previous] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-next] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[right] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-previous] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-next] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[neither] PASSED [ 75%] 510s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[neither] PASSED [ 75%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[neither] PASSED [ 75%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[neither] PASSED [ 75%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[neither] PASSED [ 75%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[neither] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[right] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[left] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[both] PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_has_break PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_regular_holidays_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_holidays_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample_time PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays_time PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample_time PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_open_close_break_start_end PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_has_break PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_next_prev_session PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_offset PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_session PASSED [ 76%] 511s tests/test_xpra_calendar.py::TestXPRACalendar::test_date_to_session PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_open_close PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_in_range PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_has_break PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_window PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_distance PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_trading_index PASSED [ 76%] 512s tests/test_xpra_calendar.py::TestXPRACalendar::test_deprecated PASSED [ 76%] 512s tests/test_xris_calendar.py::TestXRISCalendar::test_base_integrity PASSED [ 76%] 512s tests/test_xris_calendar.py::TestXRISCalendar::test_calculated_against_csv PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_start_end PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_invalid_input PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_min PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_max PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_sanity_check_session_lengths PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_specification PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_daylight_savings PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_opens_closes_break_starts_ends PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[both] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-next] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-next] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[left] PASSED [ 76%] 513s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-next] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-next] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[neither] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[right] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[left] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[both] PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_has_break PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_regular_holidays_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_non_holidays_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample_time PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays_time PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample_time PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_open_close_break_start_end PASSED [ 77%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_has_break PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_next_prev_session PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_session_offset PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_is_session PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_date_to_session PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_open_close PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_in_range PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_has_break PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_window PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_distance PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_trading_index PASSED [ 78%] 514s tests/test_xris_calendar.py::TestXRISCalendar::test_deprecated PASSED [ 78%] 514s tests/test_xsau_calendar.py::TestXASUCalendar::test_base_integrity PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_calculated_against_csv PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_start_end PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_invalid_input PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_min PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_max PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_sanity_check_session_lengths PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_specification PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_daylight_savings PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_opens_closes_break_starts_ends PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[both] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[left] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[right] PASSED [ 78%] 515s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-previous] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-next] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[neither] PASSED [ 78%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[right] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[left] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[both] PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_has_break PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_regular_holidays_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_holidays_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample_time PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays_time PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample_time PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_open_close_break_start_end PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_has_break PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_next_prev_session PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_offset PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_session PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_date_to_session PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_open_close PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_in_range PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_has_break PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_window PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_distance PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_trading_index PASSED [ 79%] 516s tests/test_xsau_calendar.py::TestXASUCalendar::test_deprecated PASSED [ 79%] 516s tests/test_xses_calendar.py::TestXSESCalendar::test_base_integrity PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_calculated_against_csv PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_start_end PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_invalid_input PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_min PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_max PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_sanity_check_session_lengths PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_specification PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_daylight_savings PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_opens_closes_break_starts_ends PASSED [ 79%] 517s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[both] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-next] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-next] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-next] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 79%] 518s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[left] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-previous] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-previous] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-previous] PASSED [ 79%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 80%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-next] PASSED [ 80%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 80%] 519s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[right] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-previous] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-next] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 80%] 520s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[neither] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[right] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[left] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[both] PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_has_break PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_regular_holidays_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_non_holidays_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample_time PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays_time PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample_time PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_session_open_close_break_start_end PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_session_has_break PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_next_prev_session PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_session_offset PASSED [ 80%] 521s tests/test_xses_calendar.py::TestXSESCalendar::test_is_session PASSED [ 80%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_date_to_session PASSED [ 80%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_open_close PASSED [ 80%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_in_range PASSED [ 80%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_has_break PASSED [ 80%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_window PASSED [ 81%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_distance PASSED [ 81%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_trading_index PASSED [ 81%] 522s tests/test_xses_calendar.py::TestXSESCalendar::test_deprecated PASSED [ 81%] 522s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_base_integrity PASSED [ 81%] 523s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calculated_against_csv PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_start_end PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_invalid_input PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_min PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_max PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sanity_check_session_lengths PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_specification PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_daylight_savings PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions PASSED [ 81%] 524s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_opens_closes_break_starts_ends PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[both] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-next] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-next] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 81%] 525s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[left] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-next] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[right] PASSED [ 81%] 526s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[right] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[right] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[right] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-previous] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-next] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[neither] PASSED [ 81%] 527s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[neither] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[right] PASSED [ 81%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[right] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[right] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[left] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[both] PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_has_break PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_regular_holidays_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_holidays_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample_time PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays_time PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample_time PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_open_close_break_start_end PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_has_break PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_next_prev_session PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_offset PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_session PASSED [ 82%] 528s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_date_to_session PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_open_close PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_in_range PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_has_break PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_window PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_distance PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_trading_index PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_deprecated PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_additional_early_closes_sample PASSED [ 82%] 529s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_close_time_change PASSED [ 82%] 529s tests/test_xshg_calendar.py::TestXSHGCalendar::test_base_integrity PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calculated_against_csv PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_start_end PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_invalid_input PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_min PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_max PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sanity_check_session_lengths PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_specification PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_daylight_savings PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_opens_closes_break_starts_ends PASSED [ 82%] 530s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[both] PASSED [ 82%] 531s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[both] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[both] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-next] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-next] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[left] PASSED [ 82%] 532s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[left] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[left] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-next] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[right] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[right] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[right] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[right] PASSED [ 82%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[right] PASSED [ 83%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[right] PASSED [ 83%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[right] PASSED [ 83%] 533s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[right] PASSED [ 83%] 534s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[right] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[right] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-previous] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-next] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[neither] PASSED [ 83%] 535s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[neither] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[right] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[left] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[both] PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_has_break PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_regular_holidays_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_holidays_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample_time PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays_time PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample_time PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_open_close_break_start_end PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_has_break PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_next_prev_session PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_offset PASSED [ 83%] 536s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_session PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_date_to_session PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_open_close PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_in_range PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_has_break PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_window PASSED [ 83%] 537s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_distance PASSED [ 83%] 538s tests/test_xshg_calendar.py::TestXSHGCalendar::test_trading_index PASSED [ 83%] 538s tests/test_xshg_calendar.py::TestXSHGCalendar::test_deprecated PASSED [ 83%] 538s tests/test_xsto_calendar.py::TestXSTOCalendar::test_base_integrity PASSED [ 83%] 538s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calculated_against_csv PASSED [ 83%] 538s tests/test_xsto_calendar.py::TestXSTOCalendar::test_start_end PASSED [ 83%] 538s tests/test_xsto_calendar.py::TestXSTOCalendar::test_invalid_input PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_min PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_max PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sanity_check_session_lengths PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_specification PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_daylight_savings PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_opens_closes_break_starts_ends PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[both] PASSED [ 84%] 539s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[both] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[both] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[both] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-next] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-next] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[left] PASSED [ 84%] 540s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[left] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[left] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-next] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[right] PASSED [ 84%] 541s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-previous] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-next] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[neither] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[right] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[left] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[left] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[left] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[left] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[left] PASSED [ 84%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[left] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[left] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[left] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[left] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[left] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[both] PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_has_break PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_regular_holidays_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_holidays_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample_time PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays_time PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample_time PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_open_close_break_start_end PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_has_break PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_next_prev_session PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_offset PASSED [ 85%] 542s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_session PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_date_to_session PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_open_close PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_in_range PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_has_break PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_window PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_distance PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_trading_index PASSED [ 85%] 543s tests/test_xsto_calendar.py::TestXSTOCalendar::test_deprecated PASSED [ 85%] 543s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_base_integrity PASSED [ 85%] 544s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calculated_against_csv PASSED [ 85%] 544s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_start_end PASSED [ 85%] 544s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_invalid_input PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_min PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_max PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sanity_check_session_lengths PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_specification PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_daylight_savings PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_opens_closes_break_starts_ends PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[both] PASSED [ 85%] 545s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[both] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[both] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[left] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[right] PASSED [ 85%] 546s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[right] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[right] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[right] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-none] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-none] PASSED [ 85%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-none] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-none] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-previous] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-next] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[neither] PASSED [ 86%] 547s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[neither] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[right] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[left] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[both] PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_has_break PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_regular_holidays_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_holidays_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample_time PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays_time PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample_time PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_open_close_break_start_end PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_has_break PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_next_prev_session PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_offset PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_session PASSED [ 86%] 548s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_date_to_session PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_open_close PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_in_range PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_has_break PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_window PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_distance PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_trading_index PASSED [ 86%] 549s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_deprecated PASSED [ 86%] 549s tests/test_xtae_calendar.py::TestXTAECalendar::test_base_integrity PASSED [ 86%] 550s tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv PASSED [ 86%] 551s tests/test_xtae_calendar.py::TestXTAECalendar::test_start_end PASSED [ 86%] 551s tests/test_xtae_calendar.py::TestXTAECalendar::test_invalid_input PASSED [ 86%] 554s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_max PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_sanity_check_session_lengths PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_specification PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_daylight_savings PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_opens_closes_break_starts_ends PASSED [ 86%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[both] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[left] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-next] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[right] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-none] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-none] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-none] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-none] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-none] PASSED [ 87%] 555s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-none] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-none] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-previous] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-next] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[neither] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[right] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[left] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[both] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[both] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[both] PASSED [ 87%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[both] PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_has_break PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_regular_holidays_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_holidays_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample_time PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays_time PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample_time PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_open_close_break_start_end PASSED [ 88%] 556s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_has_break PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_next_prev_session PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_offset PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_session PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_date_to_session PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_open_close PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_in_range PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_has_break PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_window PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_distance PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_trading_index PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendar::test_deprecated PASSED [ 88%] 557s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_base_integrity PASSED [ 88%] 558s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calculated_against_csv PASSED [ 88%] 558s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_start_end PASSED [ 88%] 559s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_invalid_input PASSED [ 88%] 561s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_min PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_max PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sanity_check_session_lengths PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_adhoc_holidays_specification PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_daylight_savings PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_opens_closes_break_starts_ends PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[both] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-next] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-next] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-next] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-next] PASSED [ 88%] 562s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[left] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-next] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-next] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[right] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-none] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-previous] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-next] PASSED [ 88%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-next] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[neither] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[right] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[left] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[both] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[both] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[both] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[both] PASSED [ 89%] 563s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[both] PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_has_break PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_regular_holidays_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_adhoc_holidays_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_holidays_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_late_opens_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_sample_time PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_weekdays PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_weekdays_time PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_early_closes_sample PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_early_closes_sample_time PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_late_opens PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_open_close_break_start_end PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_has_break PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_next_prev_session PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_offset PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_session PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_date_to_session PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_open_close PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_in_range PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_has_break PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_window PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_distance PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_trading_index PASSED [ 89%] 564s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_deprecated PASSED [ 89%] 564s tests/test_xtai_calendar.py::TestXTAICalendar::test_base_integrity PASSED [ 89%] 566s tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv PASSED [ 89%] 566s tests/test_xtai_calendar.py::TestXTAICalendar::test_start_end PASSED [ 89%] 566s tests/test_xtai_calendar.py::TestXTAICalendar::test_invalid_input PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_min PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_max PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_sanity_check_session_lengths PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_specification PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_daylight_savings PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_opens_closes_break_starts_ends PASSED [ 89%] 567s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[both] PASSED [ 89%] 568s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[both] PASSED [ 89%] 569s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] PASSED [ 90%] 569s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-next] PASSED [ 90%] 569s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-next] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-next] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-next] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[left] PASSED [ 90%] 570s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[left] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-previous] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-next] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-next] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[right] PASSED [ 90%] 572s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[right] PASSED [ 90%] 573s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[right] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-none] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-previous] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-next] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-next] PASSED [ 90%] 574s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[neither] PASSED [ 90%] 575s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[neither] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[right] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[left] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[both] PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_has_break PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_regular_holidays_sample PASSED [ 90%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_sample PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_holidays_sample PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens_sample PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample_time PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays_time PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample PASSED [ 91%] 576s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample_time PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_open_close_break_start_end PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_has_break PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_next_prev_session PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_offset PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_session PASSED [ 91%] 577s tests/test_xtai_calendar.py::TestXTAICalendar::test_date_to_session PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_in_range PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_has_break PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_window PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_distance PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_trading_index PASSED [ 91%] 580s tests/test_xtai_calendar.py::TestXTAICalendar::test_deprecated PASSED [ 91%] 580s tests/test_xtal_calendar.py::TestXTALCalendar::test_base_integrity PASSED [ 91%] 580s tests/test_xtal_calendar.py::TestXTALCalendar::test_calculated_against_csv PASSED [ 91%] 580s tests/test_xtal_calendar.py::TestXTALCalendar::test_start_end PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_invalid_input PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_min PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_max PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_sanity_check_session_lengths PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_specification PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_daylight_savings PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_opens_closes_break_starts_ends PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[both] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-next] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-next] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-next] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-next] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[left] PASSED [ 91%] 581s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[left] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[left] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-next] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-next] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[right] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-next] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[neither] PASSED [ 91%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[neither] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[right] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[left] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[both] PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_has_break PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_regular_holidays_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_holidays_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample_time PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays_time PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample_time PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_open_close_break_start_end PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_has_break PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_next_prev_session PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_offset PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_session PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_date_to_session PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_open_close PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_in_range PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_has_break PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_window PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_distance PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_trading_index PASSED [ 92%] 582s tests/test_xtal_calendar.py::TestXTALCalendar::test_deprecated PASSED [ 92%] 582s tests/test_xtks_calendar.py::TestXTKSCalendar::test_base_integrity PASSED [ 92%] 583s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calculated_against_csv PASSED [ 92%] 583s tests/test_xtks_calendar.py::TestXTKSCalendar::test_start_end PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_invalid_input PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_min PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_max PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sanity_check_session_lengths PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_specification PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_daylight_savings PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_opens_closes_break_starts_ends PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[both] PASSED [ 92%] 584s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[both] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[both] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-next] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-next] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[left] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[left] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[left] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[left] PASSED [ 92%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[left] PASSED [ 93%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[left] PASSED [ 93%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[left] PASSED [ 93%] 585s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[left] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[left] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[left] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-next] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[right] PASSED [ 93%] 586s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[right] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[right] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[right] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-previous] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-next] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[neither] PASSED [ 93%] 587s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[neither] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[right] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[left] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[both] PASSED [ 93%] 588s tests/test_xtks_calendar.py::TestXTKSCalendar::test_has_break PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_regular_holidays_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_holidays_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample_time PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays_time PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample PASSED [ 93%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample_time PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_open_close_break_start_end PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_has_break PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_next_prev_session PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_offset PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_session PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_date_to_session PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_open_close PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_in_range PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_has_break PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_window PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_distance PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_trading_index PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_deprecated PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_golden_week_holidays PASSED [ 94%] 589s tests/test_xtks_calendar.py::TestXTKSCalendar::test_emperors_birthday PASSED [ 94%] 589s tests/test_xtse_calendar.py::TestXTSECalendar::test_base_integrity PASSED [ 94%] 590s tests/test_xtse_calendar.py::TestXTSECalendar::test_calculated_against_csv PASSED [ 94%] 590s tests/test_xtse_calendar.py::TestXTSECalendar::test_start_end PASSED [ 94%] 590s tests/test_xtse_calendar.py::TestXTSECalendar::test_invalid_input PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_min PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_max PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_sanity_check_session_lengths PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_specification PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_daylight_savings PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_opens_closes_break_starts_ends PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[both] PASSED [ 94%] 591s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[both] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[both] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[left] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 94%] 592s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[right] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-previous] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-next] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[neither] PASSED [ 94%] 593s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 94%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[neither] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[right] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[left] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[both] PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_has_break PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_regular_holidays_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_holidays_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample_time PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays_time PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample_time PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_open_close_break_start_end PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_has_break PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_next_prev_session PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_offset PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_session PASSED [ 95%] 594s tests/test_xtse_calendar.py::TestXTSECalendar::test_date_to_session PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_open_close PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_in_range PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_has_break PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_window PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_distance PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_trading_index PASSED [ 95%] 595s tests/test_xtse_calendar.py::TestXTSECalendar::test_deprecated PASSED [ 95%] 595s tests/test_xwar_calendar.py::TestXWARCalendar::test_base_integrity PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_calculated_against_csv PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_start_end PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_invalid_input PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_min PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_max PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_sanity_check_session_lengths PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_specification PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_daylight_savings PASSED [ 95%] 596s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_opens_closes_break_starts_ends PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[both] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-next] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-next] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 95%] 597s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[left] PASSED [ 95%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-next] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[right] PASSED [ 96%] 598s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[right] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[right] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-previous] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-next] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[neither] PASSED [ 96%] 599s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[neither] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[right] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[left] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[both] PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_has_break PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_regular_holidays_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_holidays_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample_time PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays_time PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample_time PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_open_close_break_start_end PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_has_break PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_next_prev_session PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_offset PASSED [ 96%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_session PASSED [ 97%] 600s tests/test_xwar_calendar.py::TestXWARCalendar::test_date_to_session PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_open_close PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_in_range PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_has_break PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_window PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_distance PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_trading_index PASSED [ 97%] 601s tests/test_xwar_calendar.py::TestXWARCalendar::test_deprecated PASSED [ 97%] 601s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_base_integrity PASSED [ 97%] 601s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calculated_against_csv PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_start_end PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_invalid_input PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_min PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_max PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sanity_check_session_lengths PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_specification PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_daylight_savings PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_opens_closes_break_starts_ends PASSED [ 97%] 602s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[both] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-next] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-next] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[left] PASSED [ 97%] 603s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[left] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[left] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[left] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-next] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[right] PASSED [ 97%] 604s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[right] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[right] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-previous] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-next] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[neither] PASSED [ 97%] 605s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[neither] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[right] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[right] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[right] PASSED [ 97%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[right] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[left] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[both] PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_has_break PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_regular_holidays_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_holidays_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample_time PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays_time PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample_time PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_open_close_break_start_end PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_has_break PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_next_prev_session PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_offset PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_session PASSED [ 98%] 606s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_date_to_session PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_open_close PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_in_range PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_has_break PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_window PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_distance PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_trading_index PASSED [ 98%] 607s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_deprecated PASSED [ 98%] 607s tests/test_xzag_calendar.py::TestXZAGCalendar::test_base_integrity PASSED [ 98%] 607s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calculated_against_csv PASSED [ 98%] 607s tests/test_xzag_calendar.py::TestXZAGCalendar::test_start_end PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_invalid_input PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_min PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_max PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sanity_check_session_lengths PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_specification PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_daylight_savings PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_opens_closes_break_starts_ends PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[both] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-next] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-next] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[left] PASSED [ 98%] 608s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[left] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[left] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[left] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[left] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-next] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[right] PASSED [ 98%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-previous] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-next] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[neither] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[right] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[left] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[both] PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_has_break PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_regular_holidays_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_holidays_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample_time PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays_time PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample_time PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_open_close_break_start_end PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_has_break PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_next_prev_session PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_offset PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_session PASSED [ 99%] 609s tests/test_xzag_calendar.py::TestXZAGCalendar::test_date_to_session PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_open_close PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_in_range PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_has_break PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_window PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_distance PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_trading_index PASSED [ 99%] 610s tests/test_xzag_calendar.py::TestXZAGCalendar::test_deprecated PASSED [100%] 610s 610s ============================= slowest 15 durations ============================= 610s 11.82s call tests/test_exchange_calendar.py::test_default_calendars 610s 6.55s setup tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv 610s 5.01s setup tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv 610s 2.96s call tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min 610s 2.78s call tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_min 610s 2.76s call tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min 610s 2.65s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close 610s 2.41s setup tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv 610s 2.36s setup tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv 610s 2.36s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] 610s 2.32s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min 610s 2.21s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] 610s 1.57s setup tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calculated_against_csv 610s 1.57s setup tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv 610s 1.50s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end 610s ========== 9684 passed, 74 deselected, 1 xfailed in 439.71s (0:07:19) ========== 611s I: pybuild base:384: cd /tmp/autopkgtest.XDrXDq/autopkgtest_tmp/build; python3.13 -m pytest -k "not test_testbase_integrity and not exchange_calendars.utils.pandas_utils.indexes_union and not test_indices_fuzz" 611s ============================= test session starts ============================== 611s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 611s cachedir: .pytest_cache 611s hypothesis profile 'default' 611s rootdir: /tmp/autopkgtest.XDrXDq/autopkgtest_tmp/build 611s configfile: pyproject.toml 611s testpaths: tests, exchange_calendars/utils/pandas_utils.py 611s plugins: hypothesis-6.150.0, typeguard-4.4.4 613s collecting ... collected 9759 items / 74 deselected / 9685 selected 613s 613s tests/test_aixk_calendar.py::TestAIXKCalendar::test_base_integrity PASSED [ 0%] 613s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calculated_against_csv PASSED [ 0%] 613s tests/test_aixk_calendar.py::TestAIXKCalendar::test_start_end PASSED [ 0%] 613s tests/test_aixk_calendar.py::TestAIXKCalendar::test_invalid_input PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_min PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_max PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sanity_check_session_lengths PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_specification PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_daylight_savings PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_opens_closes_break_starts_ends PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[both] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[left] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[right] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[neither] PASSED [ 0%] 614s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[neither] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[right] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[left] PASSED [ 0%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[left] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[both] PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_has_break PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_regular_holidays_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_holidays_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample_time PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays_time PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample_time PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_open_close_break_start_end PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_has_break PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_next_prev_session PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_offset PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_session PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_date_to_session PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_open_close PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_in_range PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_has_break PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_window PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_distance PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_trading_index PASSED [ 1%] 615s tests/test_aixk_calendar.py::TestAIXKCalendar::test_deprecated PASSED [ 1%] 615s tests/test_always_open.py::TestAlwaysOpenCalendar::test_base_integrity PASSED [ 1%] 615s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calculated_against_csv PASSED [ 1%] 615s tests/test_always_open.py::TestAlwaysOpenCalendar::test_start_end PASSED [ 1%] 615s tests/test_always_open.py::TestAlwaysOpenCalendar::test_invalid_input PASSED [ 1%] 615s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_min PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_max PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sanity_check_session_lengths PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_specification PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_daylight_savings PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_opens_closes_break_starts_ends PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[left] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-next] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-next] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-next] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-next] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-previous] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-previous] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-none] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-none] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-none] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-none] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[right] PASSED [ 1%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[right] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[left] PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_has_break PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_regular_holidays_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_holidays_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample_time PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays_time PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample_time PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_open_close_break_start_end PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_has_break PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_next_prev_session PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_offset PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_session PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_date_to_session PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_open_close PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_in_range PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_has_break PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_window PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_distance PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_trading_index PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_deprecated PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_day PASSED [ 2%] 616s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_minute PASSED [ 2%] 616s tests/test_asex_calendar.py::TestASEXCalendar::test_base_integrity PASSED [ 2%] 617s tests/test_asex_calendar.py::TestASEXCalendar::test_calculated_against_csv PASSED [ 2%] 617s tests/test_asex_calendar.py::TestASEXCalendar::test_start_end PASSED [ 2%] 617s tests/test_asex_calendar.py::TestASEXCalendar::test_invalid_input PASSED [ 2%] 617s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_min PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_max PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_sanity_check_session_lengths PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_specification PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_daylight_savings PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_opens_closes_break_starts_ends PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[both] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-next] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-next] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[left] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[left] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[left] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[left] PASSED [ 2%] 618s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[left] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-next] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[right] PASSED [ 2%] 619s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[right] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[right] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-none] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-none] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-none] PASSED [ 2%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-none] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-previous] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-next] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[neither] PASSED [ 3%] 620s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[neither] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[right] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[left] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[both] PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_has_break PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_regular_holidays_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_non_holidays_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample_time PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays_time PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample_time PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_session_open_close_break_start_end PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_session_has_break PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_next_prev_session PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_session_offset PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_is_session PASSED [ 3%] 621s tests/test_asex_calendar.py::TestASEXCalendar::test_date_to_session PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_open_close PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_in_range PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_has_break PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_window PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_distance PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_trading_index PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_deprecated PASSED [ 3%] 622s tests/test_asex_calendar.py::TestASEXCalendar::test_close_time_change PASSED [ 3%] 622s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_base_integrity PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calculated_against_csv PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_start_end PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_invalid_input PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_min PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_max PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sanity_check_session_lengths PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_specification PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_daylight_savings PASSED [ 3%] 623s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions PASSED [ 3%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_opens_closes_break_starts_ends PASSED [ 3%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[both] PASSED [ 3%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[both] PASSED [ 3%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[both] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-next] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-next] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 4%] 624s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[left] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-next] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 4%] 625s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[right] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-previous] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-next] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[neither] PASSED [ 4%] 626s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[neither] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[right] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[left] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[both] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[both] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[both] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[both] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[both] PASSED [ 4%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[both] PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[both] PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[both] PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[both] PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[both] PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_has_break PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_regular_holidays_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_holidays_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample_time PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays_time PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample_time PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_open_close_break_start_end PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_has_break PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_next_prev_session PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_offset PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_session PASSED [ 5%] 627s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_date_to_session PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_open_close PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_in_range PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_has_break PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_window PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_distance PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_trading_index PASSED [ 5%] 628s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_deprecated PASSED [ 5%] 628s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_add_new_aliases PASSED [ 5%] 628s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_aliases_to_names PASSED [ 5%] 628s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_allow_alias_override_with_force PASSED [ 5%] 628s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_follow_alias_chain PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_cache PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_kwargs PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_names PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_names_to_aliases PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_alias_that_already_exists PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_cyclic_aliases PASSED [ 5%] 629s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_remove_aliases PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_constants PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_is_date PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_is_utc PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-True] PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-False] PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-True] PASSED [ 5%] 629s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-False] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-True] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-False] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-True] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-False] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-True] PASSED [ 5%] 630s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-False] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-True] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-False] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-True] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-False] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[left] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[right] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[both] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[neither] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[2021-13-13] PASSED [ 5%] 631s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[malformed1] PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[not a timestamp] PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_timestamp_error_oob PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[2021-06-02 23:00] PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult1] PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult2] PASSED [ 5%] 632s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[2021-06-05] PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult1] PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult2] PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult3] PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date_or_minute_oob PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date[2021-06-05] PASSED [ 5%] 633s tests/test_calendar_helpers.py::test_parse_date[date_mult1] PASSED [ 5%] 634s tests/test_calendar_helpers.py::test_parse_date[date_mult2] PASSED [ 5%] 634s tests/test_calendar_helpers.py::test_parse_date[date_mult3] PASSED [ 5%] 634s tests/test_calendar_helpers.py::test_parse_date_errors PASSED [ 5%] 634s tests/test_calendar_helpers.py::test_parse_session PASSED [ 5%] 634s tests/test_calendar_helpers.py::test_parse_trading_minute PASSED [ 5%] 637s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] PASSED [ 5%] 637s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XLON] PASSED [ 5%] 639s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] PASSED [ 5%] 639s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XHKG] PASSED [ 5%] 640s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XTAE] PASSED [ 5%] 640s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XTAE] PASSED [ 5%] 643s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] PASSED [ 5%] 643s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[CMES] PASSED [ 5%] 644s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[24/7] PASSED [ 5%] 644s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[24/7] PASSED [ 5%] 644s tests/test_calendar_helpers.py::TestTradingIndex::test_for_empty_with_neither_fuzz PASSED [ 5%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[XHKG] PASSED [ 5%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[24/7] PASSED [ 5%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[CMES] PASSED [ 5%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-True] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-False] PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_force PASSED [ 6%] 645s tests/test_calendar_helpers.py::TestTradingIndex::test_ignore_breaks PASSED [ 6%] 646s tests/test_calendar_helpers.py::TestTradingIndex::test_align PASSED [ 6%] 646s tests/test_calendar_helpers.py::TestTradingIndex::test_align_overlap PASSED [ 6%] 647s tests/test_calendar_helpers.py::TestTradingIndex::test_start_end_times PASSED [ 6%] 647s tests/test_calendar_helpers.py::TestTradingIndex::test_parsing_errors PASSED [ 6%] 647s tests/test_cmes_calendar.py::TestCMESCalendar::test_base_integrity PASSED [ 6%] 647s tests/test_cmes_calendar.py::TestCMESCalendar::test_calculated_against_csv PASSED [ 6%] 647s tests/test_cmes_calendar.py::TestCMESCalendar::test_start_end PASSED [ 6%] 647s tests/test_cmes_calendar.py::TestCMESCalendar::test_invalid_input PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_min PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_max PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_sanity_check_session_lengths PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_specification PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_daylight_savings PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_opens_closes_break_starts_ends PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[left] PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[left] PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[left] PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[left] PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[left] PASSED [ 6%] 648s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[left] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[left] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[left] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[left] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[left] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-next] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-next] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 6%] 649s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-previous] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-previous] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-none] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-none] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[right] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[left] PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_has_break PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_regular_holidays_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_holidays_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample_time PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays_time PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample_time PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes PASSED [ 6%] 650s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_open_close_break_start_end PASSED [ 6%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_has_break PASSED [ 6%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_next_prev_session PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_offset PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_session PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_date_to_session PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_open_close PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_in_range PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_has_break PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_window PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_distance PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_trading_index PASSED [ 7%] 651s tests/test_cmes_calendar.py::TestCMESCalendar::test_deprecated PASSED [ 7%] 651s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar PASSED [ 7%] 651s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar_type PASSED [ 7%] 651s tests/test_exchange_calendar.py::TestCalendarRegistration::test_both_places_are_checked PASSED [ 7%] 651s tests/test_exchange_calendar.py::TestCalendarRegistration::test_force_registration PASSED [ 7%] 664s tests/test_exchange_calendar.py::test_default_calendars PASSED [ 7%] 664s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19-0-time_offset0-tz0-2016-07-19 9:31] PASSED [ 7%] 664s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19--1-time_offset1-tz1-2016-07-18 17:01] PASSED [ 7%] 664s tests/test_exchange_calendar.py::test_days_at_time[2004-04-05--1-time_offset2-tz2-2004-04-04 17:01] PASSED [ 7%] 664s tests/test_exchange_calendar.py::test_days_at_time[1990-04-02--1-time_offset3-tz3-1990-04-01 19:01] PASSED [ 7%] 664s tests/test_iepa_calendar.py::TestIEPACalendar::test_base_integrity PASSED [ 7%] 664s tests/test_iepa_calendar.py::TestIEPACalendar::test_calculated_against_csv PASSED [ 7%] 664s tests/test_iepa_calendar.py::TestIEPACalendar::test_start_end PASSED [ 7%] 664s tests/test_iepa_calendar.py::TestIEPACalendar::test_invalid_input PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_min PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_max PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_sanity_check_session_lengths PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_specification PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_daylight_savings PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_opens_closes_break_starts_ends PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[both] PASSED [ 7%] 665s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[both] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[both] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-next] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-next] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-next] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-next] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[left] PASSED [ 7%] 666s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[left] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[left] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-next] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-next] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[right] PASSED [ 7%] 667s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[right] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[right] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-previous] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-next] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[neither] PASSED [ 7%] 668s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[neither] PASSED [ 7%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[neither] PASSED [ 7%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[neither] PASSED [ 7%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[neither] PASSED [ 7%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[neither] PASSED [ 7%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[neither] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[right] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[left] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[both] PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_has_break PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_regular_holidays_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_holidays_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample_time PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays_time PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample_time PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_open_close_break_start_end PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_has_break PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_next_prev_session PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_offset PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_session PASSED [ 8%] 669s tests/test_iepa_calendar.py::TestIEPACalendar::test_date_to_session PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_open_close PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_in_range PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_has_break PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_window PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_distance PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_trading_index PASSED [ 8%] 670s tests/test_iepa_calendar.py::TestIEPACalendar::test_deprecated PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_base_integrity PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calculated_against_csv PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_start_end PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_invalid_input PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_min PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_max PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sanity_check_session_lengths PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_specification PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_daylight_savings PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_opens_closes_break_starts_ends PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[left] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-next] PASSED [ 8%] 670s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-next] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-next] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-next] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[right] PASSED [ 8%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-previous] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-none] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-none] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-none] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-none] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[right] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[left] PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_has_break PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_regular_holidays_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_holidays_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample_time PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays_time PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample_time PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_open_close_break_start_end PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_has_break PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_next_prev_session PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_offset PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_session PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_date_to_session PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_open_close PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_in_range PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_has_break PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_window PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_distance PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_trading_index PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_deprecated PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday PASSED [ 9%] 671s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday_minute PASSED [ 9%] 671s tests/test_xams_calendar.py::TestXAMSCalendar::test_base_integrity PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_calculated_against_csv PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_start_end PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_invalid_input PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_min PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_max PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_sanity_check_session_lengths PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_specification PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_daylight_savings PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_opens_closes_break_starts_ends PASSED [ 9%] 672s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[both] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-next] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-next] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[left] PASSED [ 9%] 673s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[left] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[left] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-previous] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 9%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-previous] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-next] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[right] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-none] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-none] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-none] PASSED [ 10%] 674s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-none] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-previous] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-next] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[neither] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[right] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[left] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[both] PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_has_break PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_regular_holidays_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_holidays_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample_time PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays_time PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample_time PASSED [ 10%] 675s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_open_close_break_start_end PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_has_break PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_next_prev_session PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_offset PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_session PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_date_to_session PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_open_close PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_in_range PASSED [ 10%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_has_break PASSED [ 11%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_window PASSED [ 11%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_distance PASSED [ 11%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_trading_index PASSED [ 11%] 676s tests/test_xams_calendar.py::TestXAMSCalendar::test_deprecated PASSED [ 11%] 676s tests/test_xasx_calendar.py::TestXASXCalendar::test_base_integrity PASSED [ 11%] 677s tests/test_xasx_calendar.py::TestXASXCalendar::test_calculated_against_csv PASSED [ 11%] 677s tests/test_xasx_calendar.py::TestXASXCalendar::test_start_end PASSED [ 11%] 677s tests/test_xasx_calendar.py::TestXASXCalendar::test_invalid_input PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_min PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_max PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_sanity_check_session_lengths PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_specification PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_daylight_savings PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_opens_closes_break_starts_ends PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[both] PASSED [ 11%] 678s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[both] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[both] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[both] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-next] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-next] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[left] PASSED [ 11%] 679s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[left] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[left] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-next] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[right] PASSED [ 11%] 680s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-previous] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-next] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[neither] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[right] PASSED [ 11%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[right] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[right] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[right] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[left] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[both] PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_has_break PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_regular_holidays_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_holidays_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample_time PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays_time PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample PASSED [ 12%] 681s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample_time PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_open_close_break_start_end PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_has_break PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_next_prev_session PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_offset PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_session PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_date_to_session PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_open_close PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_in_range PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_has_break PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_window PASSED [ 12%] 682s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_distance PASSED [ 12%] 683s tests/test_xasx_calendar.py::TestXASXCalendar::test_trading_index PASSED [ 12%] 683s tests/test_xasx_calendar.py::TestXASXCalendar::test_deprecated PASSED [ 12%] 683s tests/test_xbda_calendar.py::TestXBDACalendar::test_base_integrity PASSED [ 12%] 683s tests/test_xbda_calendar.py::TestXBDACalendar::test_calculated_against_csv PASSED [ 12%] 683s tests/test_xbda_calendar.py::TestXBDACalendar::test_start_end PASSED [ 12%] 683s tests/test_xbda_calendar.py::TestXBDACalendar::test_invalid_input PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_min PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_max PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_sanity_check_session_lengths PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_specification PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_daylight_savings PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_opens_closes_break_starts_ends PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[both] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[left] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-next] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[right] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[right] PASSED [ 12%] 684s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[right] PASSED [ 12%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[right] PASSED [ 12%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[right] PASSED [ 12%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-previous] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-next] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[neither] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[right] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[left] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[both] PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_has_break PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_regular_holidays_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_holidays_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample_time PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays_time PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample_time PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_open_close_break_start_end PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_has_break PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_next_prev_session PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_offset PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_session PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_date_to_session PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_open_close PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_in_range PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_has_break PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_window PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_distance PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_trading_index PASSED [ 13%] 685s tests/test_xbda_calendar.py::TestXBDACalendar::test_deprecated PASSED [ 13%] 685s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_base_integrity PASSED [ 13%] 686s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calculated_against_csv PASSED [ 13%] 686s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_start_end PASSED [ 13%] 686s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_invalid_input PASSED [ 14%] 686s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_bound_min PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_bound_max PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sanity_check_session_lengths PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_adhoc_holidays_specification PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_daylight_savings PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[both] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[left] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[right-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[left-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[both-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_properties[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minute_methods[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_minutes[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_trading_minute[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_break_minute[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_open_at_time[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_minute[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[right] PASSED [ 14%] 687s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[left] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[left] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[left] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[left] PASSED [ 14%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[left] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[left] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[left] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_past_session[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_to_future_session[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_in_range[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_window[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_distance[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_has_break PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_regular_holidays_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_adhoc_holidays_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_holidays_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_late_opens_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_sample_time PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_weekdays PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes_weekdays_time PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_early_closes_sample PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_non_early_closes_sample_time PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_late_opens PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_early_closes PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_open_close_break_start_end PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_has_break PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_next_prev_session PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_session_offset PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_is_session PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_date_to_session PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_prev_next_open_close PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_in_range PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_has_break PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_window PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_sessions_distance PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_trading_index PASSED [ 15%] 688s tests/test_xbel_calendar.py::TestXBELExchangeCalendar::test_deprecated PASSED [ 15%] 688s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_base_integrity PASSED [ 15%] 689s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calculated_against_csv PASSED [ 15%] 689s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_start_end PASSED [ 15%] 689s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_invalid_input PASSED [ 15%] 689s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_min PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_max PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sanity_check_session_lengths PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_specification PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_daylight_savings PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_opens_closes_break_starts_ends PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[both] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-next] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-next] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 15%] 690s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[left] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-next] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[right] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[right] PASSED [ 15%] 691s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[right] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-none] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-none] PASSED [ 15%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-none] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-none] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-previous] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-next] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[neither] PASSED [ 16%] 692s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[neither] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[right] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[left] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[both] PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_has_break PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_regular_holidays_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_holidays_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample_time PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays_time PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample_time PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_open_close_break_start_end PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_has_break PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_next_prev_session PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_offset PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_session PASSED [ 16%] 693s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_date_to_session PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_open_close PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_in_range PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_has_break PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_window PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_distance PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_trading_index PASSED [ 16%] 694s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_deprecated PASSED [ 16%] 694s tests/test_xbog_calendar.py::TestXBOGCalendar::test_base_integrity PASSED [ 16%] 695s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calculated_against_csv PASSED [ 16%] 695s tests/test_xbog_calendar.py::TestXBOGCalendar::test_start_end PASSED [ 16%] 695s tests/test_xbog_calendar.py::TestXBOGCalendar::test_invalid_input PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_min PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_max PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sanity_check_session_lengths PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_specification PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_daylight_savings PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_opens_closes_break_starts_ends PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[both] PASSED [ 16%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[both] PASSED [ 17%] 696s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[both] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[both] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[left] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 17%] 697s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[right] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-previous] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-next] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[neither] PASSED [ 17%] 698s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[neither] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[right] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[left] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[both] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[both] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[both] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[both] PASSED [ 17%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[both] PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_has_break PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_regular_holidays_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_holidays_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample_time PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays_time PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample_time PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_open_close_break_start_end PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_has_break PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_next_prev_session PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_offset PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_session PASSED [ 18%] 699s tests/test_xbog_calendar.py::TestXBOGCalendar::test_date_to_session PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_open_close PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_in_range PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_has_break PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_window PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_distance PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_trading_index PASSED [ 18%] 700s tests/test_xbog_calendar.py::TestXBOGCalendar::test_deprecated PASSED [ 18%] 700s tests/test_xbom_calendar.py::TestXBOMCalendar::test_base_integrity PASSED [ 18%] 702s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv PASSED [ 18%] 702s tests/test_xbom_calendar.py::TestXBOMCalendar::test_start_end PASSED [ 18%] 702s tests/test_xbom_calendar.py::TestXBOMCalendar::test_invalid_input PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_min PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_max PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sanity_check_session_lengths PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_specification PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_daylight_savings PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_opens_closes_break_starts_ends PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[both] PASSED [ 18%] 703s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[both] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[both] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[left] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[right] PASSED [ 18%] 704s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[right] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[right] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-previous] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-next] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 18%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[neither] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[right] PASSED [ 19%] 705s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[right] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[left] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[both] PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_has_break PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_regular_holidays_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_holidays_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample_time PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays_time PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample_time PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_open_close_break_start_end PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_has_break PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_next_prev_session PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_offset PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_session PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_date_to_session PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_open_close PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_in_range PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_has_break PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_window PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_distance PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_trading_index PASSED [ 19%] 706s tests/test_xbom_calendar.py::TestXBOMCalendar::test_deprecated PASSED [ 19%] 706s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_base_integrity PASSED [ 19%] 707s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calculated_against_csv PASSED [ 19%] 707s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_start_end PASSED [ 19%] 707s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_invalid_input PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_bound_min PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_bound_max PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sanity_check_session_lengths PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_adhoc_holidays_specification PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_daylight_savings PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[both] PASSED [ 19%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[both] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[left] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[right] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[right-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[left-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[both-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_properties[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minute_methods[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_minutes[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_trading_minute[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_break_minute[neither] PASSED [ 20%] 708s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_open_at_time[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_minute[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_past_session[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_to_future_session[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_in_range[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_window[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_distance[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_has_break PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_regular_holidays_sample PASSED [ 20%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_adhoc_holidays_sample PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_holidays_sample PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_late_opens_sample PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_sample PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_sample_time PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_weekdays PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes_weekdays_time PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_early_closes_sample PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_non_early_closes_sample_time PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_late_opens PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_early_closes PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_open_close_break_start_end PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_has_break PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_next_prev_session PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_session_offset PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_is_session PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_date_to_session PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_prev_next_open_close PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_in_range PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_has_break PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_window PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_sessions_distance PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_trading_index PASSED [ 21%] 709s tests/test_xbra_calendar.py::TestXBRAExchangeCalendar::test_deprecated PASSED [ 21%] 709s tests/test_xbru_calendar.py::TestXBRUCalendar::test_base_integrity PASSED [ 21%] 710s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calculated_against_csv PASSED [ 21%] 710s tests/test_xbru_calendar.py::TestXBRUCalendar::test_start_end PASSED [ 21%] 710s tests/test_xbru_calendar.py::TestXBRUCalendar::test_invalid_input PASSED [ 21%] 710s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_min PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_max PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sanity_check_session_lengths PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_specification PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_daylight_savings PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_opens_closes_break_starts_ends PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[both] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-next] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-next] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 21%] 711s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[left] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-next] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[right] PASSED [ 21%] 712s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[right] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[right] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-previous] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-next] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[neither] PASSED [ 21%] 713s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[neither] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[right] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[left] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[both] PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_has_break PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_regular_holidays_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_holidays_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample_time PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays_time PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample_time PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_open_close_break_start_end PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_has_break PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_next_prev_session PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_offset PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_session PASSED [ 22%] 714s tests/test_xbru_calendar.py::TestXBRUCalendar::test_date_to_session PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_open_close PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_in_range PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_has_break PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_window PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_distance PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_trading_index PASSED [ 22%] 715s tests/test_xbru_calendar.py::TestXBRUCalendar::test_deprecated PASSED [ 22%] 715s tests/test_xbse_calendar.py::TestXBSECalendar::test_base_integrity PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_calculated_against_csv PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_start_end PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_invalid_input PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_min PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_max PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_sanity_check_session_lengths PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_specification PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_daylight_savings PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_opens_closes_break_starts_ends PASSED [ 22%] 716s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[both] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-next] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-next] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[left] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[left] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[left] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[left] PASSED [ 22%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[left] PASSED [ 23%] 717s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[left] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[left] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[left] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[left] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[left] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-next] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[right] PASSED [ 23%] 718s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[right] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[right] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-previous] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-next] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[neither] PASSED [ 23%] 719s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[neither] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[right] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[left] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[both] PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_has_break PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_regular_holidays_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_holidays_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample_time PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays_time PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample_time PASSED [ 23%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_open_close_break_start_end PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_has_break PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_next_prev_session PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_offset PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_session PASSED [ 24%] 720s tests/test_xbse_calendar.py::TestXBSECalendar::test_date_to_session PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_open_close PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_in_range PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_has_break PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_window PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_distance PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_trading_index PASSED [ 24%] 721s tests/test_xbse_calendar.py::TestXBSECalendar::test_deprecated PASSED [ 24%] 721s tests/test_xbud_calendar.py::TestXBUDCalendar::test_base_integrity PASSED [ 24%] 722s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calculated_against_csv PASSED [ 24%] 722s tests/test_xbud_calendar.py::TestXBUDCalendar::test_start_end PASSED [ 24%] 722s tests/test_xbud_calendar.py::TestXBUDCalendar::test_invalid_input PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_min PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_max PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sanity_check_session_lengths PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_specification PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_daylight_savings PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_opens_closes_break_starts_ends PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[both] PASSED [ 24%] 723s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[both] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[both] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[left] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-next] PASSED [ 24%] 724s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[right] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-previous] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-next] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[neither] PASSED [ 24%] 725s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[neither] PASSED [ 24%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[neither] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[neither] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[neither] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[right] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[left] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[both] PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_has_break PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_regular_holidays_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_holidays_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample_time PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays_time PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample_time PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_open_close_break_start_end PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_has_break PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_next_prev_session PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_offset PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_session PASSED [ 25%] 726s tests/test_xbud_calendar.py::TestXBUDCalendar::test_date_to_session PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_open_close PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_in_range PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_has_break PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_window PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_distance PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_trading_index PASSED [ 25%] 727s tests/test_xbud_calendar.py::TestXBUDCalendar::test_deprecated PASSED [ 25%] 727s tests/test_xbue_calendar.py::TestXBUECalendar::test_base_integrity PASSED [ 25%] 728s tests/test_xbue_calendar.py::TestXBUECalendar::test_calculated_against_csv PASSED [ 25%] 728s tests/test_xbue_calendar.py::TestXBUECalendar::test_start_end PASSED [ 25%] 728s tests/test_xbue_calendar.py::TestXBUECalendar::test_invalid_input PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_min PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_max PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_sanity_check_session_lengths PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_specification PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_daylight_savings PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_opens_closes_break_starts_ends PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[both] PASSED [ 25%] 729s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[both] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[both] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-next] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-next] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-next] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-next] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[left] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-previous] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-previous] PASSED [ 25%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 26%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-previous] PASSED [ 26%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 26%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-next] PASSED [ 26%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-next] PASSED [ 26%] 730s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[right] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-previous] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-next] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[neither] PASSED [ 26%] 731s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[neither] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[right] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[left] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[both] PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_has_break PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_regular_holidays_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_holidays_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample_time PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays_time PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample_time PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_open_close_break_start_end PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_has_break PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_next_prev_session PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_offset PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_session PASSED [ 26%] 732s tests/test_xbue_calendar.py::TestXBUECalendar::test_date_to_session PASSED [ 26%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_open_close PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_in_range PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_has_break PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_window PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_distance PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_trading_index PASSED [ 27%] 733s tests/test_xbue_calendar.py::TestXBUECalendar::test_deprecated PASSED [ 27%] 733s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_base_integrity PASSED [ 27%] 734s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calculated_against_csv PASSED [ 27%] 734s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_start_end PASSED [ 27%] 734s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_invalid_input PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_min PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_max PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sanity_check_session_lengths PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_specification PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_daylight_savings PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_opens_closes_break_starts_ends PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[both] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-next] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-next] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 27%] 735s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[left] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-next] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[right] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[right] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[right] PASSED [ 27%] 736s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[right] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-previous] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-next] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[neither] PASSED [ 27%] 737s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[neither] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[right] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[right] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[right] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[right] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[right] PASSED [ 27%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[right] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[right] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[right] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[right] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[right] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[left] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[both] PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_has_break PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_regular_holidays_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_holidays_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample_time PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays_time PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample_time PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_open_close_break_start_end PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_has_break PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_next_prev_session PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_offset PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_session PASSED [ 28%] 738s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_date_to_session PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_open_close PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_in_range PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_has_break PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_window PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_distance PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_trading_index PASSED [ 28%] 739s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_deprecated PASSED [ 28%] 739s tests/test_xcse_calendar.py::TestXCSECalendar::test_base_integrity PASSED [ 28%] 740s tests/test_xcse_calendar.py::TestXCSECalendar::test_calculated_against_csv PASSED [ 28%] 740s tests/test_xcse_calendar.py::TestXCSECalendar::test_start_end PASSED [ 28%] 740s tests/test_xcse_calendar.py::TestXCSECalendar::test_invalid_input PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_min PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_max PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_sanity_check_session_lengths PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_specification PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_daylight_savings PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_opens_closes_break_starts_ends PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[both] PASSED [ 28%] 741s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[both] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[both] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-next] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-next] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[left] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-previous] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-previous] PASSED [ 28%] 742s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-previous] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-next] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[right] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[right] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[right] PASSED [ 28%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[right] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-previous] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-next] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 29%] 743s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[neither] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[right] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[left] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[both] PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_has_break PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_regular_holidays_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_holidays_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample_time PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays_time PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample_time PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes PASSED [ 29%] 744s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_open_close_break_start_end PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_has_break PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_next_prev_session PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_offset PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_session PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_date_to_session PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_open_close PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_in_range PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_has_break PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_window PASSED [ 29%] 745s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_distance PASSED [ 29%] 746s tests/test_xcse_calendar.py::TestXCSECalendar::test_trading_index PASSED [ 29%] 746s tests/test_xcse_calendar.py::TestXCSECalendar::test_deprecated PASSED [ 29%] 746s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_base_integrity PASSED [ 29%] 746s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calculated_against_csv PASSED [ 29%] 746s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_start_end PASSED [ 30%] 746s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_invalid_input PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_min PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_max PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sanity_check_session_lengths PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_specification PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_daylight_savings PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[both] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-next] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-next] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[left] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[left] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 30%] 747s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[left] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-next] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[right] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 30%] 748s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[left] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[left] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[left] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 30%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_has_break PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_regular_holidays_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_holidays_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample_time PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays_time PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample_time PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_open_close_break_start_end PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_has_break PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_next_prev_session PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_offset PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_session PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_date_to_session PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_open_close PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_in_range PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_has_break PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_window PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_distance PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_trading_index PASSED [ 31%] 749s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_deprecated PASSED [ 31%] 749s tests/test_xdub_calendar.py::TestXDUBCalendar::test_base_integrity PASSED [ 31%] 750s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calculated_against_csv PASSED [ 31%] 750s tests/test_xdub_calendar.py::TestXDUBCalendar::test_start_end PASSED [ 31%] 750s tests/test_xdub_calendar.py::TestXDUBCalendar::test_invalid_input PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_min PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_max PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sanity_check_session_lengths PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_specification PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_daylight_savings PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_opens_closes_break_starts_ends PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[both] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-next] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-next] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-next] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-next] PASSED [ 31%] 751s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[left] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-next] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-next] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[right] PASSED [ 31%] 752s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[right] PASSED [ 31%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[right] PASSED [ 31%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[right] PASSED [ 31%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-none] PASSED [ 31%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-none] PASSED [ 31%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-previous] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-next] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[neither] PASSED [ 32%] 753s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[neither] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[right] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[left] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[both] PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_has_break PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_regular_holidays_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_holidays_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample_time PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays_time PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample_time PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_open_close_break_start_end PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_has_break PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_next_prev_session PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_offset PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_session PASSED [ 32%] 754s tests/test_xdub_calendar.py::TestXDUBCalendar::test_date_to_session PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_open_close PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_in_range PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_has_break PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_window PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_distance PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_trading_index PASSED [ 32%] 755s tests/test_xdub_calendar.py::TestXDUBCalendar::test_deprecated PASSED [ 32%] 755s tests/test_xdus_calendar.py::TestXDUSCalendar::test_base_integrity PASSED [ 32%] 756s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calculated_against_csv PASSED [ 32%] 756s tests/test_xdus_calendar.py::TestXDUSCalendar::test_start_end PASSED [ 32%] 756s tests/test_xdus_calendar.py::TestXDUSCalendar::test_invalid_input PASSED [ 32%] 756s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_min PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_max PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sanity_check_session_lengths PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_specification PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_daylight_savings PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_opens_closes_break_starts_ends PASSED [ 32%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[both] PASSED [ 33%] 757s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[both] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[both] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-next] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-next] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[left] PASSED [ 33%] 758s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[left] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[left] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-next] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[right] PASSED [ 33%] 759s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[right] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[right] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-previous] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-next] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[neither] PASSED [ 33%] 760s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[neither] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[right] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[left] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[both] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[both] PASSED [ 33%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[both] PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_has_break PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_regular_holidays_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_holidays_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample_time PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays_time PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample_time PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_open_close_break_start_end PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_has_break PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_next_prev_session PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_offset PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_session PASSED [ 34%] 761s tests/test_xdus_calendar.py::TestXDUSCalendar::test_date_to_session PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_open_close PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_in_range PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_has_break PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_window PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_distance PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_trading_index PASSED [ 34%] 762s tests/test_xdus_calendar.py::TestXDUSCalendar::test_deprecated PASSED [ 34%] 762s tests/test_xeee_calendar.py::TestXEEECalendar::test_base_integrity PASSED [ 34%] 763s tests/test_xeee_calendar.py::TestXEEECalendar::test_calculated_against_csv PASSED [ 34%] 763s tests/test_xeee_calendar.py::TestXEEECalendar::test_start_end PASSED [ 34%] 763s tests/test_xeee_calendar.py::TestXEEECalendar::test_invalid_input PASSED [ 34%] 763s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_min PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_max PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_sanity_check_session_lengths PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_specification PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_daylight_savings PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_opens_closes_break_starts_ends PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[both] PASSED [ 34%] 764s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[both] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[both] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-next] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-next] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-next] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-next] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[left] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-previous] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-previous] PASSED [ 34%] 765s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-previous] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-next] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-next] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[right] PASSED [ 34%] 766s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[right] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[right] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-previous] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 34%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-next] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[neither] PASSED [ 35%] 767s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[neither] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[right] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[left] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[both] PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_has_break PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_regular_holidays_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_holidays_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample_time PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays_time PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample_time PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_open_close_break_start_end PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_has_break PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_next_prev_session PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_offset PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_session PASSED [ 35%] 768s tests/test_xeee_calendar.py::TestXEEECalendar::test_date_to_session PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_open_close PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_in_range PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_has_break PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_window PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_distance PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_trading_index PASSED [ 35%] 769s tests/test_xeee_calendar.py::TestXEEECalendar::test_deprecated PASSED [ 35%] 769s tests/test_xetr_calendar.py::TestXETRCalendar::test_base_integrity PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_calculated_against_csv PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_start_end PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_invalid_input PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_min PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_max PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_sanity_check_session_lengths PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_specification PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_daylight_savings PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_opens_closes_break_starts_ends PASSED [ 35%] 770s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[both] PASSED [ 35%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[both] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[both] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-next] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-next] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-next] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-next] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[left] PASSED [ 36%] 771s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[left] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[left] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[left] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-next] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-next] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[right] PASSED [ 36%] 772s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[right] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[right] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-previous] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-next] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[neither] PASSED [ 36%] 773s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[neither] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[right] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[left] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[both] PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_has_break PASSED [ 36%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_regular_holidays_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_holidays_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample_time PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays_time PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample_time PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_open_close_break_start_end PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_has_break PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_next_prev_session PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_offset PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_session PASSED [ 37%] 774s tests/test_xetr_calendar.py::TestXETRCalendar::test_date_to_session PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_open_close PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_in_range PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_has_break PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_window PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_distance PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_trading_index PASSED [ 37%] 775s tests/test_xetr_calendar.py::TestXETRCalendar::test_deprecated PASSED [ 37%] 775s tests/test_xfra_calendar.py::TestXFRACalendar::test_base_integrity PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_calculated_against_csv PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_start_end PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_invalid_input PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_min PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_max PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_sanity_check_session_lengths PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_specification PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_daylight_savings PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions PASSED [ 37%] 776s tests/test_xfra_calendar.py::TestXFRACalendar::test_opens_closes_break_starts_ends PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[both] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-next] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-next] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 37%] 777s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[left] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-next] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 37%] 778s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[right] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-previous] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-next] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 37%] 779s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[neither] PASSED [ 37%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[neither] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[right] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[left] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[both] PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_has_break PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_regular_holidays_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_holidays_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample_time PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays_time PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample_time PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_open_close_break_start_end PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_has_break PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_next_prev_session PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_offset PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_session PASSED [ 38%] 780s tests/test_xfra_calendar.py::TestXFRACalendar::test_date_to_session PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_open_close PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_in_range PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_has_break PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_window PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_distance PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_trading_index PASSED [ 38%] 781s tests/test_xfra_calendar.py::TestXFRACalendar::test_deprecated PASSED [ 38%] 781s tests/test_xham_calendar.py::TestXHAMCalendar::test_base_integrity PASSED [ 38%] 782s tests/test_xham_calendar.py::TestXHAMCalendar::test_calculated_against_csv PASSED [ 38%] 782s tests/test_xham_calendar.py::TestXHAMCalendar::test_start_end PASSED [ 38%] 782s tests/test_xham_calendar.py::TestXHAMCalendar::test_invalid_input PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_min PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_max PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_sanity_check_session_lengths PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_specification PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_daylight_savings PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_opens_closes_break_starts_ends PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[both] PASSED [ 38%] 783s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[both] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[both] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-next] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-next] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[left] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[left] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[left] PASSED [ 38%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[left] PASSED [ 39%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[left] PASSED [ 39%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[left] PASSED [ 39%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[left] PASSED [ 39%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[left] PASSED [ 39%] 784s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[left] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[left] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-next] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 39%] 785s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-previous] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-next] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[neither] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[right] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[left] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[both] PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_has_break PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_regular_holidays_sample PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_sample PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_holidays_sample PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens_sample PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample_time PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays_time PASSED [ 39%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample_time PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_open_close_break_start_end PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_has_break PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_next_prev_session PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_offset PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_session PASSED [ 40%] 787s tests/test_xham_calendar.py::TestXHAMCalendar::test_date_to_session PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_open_close PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_in_range PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_has_break PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_window PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_distance PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_trading_index PASSED [ 40%] 788s tests/test_xham_calendar.py::TestXHAMCalendar::test_deprecated PASSED [ 40%] 788s tests/test_xhel_calendar.py::TestXHELCalendar::test_base_integrity PASSED [ 40%] 789s tests/test_xhel_calendar.py::TestXHELCalendar::test_calculated_against_csv PASSED [ 40%] 789s tests/test_xhel_calendar.py::TestXHELCalendar::test_start_end PASSED [ 40%] 789s tests/test_xhel_calendar.py::TestXHELCalendar::test_invalid_input PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_min PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_max PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_sanity_check_session_lengths PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_specification PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_daylight_savings PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_opens_closes_break_starts_ends PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[both] PASSED [ 40%] 790s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[both] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[both] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[left] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-next] PASSED [ 40%] 791s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[right] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-previous] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-next] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[neither] PASSED [ 40%] 792s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[neither] PASSED [ 40%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[neither] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[neither] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[neither] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[neither] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[neither] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[right] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[left] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[both] PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_has_break PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_regular_holidays_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_holidays_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample_time PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays_time PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample_time PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_open_close_break_start_end PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_has_break PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_next_prev_session PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_offset PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_session PASSED [ 41%] 793s tests/test_xhel_calendar.py::TestXHELCalendar::test_date_to_session PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_open_close PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_in_range PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_has_break PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_window PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_distance PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_trading_index PASSED [ 41%] 794s tests/test_xhel_calendar.py::TestXHELCalendar::test_deprecated PASSED [ 41%] 794s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_base_integrity PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calculated_against_csv PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_start_end PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_invalid_input PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_min PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_max PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sanity_check_session_lengths PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_specification PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_daylight_savings PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_opens_closes_break_starts_ends PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[both] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[both] PASSED [ 41%] 797s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[both] PASSED [ 41%] 797s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[both] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-next] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-next] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[left] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-previous] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-previous] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-previous] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-next] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[right] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-none] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-none] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-none] PASSED [ 42%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-none] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-previous] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-next] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[neither] PASSED [ 42%] 801s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[neither] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[right] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[left] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[both] PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_has_break PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_regular_holidays_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_holidays_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample_time PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays_time PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample_time PASSED [ 42%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_open_close_break_start_end PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_has_break PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_next_prev_session PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_offset PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_session PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_date_to_session PASSED [ 43%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_open_close PASSED [ 43%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_in_range PASSED [ 43%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_has_break PASSED [ 43%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_window PASSED [ 43%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_distance PASSED [ 43%] 804s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_trading_index PASSED [ 43%] 804s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_deprecated PASSED [ 43%] 804s tests/test_xice_calendar.py::TestXICECalendar::test_base_integrity PASSED [ 43%] 804s tests/test_xice_calendar.py::TestXICECalendar::test_calculated_against_csv PASSED [ 43%] 804s tests/test_xice_calendar.py::TestXICECalendar::test_start_end PASSED [ 43%] 804s tests/test_xice_calendar.py::TestXICECalendar::test_invalid_input PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_bound_min PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_bound_max PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_sanity_check_session_lengths PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_specification PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_daylight_savings PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_sessions PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_opens_closes_break_starts_ends PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[both] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[left] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-next] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[right] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[right] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[right] PASSED [ 43%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-previous] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-next] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[neither] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[right] PASSED [ 43%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[right] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[left] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[both] PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_has_break PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_regular_holidays_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_non_holidays_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample_time PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays_time PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample_time PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_open_close_break_start_end PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_has_break PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_next_prev_session PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_session_offset PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_is_session PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_date_to_session PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_open_close PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_in_range PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_has_break PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_window PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_distance PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_trading_index PASSED [ 44%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_deprecated PASSED [ 44%] 806s tests/test_xidx_calendar.py::TestXIDXCalendar::test_base_integrity PASSED [ 44%] 807s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calculated_against_csv PASSED [ 44%] 807s tests/test_xidx_calendar.py::TestXIDXCalendar::test_start_end PASSED [ 44%] 807s tests/test_xidx_calendar.py::TestXIDXCalendar::test_invalid_input PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_min PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_max PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sanity_check_session_lengths PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_specification PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_daylight_savings PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_opens_closes_break_starts_ends PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[both] PASSED [ 44%] 808s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[both] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[both] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-next] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-next] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[left] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-previous] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-previous] PASSED [ 44%] 809s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-previous] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-next] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[right] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[right] PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[right] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-previous] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-next] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 45%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[neither] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[right] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[left] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[both] PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_has_break PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_regular_holidays_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_holidays_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample_time PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays_time PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample_time PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_open_close_break_start_end PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_has_break PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_next_prev_session PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_offset PASSED [ 45%] 811s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_session PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_date_to_session PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_open_close PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_in_range PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_has_break PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_window PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_distance PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_index PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_deprecated PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_days PASSED [ 45%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 46%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2018-holidays1] PASSED [ 46%] 812s tests/test_xist_calendar.py::TestXISTCalendar::test_base_integrity PASSED [ 46%] 813s tests/test_xist_calendar.py::TestXISTCalendar::test_calculated_against_csv PASSED [ 46%] 813s tests/test_xist_calendar.py::TestXISTCalendar::test_start_end PASSED [ 46%] 813s tests/test_xist_calendar.py::TestXISTCalendar::test_invalid_input PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_min PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_max PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_sanity_check_session_lengths PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_specification PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_daylight_savings PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_opens_closes_break_starts_ends PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[both] PASSED [ 46%] 814s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[both] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[both] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[left] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-next] PASSED [ 46%] 815s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[right] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-previous] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-next] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[neither] PASSED [ 46%] 816s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[neither] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[right] PASSED [ 46%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[right] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[left] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[both] PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_has_break PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_regular_holidays_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_non_holidays_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample_time PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays_time PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample_time PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_session_open_close_break_start_end PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_session_has_break PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_next_prev_session PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_session_offset PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_is_session PASSED [ 47%] 817s tests/test_xist_calendar.py::TestXISTCalendar::test_date_to_session PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_open_close PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_in_range PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_has_break PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_window PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_distance PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_trading_index PASSED [ 47%] 818s tests/test_xist_calendar.py::TestXISTCalendar::test_deprecated PASSED [ 47%] 818s tests/test_xjse_calendar.py::TestXJSECalendar::test_base_integrity PASSED [ 47%] 819s tests/test_xjse_calendar.py::TestXJSECalendar::test_calculated_against_csv PASSED [ 47%] 819s tests/test_xjse_calendar.py::TestXJSECalendar::test_start_end PASSED [ 47%] 819s tests/test_xjse_calendar.py::TestXJSECalendar::test_invalid_input PASSED [ 47%] 819s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_min PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_max PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_sanity_check_session_lengths PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_specification PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_daylight_savings PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_opens_closes_break_starts_ends PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[both] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-next] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-next] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 47%] 820s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[left] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-next] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[right] PASSED [ 47%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[right] PASSED [ 48%] 821s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[right] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[right] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-previous] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-next] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[neither] PASSED [ 48%] 822s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[neither] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[right] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[left] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[both] PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_has_break PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_regular_holidays_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_holidays_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample_time PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays_time PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample_time PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_open_close_break_start_end PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_has_break PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_next_prev_session PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_offset PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_session PASSED [ 48%] 823s tests/test_xjse_calendar.py::TestXJSECalendar::test_date_to_session PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_open_close PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_in_range PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_has_break PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_window PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_distance PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_trading_index PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_deprecated PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_no_weekend_sessions PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2019-holidays0] PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2018-holidays1] PASSED [ 48%] 824s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2016-holidays2] PASSED [ 48%] 824s tests/test_xkar_calendar.py::TestXKARCalendar::test_base_integrity PASSED [ 48%] 824s tests/test_xkar_calendar.py::TestXKARCalendar::test_calculated_against_csv PASSED [ 48%] 824s tests/test_xkar_calendar.py::TestXKARCalendar::test_start_end PASSED [ 49%] 824s tests/test_xkar_calendar.py::TestXKARCalendar::test_invalid_input PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_min PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_max PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_sanity_check_session_lengths PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_specification PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_daylight_savings PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_opens_closes_break_starts_ends PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[both] PASSED [ 49%] 825s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[both] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[both] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-next] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-next] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[left] PASSED [ 49%] 826s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[left] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[left] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-next] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[right] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-none] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-none] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-none] PASSED [ 49%] 827s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-none] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-previous] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-next] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[neither] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[right] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[left] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[left] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[left] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[left] PASSED [ 49%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[left] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[both] PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_has_break PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_regular_holidays_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_holidays_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample_time PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays_time PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample_time PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_open_close_break_start_end PASSED [ 50%] 828s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_has_break PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_next_prev_session PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_offset PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_session PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_date_to_session PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_open_close PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_in_range PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_has_break PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_window PASSED [ 50%] 829s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_distance PASSED [ 50%] 830s tests/test_xkar_calendar.py::TestXKARCalendar::test_trading_index PASSED [ 50%] 830s tests/test_xkar_calendar.py::TestXKARCalendar::test_deprecated PASSED [ 50%] 830s tests/test_xkar_calendar.py::TestXKARCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 50%] 830s tests/test_xkls_calendar.py::TestXKLSCalendar::test_base_integrity PASSED [ 50%] 830s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calculated_against_csv PASSED [ 50%] 830s tests/test_xkls_calendar.py::TestXKLSCalendar::test_start_end PASSED [ 50%] 830s tests/test_xkls_calendar.py::TestXKLSCalendar::test_invalid_input PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_min PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_max PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sanity_check_session_lengths PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_specification PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_daylight_savings PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_opens_closes_break_starts_ends PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[both] PASSED [ 50%] 831s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[both] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[both] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-next] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-next] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[left] PASSED [ 50%] 832s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[left] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[left] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-next] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[right] PASSED [ 50%] 833s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[right] PASSED [ 50%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[right] PASSED [ 50%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-none] PASSED [ 50%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-previous] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-next] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[neither] PASSED [ 51%] 834s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[neither] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[right] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[left] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[both] PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_has_break PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_regular_holidays_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_holidays_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample_time PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays_time PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample_time PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_open_close_break_start_end PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_has_break PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_next_prev_session PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_offset PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_session PASSED [ 51%] 835s tests/test_xkls_calendar.py::TestXKLSCalendar::test_date_to_session PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_open_close PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_in_range PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_has_break PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_window PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_distance PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_trading_index PASSED [ 51%] 836s tests/test_xkls_calendar.py::TestXKLSCalendar::test_deprecated PASSED [ 51%] 836s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_base_integrity PASSED [ 51%] 843s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv PASSED [ 51%] 845s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end PASSED [ 51%] 845s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_invalid_input PASSED [ 51%] 848s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sanity_check_session_lengths PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_specification PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_daylight_savings PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions PASSED [ 51%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_opens_closes_break_starts_ends PASSED [ 52%] 849s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[both] PASSED [ 52%] 850s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[both] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[both] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-next] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-next] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[left] PASSED [ 52%] 851s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[left] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[left] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[left] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-next] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 52%] 852s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[right] PASSED [ 52%] 853s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[right] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[right] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-previous] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-next] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 52%] 854s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[neither] PASSED [ 52%] 855s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[neither] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[right] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[left] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[both] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[both] PASSED [ 52%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[both] PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_has_break PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_regular_holidays_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_holidays_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample_time PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays_time PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample_time PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_open_close_break_start_end PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_has_break PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_next_prev_session PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_offset PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_session PASSED [ 53%] 856s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_date_to_session PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_open_close PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_in_range PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_has_break PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_window PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_distance PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_trading_index PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_deprecated PASSED [ 53%] 857s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens XFAIL [ 53%] 858s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_historical_regular_holidays_fall_into_precomputed_holidays PASSED [ 53%] 858s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_feb_29_2022_in_lunar_calendar PASSED [ 53%] 858s tests/test_xlim_calendar.py::TestXLIMCalendar::test_base_integrity PASSED [ 53%] 859s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calculated_against_csv PASSED [ 53%] 859s tests/test_xlim_calendar.py::TestXLIMCalendar::test_start_end PASSED [ 53%] 859s tests/test_xlim_calendar.py::TestXLIMCalendar::test_invalid_input PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_min PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_max PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sanity_check_session_lengths PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_specification PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_daylight_savings PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_opens_closes_break_starts_ends PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[both] PASSED [ 53%] 860s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[both] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[both] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[both] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-next] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-next] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[left] PASSED [ 53%] 861s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[left] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[left] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-next] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[right] PASSED [ 53%] 862s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[right] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[right] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-none] PASSED [ 53%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-previous] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-next] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[neither] PASSED [ 54%] 863s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[neither] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[right] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[left] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[both] PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_has_break PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_regular_holidays_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_holidays_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample_time PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays_time PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample_time PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_open_close_break_start_end PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_has_break PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_next_prev_session PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_offset PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_session PASSED [ 54%] 864s tests/test_xlim_calendar.py::TestXLIMCalendar::test_date_to_session PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_open_close PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_in_range PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_has_break PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_window PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_distance PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_trading_index PASSED [ 54%] 865s tests/test_xlim_calendar.py::TestXLIMCalendar::test_deprecated PASSED [ 54%] 865s tests/test_xlis_calendar.py::TestXLISCalendar::test_base_integrity PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_calculated_against_csv PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_start_end PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_invalid_input PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_min PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_max PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_sanity_check_session_lengths PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_specification PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_daylight_savings PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_opens_closes_break_starts_ends PASSED [ 54%] 866s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[both] PASSED [ 54%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[both] PASSED [ 54%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[both] PASSED [ 54%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[both] PASSED [ 54%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[both] PASSED [ 54%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[both] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[both] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[both] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[both] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[both] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-next] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-next] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[left] PASSED [ 55%] 867s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[left] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[left] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-next] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[right] PASSED [ 55%] 868s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-previous] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-next] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[neither] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[right] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[left] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[both] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[both] PASSED [ 55%] 869s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[both] PASSED [ 55%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[both] PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[both] PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_has_break PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_regular_holidays_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_holidays_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample_time PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays_time PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample_time PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_open_close_break_start_end PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_has_break PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_next_prev_session PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_offset PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_session PASSED [ 56%] 870s tests/test_xlis_calendar.py::TestXLISCalendar::test_date_to_session PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_open_close PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_in_range PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_has_break PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_window PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_distance PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_trading_index PASSED [ 56%] 872s tests/test_xlis_calendar.py::TestXLISCalendar::test_deprecated PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_base_integrity PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calculated_against_csv PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_start_end PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_invalid_input PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_min PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_max PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sanity_check_session_lengths PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_specification PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_daylight_savings PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[both] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[left] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[right] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[neither] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[neither] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[neither] PASSED [ 56%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[right] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[right] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[right] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[right] PASSED [ 57%] 872s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[right] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[right] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[right] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_has_break PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_regular_holidays_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_holidays_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample_time PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays_time PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample_time PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_open_close_break_start_end PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_has_break PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_next_prev_session PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_offset PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_session PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_date_to_session PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_open_close PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_in_range PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_has_break PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_window PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_distance PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_trading_index PASSED [ 57%] 873s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_deprecated PASSED [ 57%] 873s tests/test_xlju_calendar.py::TestXLJUCalendar::test_base_integrity PASSED [ 57%] 873s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calculated_against_csv PASSED [ 57%] 873s tests/test_xlju_calendar.py::TestXLJUCalendar::test_start_end PASSED [ 57%] 873s tests/test_xlju_calendar.py::TestXLJUCalendar::test_invalid_input PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_bound_min PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_bound_max PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sanity_check_session_lengths PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_adhoc_holidays_specification PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_daylight_savings PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_opens_closes_break_starts_ends PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[both] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-next] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-next] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 57%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[left] PASSED [ 58%] 874s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-next] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[right-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[left-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[both-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_session[neither-next] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_properties[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_calendar_bounds_properties[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minute_methods[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_minutes[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_trading_minute[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_break_minute[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_on_minute[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_open_at_time[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_minute[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[neither] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[right] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[left] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_past_session[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_to_future_session[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minute_offset_by_sessions[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_in_range[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_window[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_distance[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_minutes_to_sessions[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_minutes_count[both] PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_has_break PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_regular_holidays_sample PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_adhoc_holidays_sample PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_holidays_sample PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_late_opens_sample PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_sample PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_sample_time PASSED [ 58%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_weekdays PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes_weekdays_time PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_early_closes_sample PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_non_early_closes_sample_time PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_late_opens PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_early_closes PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_open_close_break_start_end PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_has_break PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_next_prev_session PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_session_offset PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_is_session PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_date_to_session PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_prev_next_open_close PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_in_range PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_has_break PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_window PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_sessions_distance PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_trading_index PASSED [ 59%] 875s tests/test_xlju_calendar.py::TestXLJUCalendar::test_deprecated PASSED [ 59%] 875s tests/test_xlon_calendar.py::TestXLONCalendar::test_base_integrity PASSED [ 59%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_calculated_against_csv PASSED [ 59%] 876s tests/test_xlon_calendar.py::TestXLONCalendar::test_start_end PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_invalid_input PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_min PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_max PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_sanity_check_session_lengths PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_specification PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_daylight_savings PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_opens_closes_break_starts_ends PASSED [ 59%] 877s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[both] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-next] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-next] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-next] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-next] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[left] PASSED [ 59%] 878s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[left] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-next] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-next] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[right] PASSED [ 59%] 879s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[right] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[right] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-previous] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-next] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[neither] PASSED [ 59%] 880s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[neither] PASSED [ 59%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[neither] PASSED [ 59%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[neither] PASSED [ 59%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[neither] PASSED [ 59%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[neither] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[right] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[left] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[both] PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_has_break PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_regular_holidays_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_holidays_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample_time PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays_time PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample_time PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_open_close_break_start_end PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_has_break PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_next_prev_session PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_offset PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_session PASSED [ 60%] 881s tests/test_xlon_calendar.py::TestXLONCalendar::test_date_to_session PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_open_close PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_in_range PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_has_break PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_window PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_distance PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_trading_index PASSED [ 60%] 882s tests/test_xlon_calendar.py::TestXLONCalendar::test_deprecated PASSED [ 60%] 882s tests/test_xlux_calendar.py::TestXLUXCalendar::test_base_integrity PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calculated_against_csv PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_start_end PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_invalid_input PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_min PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_max PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sanity_check_session_lengths PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_specification PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_daylight_savings PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_opens_closes_break_starts_ends PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[both] PASSED [ 60%] 883s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[both] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[both] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[both] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-next] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-next] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[left] PASSED [ 60%] 884s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[left] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[left] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-next] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[right] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-next] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[neither] PASSED [ 61%] 885s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[neither] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[right] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[left] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[both] PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_has_break PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_regular_holidays_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_holidays_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample_time PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays_time PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample_time PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_open_close_break_start_end PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_has_break PASSED [ 61%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_next_prev_session PASSED [ 62%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_offset PASSED [ 62%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_session PASSED [ 62%] 886s tests/test_xlux_calendar.py::TestXLUXCalendar::test_date_to_session PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_open_close PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_in_range PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_has_break PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_window PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_distance PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_trading_index PASSED [ 62%] 887s tests/test_xlux_calendar.py::TestXLUXCalendar::test_deprecated PASSED [ 62%] 887s tests/test_xmad_calendar.py::TestXMADCalendar::test_base_integrity PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_calculated_against_csv PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_start_end PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_invalid_input PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_min PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_max PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_sanity_check_session_lengths PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_specification PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_daylight_savings PASSED [ 62%] 888s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_opens_closes_break_starts_ends PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[both] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-next] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-next] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-next] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-next] PASSED [ 62%] 889s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[left] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-previous] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-previous] PASSED [ 62%] 890s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-previous] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-next] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-next] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[right] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-previous] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-next] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 62%] 891s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[neither] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[right] PASSED [ 62%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[right] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[left] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[both] PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_has_break PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_regular_holidays_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_holidays_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample_time PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays_time PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample_time PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes PASSED [ 63%] 892s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_open_close_break_start_end PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_has_break PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_next_prev_session PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_offset PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_session PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_date_to_session PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_open_close PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_in_range PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_has_break PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_window PASSED [ 63%] 893s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_distance PASSED [ 63%] 894s tests/test_xmad_calendar.py::TestXMADCalendar::test_trading_index PASSED [ 63%] 894s tests/test_xmad_calendar.py::TestXMADCalendar::test_deprecated PASSED [ 63%] 894s tests/test_xmex_calendar.py::TestXMEXCalendar::test_base_integrity PASSED [ 63%] 894s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calculated_against_csv PASSED [ 63%] 894s tests/test_xmex_calendar.py::TestXMEXCalendar::test_start_end PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_invalid_input PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_min PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_max PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sanity_check_session_lengths PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_specification PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_daylight_savings PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_opens_closes_break_starts_ends PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[both] PASSED [ 63%] 895s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[both] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[both] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[both] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-next] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-next] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[left] PASSED [ 63%] 896s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[left] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[left] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-next] PASSED [ 63%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[right] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-previous] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-next] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 64%] 897s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[neither] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[right] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[left] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[both] PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_has_break PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_regular_holidays_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_holidays_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample_time PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays_time PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample_time PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_open_close_break_start_end PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_has_break PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_next_prev_session PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_offset PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_session PASSED [ 64%] 898s tests/test_xmex_calendar.py::TestXMEXCalendar::test_date_to_session PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_open_close PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_in_range PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_has_break PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_window PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_distance PASSED [ 64%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_trading_index PASSED [ 65%] 899s tests/test_xmex_calendar.py::TestXMEXCalendar::test_deprecated PASSED [ 65%] 899s tests/test_xmil_calendar.py::TestXMILCalendar::test_base_integrity PASSED [ 65%] 900s tests/test_xmil_calendar.py::TestXMILCalendar::test_calculated_against_csv PASSED [ 65%] 900s tests/test_xmil_calendar.py::TestXMILCalendar::test_start_end PASSED [ 65%] 900s tests/test_xmil_calendar.py::TestXMILCalendar::test_invalid_input PASSED [ 65%] 900s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_min PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_max PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_sanity_check_session_lengths PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_specification PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_daylight_savings PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_opens_closes_break_starts_ends PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[both] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-next] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-next] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-next] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-next] PASSED [ 65%] 901s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[left] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-next] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-next] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[right] PASSED [ 65%] 902s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[right] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[right] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[right] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-previous] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-next] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[neither] PASSED [ 65%] 903s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[neither] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[right] PASSED [ 65%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[left] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[both] PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_has_break PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_regular_holidays_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_holidays_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample_time PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays_time PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample_time PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_open_close_break_start_end PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_has_break PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_next_prev_session PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_offset PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_session PASSED [ 66%] 904s tests/test_xmil_calendar.py::TestXMILCalendar::test_date_to_session PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_open_close PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_in_range PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_has_break PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_window PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_distance PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_trading_index PASSED [ 66%] 905s tests/test_xmil_calendar.py::TestXMILCalendar::test_deprecated PASSED [ 66%] 905s tests/test_xmos_calendar.py::TestXMOSCalendar::test_base_integrity PASSED [ 66%] 910s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv PASSED [ 66%] 911s tests/test_xmos_calendar.py::TestXMOSCalendar::test_start_end PASSED [ 66%] 911s tests/test_xmos_calendar.py::TestXMOSCalendar::test_invalid_input PASSED [ 66%] 914s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_max PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sanity_check_session_lengths PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_specification PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_daylight_savings PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_opens_closes_break_starts_ends PASSED [ 66%] 915s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[both] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-next] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-next] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 66%] 916s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[left] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-next] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 66%] 917s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[right] PASSED [ 66%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[right] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[right] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[right] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-previous] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-next] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[neither] PASSED [ 67%] 918s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[neither] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[right] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[left] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[both] PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_has_break PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_regular_holidays_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_holidays_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample_time PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays_time PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample_time PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_open_close_break_start_end PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_has_break PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_next_prev_session PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_offset PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_session PASSED [ 67%] 919s tests/test_xmos_calendar.py::TestXMOSCalendar::test_date_to_session PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_open_close PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_in_range PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_has_break PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_window PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_distance PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_trading_index PASSED [ 67%] 920s tests/test_xmos_calendar.py::TestXMOSCalendar::test_deprecated PASSED [ 67%] 920s tests/test_xnys_calendar.py::TestXNYSCalendar::test_base_integrity PASSED [ 67%] 921s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calculated_against_csv PASSED [ 67%] 921s tests/test_xnys_calendar.py::TestXNYSCalendar::test_start_end PASSED [ 67%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_invalid_input PASSED [ 67%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_min PASSED [ 67%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_max PASSED [ 67%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sanity_check_session_lengths PASSED [ 68%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_specification PASSED [ 68%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_daylight_savings PASSED [ 68%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions PASSED [ 68%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_opens_closes_break_starts_ends PASSED [ 68%] 922s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[both] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-next] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-next] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[left] PASSED [ 68%] 923s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[left] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[left] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-next] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[right] PASSED [ 68%] 924s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-previous] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-next] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[neither] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[right] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[left] PASSED [ 68%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[left] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[left] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[both] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[both] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[both] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[both] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[both] PASSED [ 69%] 925s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[both] PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[both] PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[both] PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[both] PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[both] PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_has_break PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_regular_holidays_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_holidays_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample_time PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays_time PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample_time PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_open_close_break_start_end PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_has_break PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_next_prev_session PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_offset PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_session PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_date_to_session PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_open_close PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_in_range PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_has_break PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_window PASSED [ 69%] 926s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_distance PASSED [ 69%] 927s tests/test_xnys_calendar.py::TestXNYSCalendar::test_trading_index PASSED [ 69%] 927s tests/test_xnys_calendar.py::TestXNYSCalendar::test_deprecated PASSED [ 69%] 927s tests/test_xnze_calendar.py::TestXNZECalendar::test_base_integrity PASSED [ 69%] 927s tests/test_xnze_calendar.py::TestXNZECalendar::test_calculated_against_csv PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_start_end PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_invalid_input PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_min PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_max PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_sanity_check_session_lengths PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_specification PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_daylight_savings PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_opens_closes_break_starts_ends PASSED [ 69%] 928s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[both] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-next] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-next] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-next] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-next] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[left] PASSED [ 69%] 929s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[left] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[left] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-next] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-next] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[right] PASSED [ 69%] 930s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[right] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[right] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-none] PASSED [ 69%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-none] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-previous] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-next] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[neither] PASSED [ 70%] 931s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[neither] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[right] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[left] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[both] PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_has_break PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_regular_holidays_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_holidays_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample_time PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays_time PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample_time PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_open_close_break_start_end PASSED [ 70%] 932s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_has_break PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_next_prev_session PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_offset PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_session PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_date_to_session PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_open_close PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_in_range PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_has_break PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_window PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_distance PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_trading_index PASSED [ 70%] 934s tests/test_xnze_calendar.py::TestXNZECalendar::test_deprecated PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_base_integrity PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calculated_against_csv PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_start_end PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_invalid_input PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_min PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_max PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sanity_check_session_lengths PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_specification PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_daylight_savings PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_opens_closes_break_starts_ends PASSED [ 70%] 934s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[both] PASSED [ 70%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[both] PASSED [ 70%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[both] PASSED [ 70%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[both] PASSED [ 70%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[both] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-next] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-next] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-next] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-next] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[left] PASSED [ 71%] 935s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[left] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[left] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-next] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-next] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[right] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-none] PASSED [ 71%] 936s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-previous] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-next] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[neither] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[right] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[left] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[both] PASSED [ 71%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[both] PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[both] PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[both] PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_has_break PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_regular_holidays_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_holidays_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample_time PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays_time PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample PASSED [ 72%] 937s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample_time PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_open_close_break_start_end PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_has_break PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_next_prev_session PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_offset PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_session PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_date_to_session PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_open_close PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_in_range PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_has_break PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_window PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_distance PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_trading_index PASSED [ 72%] 938s tests/test_xosl_calendar.py::TestXOSLCalendar::test_deprecated PASSED [ 72%] 938s tests/test_xpar_calendar.py::TestXPARCalendar::test_base_integrity PASSED [ 72%] 939s tests/test_xpar_calendar.py::TestXPARCalendar::test_calculated_against_csv PASSED [ 72%] 939s tests/test_xpar_calendar.py::TestXPARCalendar::test_start_end PASSED [ 72%] 939s tests/test_xpar_calendar.py::TestXPARCalendar::test_invalid_input PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_min PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_max PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_sanity_check_session_lengths PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_specification PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_daylight_savings PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_opens_closes_break_starts_ends PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[both] PASSED [ 72%] 940s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[both] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[both] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[left] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 72%] 941s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[right] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-previous] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-next] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[neither] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[neither] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[neither] PASSED [ 72%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[neither] PASSED [ 73%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[neither] PASSED [ 73%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[neither] PASSED [ 73%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[neither] PASSED [ 73%] 942s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[neither] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[right] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[left] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[both] PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_has_break PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_regular_holidays_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_holidays_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample_time PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays_time PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample_time PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_open_close_break_start_end PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_has_break PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_next_prev_session PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_offset PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_session PASSED [ 73%] 943s tests/test_xpar_calendar.py::TestXPARCalendar::test_date_to_session PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_open_close PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_in_range PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_has_break PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_window PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_distance PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_trading_index PASSED [ 73%] 944s tests/test_xpar_calendar.py::TestXPARCalendar::test_deprecated PASSED [ 73%] 944s tests/test_xphs_calendar.py::TestXPHSCalendar::test_base_integrity PASSED [ 73%] 945s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calculated_against_csv PASSED [ 73%] 945s tests/test_xphs_calendar.py::TestXPHSCalendar::test_start_end PASSED [ 73%] 945s tests/test_xphs_calendar.py::TestXPHSCalendar::test_invalid_input PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_min PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_max PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sanity_check_session_lengths PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_specification PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_daylight_savings PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_opens_closes_break_starts_ends PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[both] PASSED [ 73%] 946s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[both] PASSED [ 73%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[both] PASSED [ 73%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-next] PASSED [ 73%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 73%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-next] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[left] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-next] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 74%] 947s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[right] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-previous] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-next] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[neither] PASSED [ 74%] 948s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[neither] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[right] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[left] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[both] PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_has_break PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_regular_holidays_sample PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_sample PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_holidays_sample PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens_sample PASSED [ 74%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample_time PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays_time PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample_time PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_open_close_break_start_end PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_has_break PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_next_prev_session PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_offset PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_session PASSED [ 75%] 949s tests/test_xphs_calendar.py::TestXPHSCalendar::test_date_to_session PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_open_close PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_in_range PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_has_break PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_window PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_distance PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_trading_index PASSED [ 75%] 950s tests/test_xphs_calendar.py::TestXPHSCalendar::test_deprecated PASSED [ 75%] 950s tests/test_xpra_calendar.py::TestXPRACalendar::test_base_integrity PASSED [ 75%] 951s tests/test_xpra_calendar.py::TestXPRACalendar::test_calculated_against_csv PASSED [ 75%] 951s tests/test_xpra_calendar.py::TestXPRACalendar::test_start_end PASSED [ 75%] 951s tests/test_xpra_calendar.py::TestXPRACalendar::test_invalid_input PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_min PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_max PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_sanity_check_session_lengths PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_specification PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_daylight_savings PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_opens_closes_break_starts_ends PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[both] PASSED [ 75%] 952s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[both] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[both] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-next] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-next] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[left] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-next] PASSED [ 75%] 953s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 75%] 955s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[right] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-previous] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-next] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[neither] PASSED [ 75%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[neither] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[right] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[left] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[both] PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_has_break PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_regular_holidays_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_holidays_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample_time PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays_time PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample_time PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_open_close_break_start_end PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_has_break PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_next_prev_session PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_offset PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_session PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_date_to_session PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_open_close PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_in_range PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_has_break PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_window PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_distance PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_trading_index PASSED [ 76%] 956s tests/test_xpra_calendar.py::TestXPRACalendar::test_deprecated PASSED [ 76%] 956s tests/test_xris_calendar.py::TestXRISCalendar::test_base_integrity PASSED [ 76%] 956s tests/test_xris_calendar.py::TestXRISCalendar::test_calculated_against_csv PASSED [ 76%] 956s tests/test_xris_calendar.py::TestXRISCalendar::test_start_end PASSED [ 76%] 956s tests/test_xris_calendar.py::TestXRISCalendar::test_invalid_input PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_min PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_max PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_sanity_check_session_lengths PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_specification PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_daylight_savings PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_opens_closes_break_starts_ends PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[both] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-next] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-next] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[left] PASSED [ 76%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[left] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[left] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[left] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-previous] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-previous] PASSED [ 77%] 957s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-previous] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-next] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[right] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-previous] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-next] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[neither] PASSED [ 77%] 958s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[neither] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[right] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[left] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[both] PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_has_break PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_regular_holidays_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_non_holidays_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample_time PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays_time PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample_time PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_session_open_close_break_start_end PASSED [ 77%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_session_has_break PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_next_prev_session PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_session_offset PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_is_session PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_date_to_session PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_open_close PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_in_range PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_has_break PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_window PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_distance PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_trading_index PASSED [ 78%] 960s tests/test_xris_calendar.py::TestXRISCalendar::test_deprecated PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_base_integrity PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_calculated_against_csv PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_start_end PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_invalid_input PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_min PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_max PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sanity_check_session_lengths PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_specification PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_daylight_savings PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_opens_closes_break_starts_ends PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[both] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[left] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[right] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[neither] PASSED [ 78%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[right] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[left] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[both] PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_has_break PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_regular_holidays_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_holidays_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample_time PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays_time PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample_time PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_open_close_break_start_end PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_has_break PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_next_prev_session PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_offset PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_session PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_date_to_session PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_open_close PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_in_range PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_has_break PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_window PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_distance PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_trading_index PASSED [ 79%] 960s tests/test_xsau_calendar.py::TestXASUCalendar::test_deprecated PASSED [ 79%] 960s tests/test_xses_calendar.py::TestXSESCalendar::test_base_integrity PASSED [ 79%] 961s tests/test_xses_calendar.py::TestXSESCalendar::test_calculated_against_csv PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_start_end PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_invalid_input PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_min PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_max PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_sanity_check_session_lengths PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_specification PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_daylight_savings PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_opens_closes_break_starts_ends PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[both] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-next] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-next] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-next] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[left] PASSED [ 79%] 962s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[left] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[left] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[left] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-previous] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-previous] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-previous] PASSED [ 79%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 80%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-next] PASSED [ 80%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 80%] 963s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[right] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-previous] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-next] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 80%] 964s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[neither] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[right] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[left] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[both] PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_has_break PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_regular_holidays_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_non_holidays_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample_time PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays_time PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample_time PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_session_open_close_break_start_end PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_session_has_break PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_next_prev_session PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_session_offset PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_is_session PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_date_to_session PASSED [ 80%] 966s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_open_close PASSED [ 80%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_in_range PASSED [ 80%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_has_break PASSED [ 80%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_window PASSED [ 81%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_distance PASSED [ 81%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_trading_index PASSED [ 81%] 967s tests/test_xses_calendar.py::TestXSESCalendar::test_deprecated PASSED [ 81%] 967s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_base_integrity PASSED [ 81%] 967s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calculated_against_csv PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_start_end PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_invalid_input PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_min PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_max PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sanity_check_session_lengths PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_specification PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_daylight_savings PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_opens_closes_break_starts_ends PASSED [ 81%] 968s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[both] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-next] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-next] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 81%] 969s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[left] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-next] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[right] PASSED [ 81%] 970s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[right] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[right] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[right] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-previous] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-next] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[neither] PASSED [ 81%] 971s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[neither] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[right] PASSED [ 81%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[right] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[right] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[left] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[both] PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_has_break PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_regular_holidays_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_holidays_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample_time PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays_time PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample_time PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_open_close_break_start_end PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_has_break PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_next_prev_session PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_offset PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_session PASSED [ 82%] 972s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_date_to_session PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_open_close PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_in_range PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_has_break PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_window PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_distance PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_trading_index PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_deprecated PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_additional_early_closes_sample PASSED [ 82%] 973s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_close_time_change PASSED [ 82%] 973s tests/test_xshg_calendar.py::TestXSHGCalendar::test_base_integrity PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calculated_against_csv PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_start_end PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_invalid_input PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_min PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_max PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sanity_check_session_lengths PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_specification PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_daylight_savings PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_opens_closes_break_starts_ends PASSED [ 82%] 974s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[both] PASSED [ 82%] 975s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[both] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[both] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-next] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-next] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[left] PASSED [ 82%] 976s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[left] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[left] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-next] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 82%] 977s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[right] PASSED [ 82%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[right] PASSED [ 82%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[right] PASSED [ 82%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[right] PASSED [ 82%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[right] PASSED [ 83%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[right] PASSED [ 83%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[right] PASSED [ 83%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[right] PASSED [ 83%] 978s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[right] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[right] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-previous] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-next] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[neither] PASSED [ 83%] 979s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[neither] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[right] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[left] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[both] PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_has_break PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_regular_holidays_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_holidays_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample_time PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays_time PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample_time PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_open_close_break_start_end PASSED [ 83%] 980s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_has_break PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_next_prev_session PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_offset PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_session PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_date_to_session PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_open_close PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_in_range PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_has_break PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_window PASSED [ 83%] 981s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_distance PASSED [ 83%] 982s tests/test_xshg_calendar.py::TestXSHGCalendar::test_trading_index PASSED [ 83%] 982s tests/test_xshg_calendar.py::TestXSHGCalendar::test_deprecated PASSED [ 83%] 982s tests/test_xsto_calendar.py::TestXSTOCalendar::test_base_integrity PASSED [ 83%] 982s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calculated_against_csv PASSED [ 83%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_start_end PASSED [ 83%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_invalid_input PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_min PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_max PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sanity_check_session_lengths PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_specification PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_daylight_savings PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_opens_closes_break_starts_ends PASSED [ 84%] 983s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[both] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-next] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-next] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[left] PASSED [ 84%] 984s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[left] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[left] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-next] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[right] PASSED [ 84%] 985s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-previous] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-next] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[neither] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[right] PASSED [ 84%] 986s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[right] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[left] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[left] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[left] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[left] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[left] PASSED [ 84%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[left] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[left] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[left] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[left] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[left] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[both] PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_has_break PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_regular_holidays_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_holidays_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample_time PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays_time PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample_time PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_open_close_break_start_end PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_has_break PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_next_prev_session PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_offset PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_session PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_date_to_session PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_open_close PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_in_range PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_has_break PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_window PASSED [ 85%] 987s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_distance PASSED [ 85%] 988s tests/test_xsto_calendar.py::TestXSTOCalendar::test_trading_index PASSED [ 85%] 988s tests/test_xsto_calendar.py::TestXSTOCalendar::test_deprecated PASSED [ 85%] 988s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_base_integrity PASSED [ 85%] 988s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calculated_against_csv PASSED [ 85%] 988s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_start_end PASSED [ 85%] 988s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_invalid_input PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_min PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_max PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sanity_check_session_lengths PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_specification PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_daylight_savings PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_opens_closes_break_starts_ends PASSED [ 85%] 989s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[both] PASSED [ 85%] 991s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[both] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[left] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[right] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-none] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-none] PASSED [ 85%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-none] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-none] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-previous] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-next] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[neither] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[right] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[left] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[both] PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_has_break PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_regular_holidays_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_holidays_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample_time PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays_time PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample_time PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_open_close_break_start_end PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_has_break PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_next_prev_session PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_offset PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_session PASSED [ 86%] 992s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_date_to_session PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_open_close PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_in_range PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_has_break PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_window PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_distance PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_trading_index PASSED [ 86%] 993s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_deprecated PASSED [ 86%] 993s tests/test_xtae_calendar.py::TestXTAECalendar::test_base_integrity PASSED [ 86%] 995s tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv PASSED [ 86%] 995s tests/test_xtae_calendar.py::TestXTAECalendar::test_start_end PASSED [ 86%] 996s tests/test_xtae_calendar.py::TestXTAECalendar::test_invalid_input PASSED [ 86%] 998s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_max PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_sanity_check_session_lengths PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_specification PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_daylight_savings PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_opens_closes_break_starts_ends PASSED [ 86%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[both] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-next] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-next] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-next] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-next] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[left] PASSED [ 87%] 999s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-next] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-next] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-next] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[neither] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[right] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[left] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[both] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[both] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[both] PASSED [ 87%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[both] PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_has_break PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_regular_holidays_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_holidays_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample_time PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays_time PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample_time PASSED [ 88%] 1000s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_open_close_break_start_end PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_has_break PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_next_prev_session PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_offset PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_session PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_date_to_session PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_open_close PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_in_range PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_has_break PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_window PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_distance PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_trading_index PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendar::test_deprecated PASSED [ 88%] 1001s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_base_integrity PASSED [ 88%] 1002s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calculated_against_csv PASSED [ 88%] 1003s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_start_end PASSED [ 88%] 1003s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_invalid_input PASSED [ 88%] 1006s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_min PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_max PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sanity_check_session_lengths PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_adhoc_holidays_specification PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_daylight_savings PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_opens_closes_break_starts_ends PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[both] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[left] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-previous] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-next] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[right] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[right-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[right-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[left-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[left-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[both-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[both-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-none] PASSED [ 88%] 1007s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-none] PASSED [ 88%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-previous] PASSED [ 88%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-previous] PASSED [ 88%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_session[neither-next] PASSED [ 88%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_trading_minute[neither-next] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_properties[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calendar_bounds_properties[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minute_methods[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_minutes[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_trading_minute[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_break_minute[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_on_minute[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_open_at_time[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_minute[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[neither] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[right] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[left] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_past_session[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_to_future_session[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minute_offset_by_sessions[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_in_range[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_window[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_distance[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_minutes_to_sessions[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_minutes_count[both] PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_has_break PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_regular_holidays_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_adhoc_holidays_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_holidays_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_late_opens_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_sample_time PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_weekdays PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes_weekdays_time PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_early_closes_sample PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_non_early_closes_sample_time PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_late_opens PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_early_closes PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_open_close_break_start_end PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_has_break PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_next_prev_session PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_session_offset PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_is_session PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_date_to_session PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_prev_next_open_close PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_in_range PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_has_break PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_window PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_sessions_distance PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_trading_index PASSED [ 89%] 1008s tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_deprecated PASSED [ 89%] 1008s tests/test_xtai_calendar.py::TestXTAICalendar::test_base_integrity PASSED [ 89%] 1011s tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv PASSED [ 89%] 1011s tests/test_xtai_calendar.py::TestXTAICalendar::test_start_end PASSED [ 89%] 1011s tests/test_xtai_calendar.py::TestXTAICalendar::test_invalid_input PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_min PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_max PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_sanity_check_session_lengths PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_specification PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_daylight_savings PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_opens_closes_break_starts_ends PASSED [ 89%] 1012s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[both] PASSED [ 89%] 1013s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[both] PASSED [ 89%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] PASSED [ 90%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-next] PASSED [ 90%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-next] PASSED [ 90%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-next] PASSED [ 90%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-next] PASSED [ 90%] 1014s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[left] PASSED [ 90%] 1015s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[left] PASSED [ 90%] 1016s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] PASSED [ 90%] 1016s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-previous] PASSED [ 90%] 1016s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-previous] PASSED [ 90%] 1016s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-previous] PASSED [ 90%] 1016s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-previous] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-previous] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-previous] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-next] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-next] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[right] PASSED [ 90%] 1017s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[right] PASSED [ 90%] 1019s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] PASSED [ 90%] 1019s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-none] PASSED [ 90%] 1019s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-none] PASSED [ 90%] 1019s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-none] PASSED [ 90%] 1019s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-none] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-none] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-none] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-none] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-none] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-previous] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-next] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-next] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[neither] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[right] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[left] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[both] PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_has_break PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_regular_holidays_sample PASSED [ 90%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_sample PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_holidays_sample PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens_sample PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample_time PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays_time PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample_time PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_open_close_break_start_end PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_has_break PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_next_prev_session PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_offset PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_session PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_date_to_session PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_in_range PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_has_break PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_window PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_distance PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_trading_index PASSED [ 91%] 1025s tests/test_xtai_calendar.py::TestXTAICalendar::test_deprecated PASSED [ 91%] 1025s tests/test_xtal_calendar.py::TestXTALCalendar::test_base_integrity PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_calculated_against_csv PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_start_end PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_invalid_input PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_min PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_max PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_sanity_check_session_lengths PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_specification PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_daylight_savings PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_opens_closes_break_starts_ends PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[both] PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[both] PASSED [ 91%] 1026s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[both] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[left] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[right] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[neither] PASSED [ 91%] 1027s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[neither] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[right] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[left] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[both] PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_has_break PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_regular_holidays_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_holidays_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample_time PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays_time PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample_time PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_open_close_break_start_end PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_has_break PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_next_prev_session PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_offset PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_session PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_date_to_session PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_open_close PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_in_range PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_has_break PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_window PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_distance PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_trading_index PASSED [ 92%] 1036s tests/test_xtal_calendar.py::TestXTALCalendar::test_deprecated PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_base_integrity PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calculated_against_csv PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_start_end PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_invalid_input PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_min PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_max PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sanity_check_session_lengths PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_specification PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_daylight_savings PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_opens_closes_break_starts_ends PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[both] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-next] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-next] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[left] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[left] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[left] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[left] PASSED [ 92%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-next] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-next] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[neither] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[right] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[left] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[both] PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_has_break PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_regular_holidays_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_holidays_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample_time PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays_time PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample PASSED [ 93%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample_time PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_open_close_break_start_end PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_has_break PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_next_prev_session PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_offset PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_session PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_date_to_session PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_open_close PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_in_range PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_has_break PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_window PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_distance PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_trading_index PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_deprecated PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_golden_week_holidays PASSED [ 94%] 1036s tests/test_xtks_calendar.py::TestXTKSCalendar::test_emperors_birthday PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_base_integrity PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_calculated_against_csv PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_start_end PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_invalid_input PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_min PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_max PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_sanity_check_session_lengths PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_specification PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_daylight_savings PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_opens_closes_break_starts_ends PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[both] PASSED [ 94%] 1036s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[both] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[both] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[left] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 94%] 1037s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[right] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-previous] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-next] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 94%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[neither] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[right] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[left] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[both] PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_has_break PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_regular_holidays_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_holidays_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample_time PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays_time PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample_time PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_open_close_break_start_end PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_has_break PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_next_prev_session PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_offset PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_session PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_date_to_session PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_open_close PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_in_range PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_has_break PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_window PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_distance PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_trading_index PASSED [ 95%] 1040s tests/test_xtse_calendar.py::TestXTSECalendar::test_deprecated PASSED [ 95%] 1040s tests/test_xwar_calendar.py::TestXWARCalendar::test_base_integrity PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_calculated_against_csv PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_start_end PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_invalid_input PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_min PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_max PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_sanity_check_session_lengths PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_specification PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_daylight_savings PASSED [ 95%] 1041s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_opens_closes_break_starts_ends PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[both] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-next] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-next] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[left] PASSED [ 95%] 1042s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[left] PASSED [ 95%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[left] PASSED [ 95%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[left] PASSED [ 95%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-next] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[right] PASSED [ 96%] 1043s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[right] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[right] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-previous] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-next] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[neither] PASSED [ 96%] 1044s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[neither] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[right] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[left] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[both] PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_has_break PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_regular_holidays_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_holidays_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample_time PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays_time PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample_time PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_open_close_break_start_end PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_has_break PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_next_prev_session PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_offset PASSED [ 96%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_session PASSED [ 97%] 1045s tests/test_xwar_calendar.py::TestXWARCalendar::test_date_to_session PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_open_close PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_in_range PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_has_break PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_window PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_distance PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_trading_index PASSED [ 97%] 1046s tests/test_xwar_calendar.py::TestXWARCalendar::test_deprecated PASSED [ 97%] 1046s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_base_integrity PASSED [ 97%] 1047s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calculated_against_csv PASSED [ 97%] 1047s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_start_end PASSED [ 97%] 1047s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_invalid_input PASSED [ 97%] 1047s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_min PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_max PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sanity_check_session_lengths PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_specification PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_daylight_savings PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_opens_closes_break_starts_ends PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[both] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-next] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-next] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[left] PASSED [ 97%] 1049s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-next] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[right] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-next] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[neither] PASSED [ 97%] 1051s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[neither] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[right] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[right] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[right] PASSED [ 97%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[right] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[left] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[both] PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_has_break PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_regular_holidays_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_holidays_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample_time PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays_time PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample_time PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_open_close_break_start_end PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_has_break PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_next_prev_session PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_offset PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_session PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_date_to_session PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_open_close PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_in_range PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_has_break PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_window PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_distance PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_trading_index PASSED [ 98%] 1057s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_deprecated PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_base_integrity PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calculated_against_csv PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_start_end PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_invalid_input PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_min PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_max PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sanity_check_session_lengths PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_specification PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_daylight_savings PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_opens_closes_break_starts_ends PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[both] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[left] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[right] PASSED [ 98%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-previous] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-next] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[neither] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[right] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[left] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[both] PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_has_break PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_regular_holidays_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_holidays_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample_time PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays_time PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample_time PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_open_close_break_start_end PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_has_break PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_next_prev_session PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_offset PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_session PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_date_to_session PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_open_close PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_in_range PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_has_break PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_window PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_distance PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_trading_index PASSED [ 99%] 1057s tests/test_xzag_calendar.py::TestXZAGCalendar::test_deprecated PASSED [100%] 1057s 1057s ============================= slowest 15 durations ============================= 1057s 12.07s call tests/test_exchange_calendar.py::test_default_calendars 1057s 6.94s setup tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv 1057s 5.02s setup tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv 1057s 2.94s call tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min 1057s 2.88s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] 1057s 2.74s call tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_bound_min 1057s 2.70s call tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min 1057s 2.65s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close 1057s 2.43s setup tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv 1057s 2.38s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min 1057s 2.35s setup tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv 1057s 1.77s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end 1057s 1.69s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] 1057s 1.65s setup tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv 1057s 1.59s setup tests/test_xtae_calendar.py::TestXTAECalendarEarlyCloseSundaysBefore2026::test_calculated_against_csv 1057s ========== 9684 passed, 74 deselected, 1 xfailed in 443.37s (0:07:23) ========== 1058s autopkgtest [22:47:12]: test pybuild-autopkgtest: -----------------------] 1071s autopkgtest [22:47:25]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1071s pybuild-autopkgtest PASS 1079s autopkgtest [22:47:33]: @@@@@@@@@@@@@@@@@@@@ summary 1079s pybuild-autopkgtest PASS