0s autopkgtest [02:50:18]: starting date and time: 2025-11-14 02:50:18+0000 0s autopkgtest [02:50:18]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [02:50:18]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.v9_ol_vs/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:numpy --apt-upgrade exchange-calendars --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=numpy/1:2.3.4+ds-3ubuntu1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-1.secgroup --name adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f from image adt/ubuntu-resolute-s390x-server-20251113.img (UUID 92cb8c0c-0192-4ef0-af56-a7b160e515c3)... 16s nova [E] nova boot failed (attempt #0): 16s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 16s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 16s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 16s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 16s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 16s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 16s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 16s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-61d222c6-ee1c-4cf0-ad3a-fdf709a0b783 16s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 16s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-61d222c6-ee1c-4cf0-ad3a-fdf709a0b783 16s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 16s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12521 16s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "fda033b8c7ea463db1c3747f74a59d10", "name": "prod-proposed-migration-s390x", "password_expires_at": null}, "audit_ids": ["ZxXC8ulrQkC3v5AflA_F7w"], "expires_at": "2025-11-15T02:50:25.000000Z", "issued_at": "2025-11-14T02:50:25.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "ad292334f14047cc96e9c50587dfe285", "name": "prod-proposed-migration-s390x_project"}, "is_domain": false, "roles": [{"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_ad292334f14047cc96e9c50587dfe285", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 16s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" 16s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" 16s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 16s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-09ba3549-373e-4f42-8bff-f171cddc438e x-openstack-request-id: req-09ba3549-373e-4f42-8bff-f171cddc438e 16s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-09ba3549-373e-4f42-8bff-f171cddc438e x-openstack-request-id: req-09ba3549-373e-4f42-8bff-f171cddc438e 16s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 16s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 16s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-0488f48d-a41a-4f55-9348-5b05f449c064 x-openstack-request-id: req-0488f48d-a41a-4f55-9348-5b05f449c064 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-0488f48d-a41a-4f55-9348-5b05f449c064 x-openstack-request-id: req-0488f48d-a41a-4f55-9348-5b05f449c064 16s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 16s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 16s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-0488f48d-a41a-4f55-9348-5b05f449c064 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-0488f48d-a41a-4f55-9348-5b05f449c064 16s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 16s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 16s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 16s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 16s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 16s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 16s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 16s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 HTTP/1.1" 200 2294 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2294 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-00d3fa39-7fa0-4f0d-a27a-3b1f66c4074e 16s DEBUG (session:580) RESP BODY: {"architecture": "s390x", "base_image_ref": "027f4826-7f15-49d8-addf-a2c383ba7da8", "boot_roles": "member,reader,load-balancer_member", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_input_bus": "usb", "hw_machine_type": "s390-ccw-virtio", "hw_pointer_model": "usbtablet", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "img_config_drive": "mandatory", "instance_uuid": "916ec418-17e3-4784-9138-5e5811189bd4", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "26.04", "owner_id": "ad292334f14047cc96e9c50587dfe285", "owner_project_name": "prod-proposed-migration-s390x_project", "owner_user_name": "prod-proposed-migration-s390x", "product_name": "com.ubuntu.cloud.daily:server:26.04:s390x", "simplestreams_metadata": "{\"aliases\": \"26.04,r,resolute,devel\", \"arch\": \"s390x\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-resolute-daily-s390x-server-20251102\", \"release\": \"resolute\", \"release_codename\": \"Resolute Raccoon\", \"release_title\": \"26.04", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "fda033b8c7ea463db1c3747f74a59d10", "version_name": "20251102", "name": "adt/ubuntu-resolute-s390x-server-20251113.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 1872756736, "virtual_size": 21474836480, "status": "active", "checksum": "e89f71746296ae789c5606f97e1f88d6", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "ad292334f14047cc96e9c50587dfe285", "os_hidden": false, "os_hash_algo": "sha256", "os_hash_value": "dff76cc160858d5f745daefe6a4ff0189fc43204b1c4d187b2d3de0e2b2aa3f7", "id": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "created_at": "2025-11-13T14:13:10Z", "updated_at": "2025-11-13T14:13:47Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/92cb8c0c-0192-4ef0-af56-a7b160e515c3/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/92cb8c0c-0192-4ef0-af56-a7b160e515c3/snap", "tags": [], "self": "/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3", "file": "/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3/file", "schema": "/v2/schemas/image", "stores": "ceph"} 16s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 used request id req-00d3fa39-7fa0-4f0d-a27a-3b1f66c4074e 16s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-s390x -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-s390x HTTP/1.1" 404 90 16s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 90 Content-Type: application/json; charset=UTF-8 Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-87e37a97-30bc-4259-a2d2-0d52e80e642f x-openstack-request-id: req-87e37a97-30bc-4259-a2d2-0d52e80e642f 16s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-s390x could not be found."}} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-s390x used request id req-87e37a97-30bc-4259-a2d2-0d52e80e642f 16s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 15749 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 15749 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b5c036f7-b20a-4374-ab72-4c78ff194157 x-openstack-request-id: req-b5c036f7-b20a-4374-ab72-4c78ff194157 16s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "03162251-b47f-403b-a928-104b4bc66898", "name": "builder-s390x-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/03162251-b47f-403b-a928-104b4bc66898"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/03162251-b47f-403b-a928-104b4bc66898"}], "description": null}, {"id": "03d6b00d-4875-44aa-b60c-e1162d975180", "name": "builder-s390x-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/03d6b00d-4875-44aa-b60c-e1162d975180"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/03d6b00d-4875-44aa-b60c-e1162d975180"}], "description": null}, {"id": "05196979-e04b-475f-8ec6-ee66f924a5bb", "name": "builder-s390x-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05196979-e04b-475f-8ec6-ee66f924a5bb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05196979-e04b-475f-8ec6-ee66f924a5bb"}], "description": null}, {"id": "0a154e63-cfad-4957-96a6-5a4123266f79", "name": "autopkgtest-big-s390x", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0a154e63-cfad-4957-96a6-5a4123266f79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0a154e63-cfad-4957-96a6-5a4123266f79"}], "description": null}, {"id": "16f0eee6-3271-4d64-84cc-0ed22a1ba47d", "name": "builder-s390x-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16f0eee6-3271-4d64-84cc-0ed22a1ba47d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16f0eee6-3271-4d64-84cc-0ed22a1ba47d"}], "description": null}, {"id": "19be4598-edae-4564-ba9a-6f31af8d2aca", "name": "builder-s390x-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/19be4598-edae-4564-ba9a-6f31af8d2aca"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/19be4598-edae-4564-ba9a-6f31af8d2aca"}], "description": null}, {"id": "1f41ada3-49a9-4c7a-bfe0-afb334e3fb81", "name": "builder-s390x-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1f41ada3-49a9-4c7a-bfe0-afb334e3fb81"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1f41ada3-49a9-4c7a-bfe0-afb334e3fb81"}], "description": null}, {"id": "290ff9bf-b2d5-4d4f-8fd7-bac6ed1d98d1", "name": "builder-s390x-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/290ff9bf-b2d5-4d4f-8fd7-bac6ed1d98d1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/290ff9bf-b2d5-4d4f-8fd7-bac6ed1d98d1"}], "description": null}, {"id": "29d166cc-5f51-49db-bb7c-2cf8273b5c70", "name": "builder-s390x-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/29d166cc-5f51-49db-bb7c-2cf8273b5c70"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/29d166cc-5f51-49db-bb7c-2cf8273b5c70"}], "description": null}, {"id": "30c160ed-fc27-4695-8ed9-1225cfc8c77b", "name": "builder-s390x-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/30c160ed-fc27-4695-8ed9-1225cfc8c77b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/30c160ed-fc27-4695-8ed9-1225cfc8c77b"}], "description": null}, {"id": "38de1015-2d47-44dc-8fb4-59fea0843596", "name": "builder-s390x-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/38de1015-2d47-44dc-8fb4-59fea0843596"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/38de1015-2d47-44dc-8fb4-59fea0843596"}], "description": null}, {"id": "40fb6661-187a-454b-a0f6-21e2917928cd", "name": "builder-s390x-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40fb6661-187a-454b-a0f6-21e2917928cd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40fb6661-187a-454b-a0f6-21e2917928cd"}], "description": null}, {"id": "43b26512-c2bd-43c3-9dc3-6654864d78bf", "name": "builder-s390x-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/43b26512-c2bd-43c3-9dc3-6654864d78bf"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/43b26512-c2bd-43c3-9dc3-6654864d78bf"}], "description": null}, {"id": "4be34a38-2e2b-4c28-8f50-093d912a8239", "name": "builder-s390x-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4be34a38-2e2b-4c28-8f50-093d912a8239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4be34a38-2e2b-4c28-8f50-093d912a8239"}], "description": null}, {"id": "4c066e77-5b00-4187-bce1-29164b6a0e7b", "name": "builder-s390x-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4c066e77-5b00-4187-bce1-29164b6a0e7b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4c066e77-5b00-4187-bce1-29164b6a0e7b"}], "description": null}, {"id": "4e198565-d86f-4daa-8506-c0923a5ca6e7", "name": "builder-s390x-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4e198565-d86f-4daa-8506-c0923a5ca6e7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4e198565-d86f-4daa-8506-c0923a5ca6e7"}], "description": null}, {"id": "511b3962-e5fd-4f34-a342-adf51c388d4a", "name": "builder-s390x-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/511b3962-e5fd-4f34-a342-adf51c388d4a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/511b3962-e5fd-4f34-a342-adf51c388d4a"}], "description": null}, {"id": "5654e68d-cd71-4a6f-9857-4244d17cee07", "name": "builder-s390x-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5654e68d-cd71-4a6f-9857-4244d17cee07"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5654e68d-cd71-4a6f-9857-4244d17cee07"}], "description": null}, {"id": "5cac32a0-85d2-4049-8cd6-ce7164372b01", "name": "autopkgtest-s390x", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01"}], "description": null}, {"id": "5e5016a1-a6c6-4758-969b-374ce4c0c482", "name": "builder-s390x-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5e5016a1-a6c6-4758-969b-374ce4c0c482"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5e5016a1-a6c6-4758-969b-374ce4c0c482"}], "description": null}, {"id": "69b8f599-c030-42be-9ac9-002b471bfef6", "name": "builder-s390x-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/69b8f599-c030-42be-9ac9-002b471bfef6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/69b8f599-c030-42be-9ac9-002b471bfef6"}], "description": null}, {"id": "741488e4-c2ce-4d25-a145-8edef429ae72", "name": "builder-s390x-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/741488e4-c2ce-4d25-a145-8edef429ae72"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/741488e4-c2ce-4d25-a145-8edef429ae72"}], "description": null}, {"id": "82f5392f-3939-47f6-9cf6-2085a02a2982", "name": "builder-s390x-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82f5392f-3939-47f6-9cf6-2085a02a2982"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82f5392f-3939-47f6-9cf6-2085a02a2982"}], "description": null}, {"id": "84be8f32-dfc2-4aff-825e-c287fec72a97", "name": "builder-s390x-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/84be8f32-dfc2-4aff-825e-c287fec72a97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/84be8f32-dfc2-4aff-825e-c287fec72a97"}], "description": null}, {"id": "877737da-fee3-4951-89fe-595070c8735c", "name": "builder-s390x-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/877737da-fee3-4951-89fe-595070c8735c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/877737da-fee3-4951-89fe-595070c8735c"}], "description": null}, {"id": "8abf51c6-e4df-4faf-85b3-ef009d473e72", "name": "builder-s390x-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/8abf51c6-e4df-4faf-85b3-ef009d473e72"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/8abf51c6-e4df-4faf-85b3-ef009d473e72"}], "description": null}, {"id": "90005c77-450f-49e8-b53f-9424ed6b2612", "name": "builder-s390x-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/90005c77-450f-49e8-b53f-9424ed6b2612"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/90005c77-450f-49e8-b53f-9424ed6b2612"}], "description": null}, {"id": "9486d770-ca82-44b6-bbf0-322a7a903a8e", "name": "builder-s390x-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9486d770-ca82-44b6-bbf0-322a7a903a8e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9486d770-ca82-44b6-bbf0-322a7a903a8e"}], "description": null}, {"id": "9af6e698-fd0d-4687-aa47-d53ebf80efc5", "name": "builder-s390x-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af6e698-fd0d-4687-aa47-d53ebf80efc5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af6e698-fd0d-4687-aa47-d53ebf80efc5"}], "description": null}, {"id": "a7d41d5b-9869-4ff3-b282-57a9f8142d37", "name": "builder-s390x-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a7d41d5b-9869-4ff3-b282-57a9f8142d37"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a7d41d5b-9869-4ff3-b282-57a9f8142d37"}], "description": null}, {"id": "a954eb03-9810-464c-8378-9d472c2e354b", "name": "builder-s390x-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a954eb03-9810-464c-8378-9d472c2e354b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a954eb03-9810-464c-8378-9d472c2e354b"}], "description": null}, {"id": "add6a04e-9a35-4f57-8a40-b756e9bbc563", "name": "builder-s390x-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/add6a04e-9a35-4f57-8a40-b756e9bbc563"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/add6a04e-9a35-4f57-8a40-b756e9bbc563"}], "description": null}, {"id": "ba873832-532c-4be6-b399-3caafd0b1f85", "name": "builder-s390x-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ba873832-532c-4be6-b399-3caafd0b1f85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ba873832-532c-4be6-b399-3caafd0b1f85"}], "description": null}, {"id": "bbaf6f9d-86da-4c7b-b41e-5dba42bc8be2", "name": "builder-s390x-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bbaf6f9d-86da-4c7b-b41e-5dba42bc8be2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bbaf6f9d-86da-4c7b-b41e-5dba42bc8be2"}], "description": null}, {"id": "bc8fdcd7-2f4f-4032-8a65-aec604da32a3", "name": "builder-s390x-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc8fdcd7-2f4f-4032-8a65-aec604da32a3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc8fdcd7-2f4f-4032-8a65-aec604da32a3"}], "description": null}, {"id": "bde27b36-130b-4ea0-9a30-6df70525d72c", "name": "builder-s390x-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bde27b36-130b-4ea0-9a30-6df70525d72c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bde27b36-130b-4ea0-9a30-6df70525d72c"}], "description": null}, {"id": "c2cc32b1-e874-440d-b38f-b179dda7b964", "name": "builder-s390x-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c2cc32b1-e874-440d-b38f-b179dda7b964"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c2cc32b1-e874-440d-b38f-b179dda7b964"}], "description": null}, {"id": "c3d6f05c-fce6-4f16-8a11-8a441e680443", "name": "builder-s390x-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c3d6f05c-fce6-4f16-8a11-8a441e680443"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c3d6f05c-fce6-4f16-8a11-8a441e680443"}], "description": null}, {"id": "cf8eb717-8fb8-4f39-9f9a-041ad8de0d57", "name": "builder-s390x-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cf8eb717-8fb8-4f39-9f9a-041ad8de0d57"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cf8eb717-8fb8-4f39-9f9a-041ad8de0d57"}], "description": null}, {"id": "d54672cc-318b-4196-b0e0-d2bca56a221c", "name": "builder-s390x-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d54672cc-318b-4196-b0e0-d2bca56a221c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d54672cc-318b-4196-b0e0-d2bca56a221c"}], "description": null}, {"id": "d888376b-4a42-456e-ad43-f53ddf7fdff6", "name": "builder-s390x-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d888376b-4a42-456e-ad43-f53ddf7fdff6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d888376b-4a42-456e-ad43-f53ddf7fdff6"}], "description": null}, {"id": "d99596f5-7a6c-43d9-87a2-e70196e44165", "name": "builder-s390x-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d99596f5-7a6c-43d9-87a2-e70196e44165"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d99596f5-7a6c-43d9-87a2-e70196e44165"}], "description": null}, {"id": "e9cc765b-4f31-4512-8c37-135c93482f04", "name": "builder-s390x-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e9cc765b-4f31-4512-8c37-135c93482f04"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e9cc765b-4f31-4512-8c37-135c93482f04"}], "description": null}, {"id": "f9f1f492-217b-44b0-8ae5-c600b7a2d2c5", "name": "builder-s390x-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f9f1f492-217b-44b0-8ae5-c600b7a2d2c5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f9f1f492-217b-44b0-8ae5-c600b7a2d2c5"}], "description": null}, {"id": "fe92de60-14a4-4d76-a8d0-aa915da2be82", "name": "builder-s390x-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fe92de60-14a4-4d76-a8d0-aa915da2be82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fe92de60-14a4-4d76-a8d0-aa915da2be82"}], "description": null}]} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-b5c036f7-b20a-4374-ab72-4c78ff194157 16s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01 HTTP/1.1" 200 619 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 619 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f8239df1-ccd1-4848-b33c-cb79f0a7f40c x-openstack-request-id: req-f8239df1-ccd1-4848-b33c-cb79f0a7f40c 16s DEBUG (session:580) RESP BODY: {"flavor": {"id": "5cac32a0-85d2-4049-8cd6-ce7164372b01", "name": "autopkgtest-s390x", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-s390x", "hw_rng:allowed": "True"}}} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/5cac32a0-85d2-4049-8cd6-ce7164372b01 used request id req-f8239df1-ccd1-4848-b33c-cb79f0a7f40c 16s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f", "imageRef": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "flavorRef": "5cac32a0-85d2-4049-8cd6-ce7164372b01", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-1.secgroup"}], "networks": [{"uuid": "e5b7295f-25e9-4d55-83b6-ed1971e76f4e"}]}}' 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 476 16s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 476 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:26 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 x-compute-request-id: req-c175a0dd-1a88-4f9d-b109-a447492c1702 x-openstack-request-id: req-c175a0dd-1a88-4f9d-b109-a447492c1702 16s DEBUG (session:580) RESP BODY: {"server": {"id": "2d5d92bc-080e-498d-9231-bf99d73407c8", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-1.secgroup"}], "adminPass": "K6zGsVzhi9dL"}} 16s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-c175a0dd-1a88-4f9d-b109-a447492c1702 16s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 HTTP/1.1" 200 2638 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2638 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:28 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-363df5a9-68ac-499a-a5c3-303c1c00ea47 x-openstack-request-id: req-363df5a9-68ac-499a-a5c3-303c1c00ea47 16s DEBUG (session:580) RESP BODY: {"server": {"id": "2d5d92bc-080e-498d-9231-bf99d73407c8", "name": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f", "status": "BUILD", "tenant_id": "ad292334f14047cc96e9c50587dfe285", "user_id": "fda033b8c7ea463db1c3747f74a59d10", "metadata": {}, "hostId": "", "image": {"id": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-s390x", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-s390x", "hw_rng:allowed": "True"}}, "created": "2025-11-14T02:50:28Z", "updated": "2025-11-14T02:50:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-cehtyg1r", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f22", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 used request id req-363df5a9-68ac-499a-a5c3-303c1c00ea47 16s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 HTTP/1.1" 200 2294 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2294 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-f45e6f0b-2e8e-4e05-8772-a68f4d1e6f90 16s DEBUG (session:580) RESP BODY: {"architecture": "s390x", "base_image_ref": "027f4826-7f15-49d8-addf-a2c383ba7da8", "boot_roles": "member,reader,load-balancer_member", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_input_bus": "usb", "hw_machine_type": "s390-ccw-virtio", "hw_pointer_model": "usbtablet", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "img_config_drive": "mandatory", "instance_uuid": "916ec418-17e3-4784-9138-5e5811189bd4", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "26.04", "owner_id": "ad292334f14047cc96e9c50587dfe285", "owner_project_name": "prod-proposed-migration-s390x_project", "owner_user_name": "prod-proposed-migration-s390x", "product_name": "com.ubuntu.cloud.daily:server:26.04:s390x", "simplestreams_metadata": "{\"aliases\": \"26.04,r,resolute,devel\", \"arch\": \"s390x\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-resolute-daily-s390x-server-20251102\", \"release\": \"resolute\", \"release_codename\": \"Resolute Raccoon\", \"release_title\": \"26.04", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "fda033b8c7ea463db1c3747f74a59d10", "version_name": "20251102", "name": "adt/ubuntu-resolute-s390x-server-20251113.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 1872756736, "virtual_size": 21474836480, "status": "active", "checksum": "e89f71746296ae789c5606f97e1f88d6", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "ad292334f14047cc96e9c50587dfe285", "os_hidden": false, "os_hash_algo": "sha256", "os_hash_value": "dff76cc160858d5f745daefe6a4ff0189fc43204b1c4d187b2d3de0e2b2aa3f7", "id": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "created_at": "2025-11-13T14:13:10Z", "updated_at": "2025-11-13T14:13:47Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/92cb8c0c-0192-4ef0-af56-a7b160e515c3/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/92cb8c0c-0192-4ef0-af56-a7b160e515c3/snap", "tags": [], "self": "/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3", "file": "/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3/file", "schema": "/v2/schemas/image", "stores": "ceph"} 16s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3 used request id req-f45e6f0b-2e8e-4e05-8772-a68f4d1e6f90 16s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 16s | Property | Value | 16s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ 16s | OS-DCF:diskConfig | MANUAL | 16s | OS-EXT-AZ:availability_zone | | 16s | OS-EXT-SRV-ATTR:host | - | 16s | OS-EXT-SRV-ATTR:hostname | adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f22 | 16s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 16s | OS-EXT-SRV-ATTR:instance_name | | 16s | OS-EXT-SRV-ATTR:kernel_id | | 16s | OS-EXT-SRV-ATTR:launch_index | 0 | 16s | OS-EXT-SRV-ATTR:ramdisk_id | | 16s | OS-EXT-SRV-ATTR:reservation_id | r-cehtyg1r | 16s | OS-EXT-SRV-ATTR:root_device_name | - | 16s | OS-EXT-STS:power_state | 0 | 16s | OS-EXT-STS:task_state | scheduling | 16s | OS-EXT-STS:vm_state | building | 16s | OS-SRV-USG:launched_at | - | 16s | OS-SRV-USG:terminated_at | - | 16s | accessIPv4 | | 16s | accessIPv6 | | 16s | adminPass | K6zGsVzhi9dL | 16s | config_drive | | 16s | created | 2025-11-14T02:50:28Z | 16s | description | - | 16s | flavor:disk | 20 | 16s | flavor:ephemeral | 0 | 16s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-s390x", "hw_rng:allowed": "True"} | 16s | flavor:original_name | autopkgtest-s390x | 16s | flavor:ram | 4096 | 16s | flavor:swap | 0 | 16s | flavor:vcpus | 2 | 16s | hostId | | 16s | id | 2d5d92bc-080e-498d-9231-bf99d73407c8 | 16s | image | adt/ubuntu-resolute-s390x-server-20251113.img (92cb8c0c-0192-4ef0-af56-a7b160e515c3) | 16s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 16s | locked | False | 16s | locked_reason | - | 16s | metadata | {} | 16s | name | adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f | 16s | os-extended-volumes:volumes_attached | [] | 16s | progress | 0 | 16s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-1.secgroup | 16s | server_groups | [] | 16s | status | BUILD | 16s | tags | [] | 16s | tenant_id | ad292334f14047cc96e9c50587dfe285 | 16s | trusted_image_certificates | - | 16s | updated | 2025-11-14T02:50:28Z | 16s | user_id | fda033b8c7ea463db1c3747f74a59d10 | 16s +--------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 HTTP/1.1" 200 2638 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2638 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-30e6126f-b4c4-4ae7-9b44-6d524dfd2602 x-openstack-request-id: req-30e6126f-b4c4-4ae7-9b44-6d524dfd2602 16s DEBUG (session:580) RESP BODY: {"server": {"id": "2d5d92bc-080e-498d-9231-bf99d73407c8", "name": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f", "status": "BUILD", "tenant_id": "ad292334f14047cc96e9c50587dfe285", "user_id": "fda033b8c7ea463db1c3747f74a59d10", "metadata": {}, "hostId": "", "image": {"id": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-s390x", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-s390x", "hw_rng:allowed": "True"}}, "created": "2025-11-14T02:50:28Z", "updated": "2025-11-14T02:50:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-cehtyg1r", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f22", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 used request id req-30e6126f-b4c4-4ae7-9b44-6d524dfd2602 16s 16s 16s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}f7f6e2602483bb8499e2debbfed265b1b6ef2da6a6a84f6bd56b1787830db721" -H "X-OpenStack-Nova-API-Version: 2.87" 16s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 HTTP/1.1" 200 2765 16s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2765 Content-Type: application/json Date: Fri, 14 Nov 2025 02:50:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f96140c4-c61b-4dc2-b087-268e21f0f005 x-openstack-request-id: req-f96140c4-c61b-4dc2-b087-268e21f0f005 16s DEBUG (session:580) RESP BODY: {"server": {"id": "2d5d92bc-080e-498d-9231-bf99d73407c8", "name": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f2275-prod-proposed-migration-environment-15-b819b88f-745d-47b3-9483-85f770913a1f", "status": "ERROR", "tenant_id": "ad292334f14047cc96e9c50587dfe285", "user_id": "fda033b8c7ea463db1c3747f74a59d10", "metadata": {}, "hostId": "", "image": {"id": "92cb8c0c-0192-4ef0-af56-a7b160e515c3", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/92cb8c0c-0192-4ef0-af56-a7b160e515c3"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-s390x", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-s390x", "hw_rng:allowed": "True"}}, "created": "2025-11-14T02:50:27Z", "updated": "2025-11-14T02:50:29Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/2d5d92bc-080e-498d-9231-bf99d73407c8"}], "OS-DCF:diskConfig": "MANUAL", "fault": {"code": 500, "created": "2025-11-14T02:50:29Z", "message": "No valid host was found. There are not enough hosts available."}, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0015df68", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-cehtyg1r", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-resolute-s390x-exchange-calendars-20251114-025017-juju-7f22", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "error", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 16s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/2d5d92bc-080e-498d-9231-bf99d73407c8 used request id req-f96140c4-c61b-4dc2-b087-268e21f0f005 16s DEBUG (shell:822) 16s Traceback (most recent call last): 16s File "/usr/lib/python3/dist-packages/novaclient/shell.py", line 820, in main 16s OpenStackComputeShell().main(argv) 16s File "/usr/lib/python3/dist-packages/novaclient/shell.py", line 742, in main 16s args.func(self.cs, args) 16s File "/usr/lib/python3/dist-packages/novaclient/v2/shell.py", line 980, in do_boot 16s _poll_for_status(cs.servers.get, server.id, 'building', ['active']) 16s File "/usr/lib/python3/dist-packages/novaclient/v2/shell.py", line 1019, in _poll_for_status 16s raise exceptions.ResourceInErrorState(obj) 16s novaclient.exceptions.ResourceInErrorState: 16s ERROR (ResourceInErrorState): 16s 16s Error building server 365s autopkgtest [02:56:23]: testbed dpkg architecture: s390x 365s autopkgtest [02:56:23]: testbed apt version: 3.1.11 365s autopkgtest [02:56:23]: @@@@@@@@@@@@@@@@@@@@ test bed setup 365s autopkgtest [02:56:23]: testbed release detected to be: None 366s autopkgtest [02:56:24]: updating testbed package index (apt update) 366s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 367s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 367s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 367s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 367s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.4 kB] 367s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.6 kB] 367s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [765 kB] 367s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 367s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [137 kB] 367s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted s390x Packages [940 B] 367s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [419 kB] 368s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [10.1 kB] 368s Fetched 1534 kB in 1s (1290 kB/s) 368s Reading package lists... 369s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 369s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 369s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 369s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 370s Reading package lists... 370s Reading package lists... 370s Building dependency tree... 370s Reading state information... 370s Calculating upgrade... 370s The following packages will be upgraded: 370s 3cpio cron cron-daemon-common libcap2 libcap2-bin libpam-cap liburcu8t64 370s libxml2-16 lto-disabled-list 370s 9 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 370s Need to get 1198 kB of archives. 370s After this operation, 28.7 kB disk space will be freed. 370s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x cron s390x 3.0pl1-200ubuntu1 [89.7 kB] 371s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libcap2 s390x 1:2.75-10ubuntu1 [33.0 kB] 371s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libpam-cap s390x 1:2.75-10ubuntu1 [12.9 kB] 371s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x libcap2-bin s390x 1:2.75-10ubuntu1 [33.9 kB] 371s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x libxml2-16 s390x 2.15.1+dfsg-0.3 [616 kB] 371s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x cron-daemon-common all 3.0pl1-200ubuntu1 [15.7 kB] 371s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x liburcu8t64 s390x 0.15.5-1 [66.5 kB] 371s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x 3cpio s390x 0.12.0-1ubuntu1 [319 kB] 371s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x lto-disabled-list all 72 [12.4 kB] 371s dpkg-preconfigure: unable to re-open stdin: No such file or directory 371s Fetched 1198 kB in 1s (1295 kB/s) 372s (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 ... 61309 files and directories currently installed.) 372s Preparing to unpack .../cron_3.0pl1-200ubuntu1_s390x.deb ... 372s Unpacking cron (3.0pl1-200ubuntu1) over (3.0pl1-196ubuntu2) ... 372s Preparing to unpack .../libcap2_1%3a2.75-10ubuntu1_s390x.deb ... 372s Unpacking libcap2:s390x (1:2.75-10ubuntu1) over (1:2.75-7ubuntu2) ... 372s Setting up libcap2:s390x (1:2.75-10ubuntu1) ... 372s (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 ... 61309 files and directories currently installed.) 372s Preparing to unpack .../0-libpam-cap_1%3a2.75-10ubuntu1_s390x.deb ... 372s Unpacking libpam-cap:s390x (1:2.75-10ubuntu1) over (1:2.75-7ubuntu2) ... 372s Preparing to unpack .../1-libcap2-bin_1%3a2.75-10ubuntu1_s390x.deb ... 372s Unpacking libcap2-bin (1:2.75-10ubuntu1) over (1:2.75-7ubuntu2) ... 372s Preparing to unpack .../2-libxml2-16_2.15.1+dfsg-0.3_s390x.deb ... 372s Unpacking libxml2-16:s390x (2.15.1+dfsg-0.3) over (2.14.5+dfsg-0.2build1) ... 372s Preparing to unpack .../3-cron-daemon-common_3.0pl1-200ubuntu1_all.deb ... 372s Unpacking cron-daemon-common (3.0pl1-200ubuntu1) over (3.0pl1-196ubuntu2) ... 372s Preparing to unpack .../4-liburcu8t64_0.15.5-1_s390x.deb ... 372s Unpacking liburcu8t64:s390x (0.15.5-1) over (0.15.4-1) ... 372s Preparing to unpack .../5-3cpio_0.12.0-1ubuntu1_s390x.deb ... 372s Unpacking 3cpio (0.12.0-1ubuntu1) over (0.11.0-2ubuntu2) ... 372s Preparing to unpack .../6-lto-disabled-list_72_all.deb ... 372s Unpacking lto-disabled-list (72) over (71) ... 372s Setting up liburcu8t64:s390x (0.15.5-1) ... 372s Setting up 3cpio (0.12.0-1ubuntu1) ... 372s Setting up lto-disabled-list (72) ... 372s Setting up libxml2-16:s390x (2.15.1+dfsg-0.3) ... 372s Setting up libcap2-bin (1:2.75-10ubuntu1) ... 372s Setting up libpam-cap:s390x (1:2.75-10ubuntu1) ... 372s Setting up cron-daemon-common (3.0pl1-200ubuntu1) ... 372s Setting up cron (3.0pl1-200ubuntu1) ... 373s Processing triggers for libc-bin (2.42-2ubuntu2) ... 373s Processing triggers for man-db (2.13.1-1) ... 374s autopkgtest [02:56:32]: upgrading testbed (apt dist-upgrade and autopurge) 375s Reading package lists... 375s Building dependency tree... 375s Reading state information... 375s Calculating upgrade... 375s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 375s Reading package lists... 375s Building dependency tree... 375s Reading state information... 375s Solving dependencies... 375s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 375s autopkgtest [02:56:33]: rebooting testbed after setup commands that affected boot 391s autopkgtest [02:56:49]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP Mon Sep 22 08:56:47 UTC 2025 393s autopkgtest [02:56:51]: @@@@@@@@@@@@@@@@@@@@ apt-source exchange-calendars 396s Get:1 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (dsc) [2397 B] 396s Get:2 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (tar) [4019 kB] 396s Get:3 http://ftpmaster.internal/ubuntu resolute/universe exchange-calendars 4.11.2-1 (diff) [3468 B] 396s gpgv: Signature made Fri Oct 17 09:00:08 2025 UTC 396s gpgv: using RSA key FB8ACFA78C726089C38AD0269605A1098C63B92A 396s gpgv: Can't check signature: No public key 396s dpkg-source: warning: cannot verify inline signature for ./exchange-calendars_4.11.2-1.dsc: no acceptable signature found 396s autopkgtest [02:56:54]: testing package exchange-calendars version 4.11.2-1 397s autopkgtest [02:56:55]: build not needed 398s autopkgtest [02:56:56]: test pybuild-autopkgtest: preparing testbed 399s Reading package lists... 399s Building dependency tree... 399s Reading state information... 399s Solving dependencies... 399s The following NEW packages will be installed: 399s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 399s cpp-15-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 399s dh-python dh-strip-nondeterminism dwz g++ g++-15 g++-15-s390x-linux-gnu 399s g++-s390x-linux-gnu gcc gcc-15 gcc-15-s390x-linux-gnu gcc-s390x-linux-gnu 399s gettext intltool-debian libarchive-zip-perl libasan8 libblas3 libcc1-0 399s libdebhelper-perl libfile-stripnondeterminism-perl libgcc-15-dev 399s libgfortran5 libgomp1 libisl23 libitm1 liblapack3 libmpc3 libstdc++-15-dev 399s libtool libubsan1 m4 po-debconf pybuild-plugin-autopkgtest 399s pybuild-plugin-pyproject python3-all python3-build 399s python3-exchange-calendars python3-hypothesis python3-iniconfig 399s python3-installer python3-korean-lunar-calendar python3-numpy 399s python3-numpy-dev python3-pandas python3-pandas-lib python3-pluggy 399s python3-pyluach python3-pyproject-hooks python3-pytest python3-pytz 399s python3-sortedcontainers python3-toolz python3-wheel 399s 0 upgraded, 64 newly installed, 0 to remove and 0 not upgraded. 399s Need to get 77.9 MB of archives. 399s After this operation, 294 MB of additional disk space will be used. 399s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-numpy-dev s390x 1:2.3.4+ds-3ubuntu1 [146 kB] 399s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libblas3 s390x 3.12.1-7 [254 kB] 400s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libgfortran5 s390x 15.2.0-7ubuntu1 [629 kB] 400s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x liblapack3 s390x 3.12.1-7 [2983 kB] 400s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-numpy s390x 1:2.3.4+ds-3ubuntu1 [5302 kB] 401s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x m4 s390x 1.4.20-2 [223 kB] 401s Get:7 http://ftpmaster.internal/ubuntu resolute/main s390x autoconf all 2.72-3.1ubuntu1 [384 kB] 401s Get:8 http://ftpmaster.internal/ubuntu resolute/main s390x autotools-dev all 20240727.1 [43.4 kB] 401s Get:9 http://ftpmaster.internal/ubuntu resolute/main s390x automake all 1:1.18.1-2 [581 kB] 401s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x autopoint all 0.23.1-2build2 [619 kB] 401s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x libisl23 s390x 0.27-1 [704 kB] 401s Get:12 http://ftpmaster.internal/ubuntu resolute/main s390x libmpc3 s390x 1.3.1-2 [57.4 kB] 401s Get:13 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [10.2 MB] 402s Get:14 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-15 s390x 15.2.0-7ubuntu1 [1022 B] 402s Get:15 http://ftpmaster.internal/ubuntu resolute/main s390x cpp-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [5746 B] 402s Get:16 http://ftpmaster.internal/ubuntu resolute/main s390x cpp s390x 4:15.2.0-4ubuntu1 [22.4 kB] 402s Get:17 http://ftpmaster.internal/ubuntu resolute/main s390x libcc1-0 s390x 15.2.0-7ubuntu1 [50.0 kB] 402s Get:18 http://ftpmaster.internal/ubuntu resolute/main s390x libgomp1 s390x 15.2.0-7ubuntu1 [154 kB] 402s Get:19 http://ftpmaster.internal/ubuntu resolute/main s390x libitm1 s390x 15.2.0-7ubuntu1 [30.9 kB] 402s Get:20 http://ftpmaster.internal/ubuntu resolute/main s390x libasan8 s390x 15.2.0-7ubuntu1 [2968 kB] 402s Get:21 http://ftpmaster.internal/ubuntu resolute/main s390x libubsan1 s390x 15.2.0-7ubuntu1 [1211 kB] 402s Get:22 http://ftpmaster.internal/ubuntu resolute/main s390x libgcc-15-dev s390x 15.2.0-7ubuntu1 [1045 kB] 402s Get:23 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [19.9 MB] 403s Get:24 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-15 s390x 15.2.0-7ubuntu1 [513 kB] 403s Get:25 http://ftpmaster.internal/ubuntu resolute/main s390x gcc-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [1208 B] 403s Get:26 http://ftpmaster.internal/ubuntu resolute/main s390x gcc s390x 4:15.2.0-4ubuntu1 [5018 B] 403s Get:27 http://ftpmaster.internal/ubuntu resolute/main s390x libstdc++-15-dev s390x 15.2.0-7ubuntu1 [2659 kB] 403s Get:28 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15-s390x-linux-gnu s390x 15.2.0-7ubuntu1 [11.7 MB] 404s Get:29 http://ftpmaster.internal/ubuntu resolute/main s390x g++-15 s390x 15.2.0-7ubuntu1 [23.7 kB] 404s Get:30 http://ftpmaster.internal/ubuntu resolute/main s390x g++-s390x-linux-gnu s390x 4:15.2.0-4ubuntu1 [956 B] 404s Get:31 http://ftpmaster.internal/ubuntu resolute/main s390x g++ s390x 4:15.2.0-4ubuntu1 [1078 B] 404s Get:32 http://ftpmaster.internal/ubuntu resolute/main s390x build-essential s390x 12.12ubuntu1 [5090 B] 404s Get:33 http://ftpmaster.internal/ubuntu resolute/main s390x libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 404s Get:34 http://ftpmaster.internal/ubuntu resolute/main s390x libtool all 2.5.4-7 [169 kB] 404s Get:35 http://ftpmaster.internal/ubuntu resolute/main s390x dh-autoreconf all 21 [12.5 kB] 404s Get:36 http://ftpmaster.internal/ubuntu resolute/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 404s Get:37 http://ftpmaster.internal/ubuntu resolute/main s390x libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 404s Get:38 http://ftpmaster.internal/ubuntu resolute/main s390x dh-strip-nondeterminism all 1.15.0-1 [5090 B] 404s Get:39 http://ftpmaster.internal/ubuntu resolute/main s390x debugedit s390x 1:5.2-3 [52.8 kB] 404s Get:40 http://ftpmaster.internal/ubuntu resolute/main s390x dwz s390x 0.16-2 [121 kB] 404s Get:41 http://ftpmaster.internal/ubuntu resolute/main s390x gettext s390x 0.23.1-2build2 [1062 kB] 404s Get:42 http://ftpmaster.internal/ubuntu resolute/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 404s Get:43 http://ftpmaster.internal/ubuntu resolute/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 404s Get:44 http://ftpmaster.internal/ubuntu resolute/main s390x debhelper all 13.24.2ubuntu1 [896 kB] 404s Get:45 http://ftpmaster.internal/ubuntu resolute/universe s390x dh-python all 6.20250414 [119 kB] 404s Get:46 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 404s Get:47 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 404s Get:48 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-wheel all 0.46.1-2 [22.1 kB] 404s Get:49 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-build all 1.2.2-4 [31.0 kB] 404s Get:50 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 404s Get:51 http://ftpmaster.internal/ubuntu resolute/universe s390x pybuild-plugin-pyproject all 6.20250414 [1728 B] 404s Get:52 http://ftpmaster.internal/ubuntu resolute/main s390x python3-all s390x 3.13.7-1 [886 B] 404s Get:53 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-korean-lunar-calendar all 0.3.1-2 [9108 B] 404s Get:54 http://ftpmaster.internal/ubuntu resolute/main s390x python3-pytz all 2025.2-4 [32.3 kB] 404s Get:55 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pandas-lib s390x 2.3.3+dfsg-1ubuntu1 [8668 kB] 404s Get:56 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pandas all 2.3.3+dfsg-1ubuntu1 [2948 kB] 404s Get:57 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pyluach all 2.3.0-1 [24.2 kB] 404s Get:58 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-toolz all 1.0.0-2 [45.0 kB] 404s Get:59 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-exchange-calendars all 4.11.2-1 [153 kB] 404s Get:60 http://ftpmaster.internal/ubuntu resolute/main s390x python3-sortedcontainers all 2.4.0-2 [27.6 kB] 404s Get:61 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-hypothesis all 6.130.5-2 [341 kB] 404s Get:62 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-1 [6840 B] 404s Get:63 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-1 [21.0 kB] 404s Get:64 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 8.3.5-2 [252 kB] 405s Fetched 77.9 MB in 5s (14.6 MB/s) 405s Selecting previously unselected package python3-numpy-dev:s390x. 405s (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 ... 61308 files and directories currently installed.) 405s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.4+ds-3ubuntu1_s390x.deb ... 405s Unpacking python3-numpy-dev:s390x (1:2.3.4+ds-3ubuntu1) ... 405s Selecting previously unselected package libblas3:s390x. 405s Preparing to unpack .../01-libblas3_3.12.1-7_s390x.deb ... 405s Unpacking libblas3:s390x (3.12.1-7) ... 405s Selecting previously unselected package libgfortran5:s390x. 405s Preparing to unpack .../02-libgfortran5_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking libgfortran5:s390x (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package liblapack3:s390x. 405s Preparing to unpack .../03-liblapack3_3.12.1-7_s390x.deb ... 405s Unpacking liblapack3:s390x (3.12.1-7) ... 405s Selecting previously unselected package python3-numpy. 405s Preparing to unpack .../04-python3-numpy_1%3a2.3.4+ds-3ubuntu1_s390x.deb ... 405s Unpacking python3-numpy (1:2.3.4+ds-3ubuntu1) ... 405s Selecting previously unselected package m4. 405s Preparing to unpack .../05-m4_1.4.20-2_s390x.deb ... 405s Unpacking m4 (1.4.20-2) ... 405s Selecting previously unselected package autoconf. 405s Preparing to unpack .../06-autoconf_2.72-3.1ubuntu1_all.deb ... 405s Unpacking autoconf (2.72-3.1ubuntu1) ... 405s Selecting previously unselected package autotools-dev. 405s Preparing to unpack .../07-autotools-dev_20240727.1_all.deb ... 405s Unpacking autotools-dev (20240727.1) ... 405s Selecting previously unselected package automake. 405s Preparing to unpack .../08-automake_1%3a1.18.1-2_all.deb ... 405s Unpacking automake (1:1.18.1-2) ... 405s Selecting previously unselected package autopoint. 405s Preparing to unpack .../09-autopoint_0.23.1-2build2_all.deb ... 405s Unpacking autopoint (0.23.1-2build2) ... 405s Selecting previously unselected package libisl23:s390x. 405s Preparing to unpack .../10-libisl23_0.27-1_s390x.deb ... 405s Unpacking libisl23:s390x (0.27-1) ... 405s Selecting previously unselected package libmpc3:s390x. 405s Preparing to unpack .../11-libmpc3_1.3.1-2_s390x.deb ... 405s Unpacking libmpc3:s390x (1.3.1-2) ... 405s Selecting previously unselected package cpp-15-s390x-linux-gnu. 405s Preparing to unpack .../12-cpp-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking cpp-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package cpp-15. 405s Preparing to unpack .../13-cpp-15_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package cpp-s390x-linux-gnu. 405s Preparing to unpack .../14-cpp-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 405s Unpacking cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 405s Selecting previously unselected package cpp. 405s Preparing to unpack .../15-cpp_4%3a15.2.0-4ubuntu1_s390x.deb ... 405s Unpacking cpp (4:15.2.0-4ubuntu1) ... 405s Selecting previously unselected package libcc1-0:s390x. 405s Preparing to unpack .../16-libcc1-0_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking libcc1-0:s390x (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package libgomp1:s390x. 405s Preparing to unpack .../17-libgomp1_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking libgomp1:s390x (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package libitm1:s390x. 405s Preparing to unpack .../18-libitm1_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking libitm1:s390x (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package libasan8:s390x. 405s Preparing to unpack .../19-libasan8_15.2.0-7ubuntu1_s390x.deb ... 405s Unpacking libasan8:s390x (15.2.0-7ubuntu1) ... 405s Selecting previously unselected package libubsan1:s390x. 406s Preparing to unpack .../20-libubsan1_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking libubsan1:s390x (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package libgcc-15-dev:s390x. 406s Preparing to unpack .../21-libgcc-15-dev_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking libgcc-15-dev:s390x (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package gcc-15-s390x-linux-gnu. 406s Preparing to unpack .../22-gcc-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking gcc-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package gcc-15. 406s Preparing to unpack .../23-gcc-15_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package gcc-s390x-linux-gnu. 406s Preparing to unpack .../24-gcc-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 406s Unpacking gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 406s Selecting previously unselected package gcc. 406s Preparing to unpack .../25-gcc_4%3a15.2.0-4ubuntu1_s390x.deb ... 406s Unpacking gcc (4:15.2.0-4ubuntu1) ... 406s Selecting previously unselected package libstdc++-15-dev:s390x. 406s Preparing to unpack .../26-libstdc++-15-dev_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking libstdc++-15-dev:s390x (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package g++-15-s390x-linux-gnu. 406s Preparing to unpack .../27-g++-15-s390x-linux-gnu_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking g++-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package g++-15. 406s Preparing to unpack .../28-g++-15_15.2.0-7ubuntu1_s390x.deb ... 406s Unpacking g++-15 (15.2.0-7ubuntu1) ... 406s Selecting previously unselected package g++-s390x-linux-gnu. 406s Preparing to unpack .../29-g++-s390x-linux-gnu_4%3a15.2.0-4ubuntu1_s390x.deb ... 406s Unpacking g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 406s Selecting previously unselected package g++. 406s Preparing to unpack .../30-g++_4%3a15.2.0-4ubuntu1_s390x.deb ... 406s Unpacking g++ (4:15.2.0-4ubuntu1) ... 406s Selecting previously unselected package build-essential. 406s Preparing to unpack .../31-build-essential_12.12ubuntu1_s390x.deb ... 406s Unpacking build-essential (12.12ubuntu1) ... 406s Selecting previously unselected package libdebhelper-perl. 406s Preparing to unpack .../32-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 406s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 406s Selecting previously unselected package libtool. 406s Preparing to unpack .../33-libtool_2.5.4-7_all.deb ... 406s Unpacking libtool (2.5.4-7) ... 406s Selecting previously unselected package dh-autoreconf. 406s Preparing to unpack .../34-dh-autoreconf_21_all.deb ... 406s Unpacking dh-autoreconf (21) ... 406s Selecting previously unselected package libarchive-zip-perl. 406s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 406s Unpacking libarchive-zip-perl (1.68-1) ... 406s Selecting previously unselected package libfile-stripnondeterminism-perl. 406s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 406s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 406s Selecting previously unselected package dh-strip-nondeterminism. 406s Preparing to unpack .../37-dh-strip-nondeterminism_1.15.0-1_all.deb ... 406s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 406s Selecting previously unselected package debugedit. 406s Preparing to unpack .../38-debugedit_1%3a5.2-3_s390x.deb ... 406s Unpacking debugedit (1:5.2-3) ... 406s Selecting previously unselected package dwz. 406s Preparing to unpack .../39-dwz_0.16-2_s390x.deb ... 406s Unpacking dwz (0.16-2) ... 406s Selecting previously unselected package gettext. 406s Preparing to unpack .../40-gettext_0.23.1-2build2_s390x.deb ... 406s Unpacking gettext (0.23.1-2build2) ... 406s Selecting previously unselected package intltool-debian. 406s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6_all.deb ... 406s Unpacking intltool-debian (0.35.0+20060710.6) ... 406s Selecting previously unselected package po-debconf. 406s Preparing to unpack .../42-po-debconf_1.0.21+nmu1_all.deb ... 406s Unpacking po-debconf (1.0.21+nmu1) ... 406s Selecting previously unselected package debhelper. 406s Preparing to unpack .../43-debhelper_13.24.2ubuntu1_all.deb ... 406s Unpacking debhelper (13.24.2ubuntu1) ... 406s Selecting previously unselected package dh-python. 406s Preparing to unpack .../44-dh-python_6.20250414_all.deb ... 406s Unpacking dh-python (6.20250414) ... 406s Selecting previously unselected package pybuild-plugin-autopkgtest. 406s Preparing to unpack .../45-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 406s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 406s Selecting previously unselected package python3-pyproject-hooks. 406s Preparing to unpack .../46-python3-pyproject-hooks_1.2.0-1_all.deb ... 406s Unpacking python3-pyproject-hooks (1.2.0-1) ... 406s Selecting previously unselected package python3-wheel. 406s Preparing to unpack .../47-python3-wheel_0.46.1-2_all.deb ... 406s Unpacking python3-wheel (0.46.1-2) ... 406s Selecting previously unselected package python3-build. 406s Preparing to unpack .../48-python3-build_1.2.2-4_all.deb ... 406s Unpacking python3-build (1.2.2-4) ... 406s Selecting previously unselected package python3-installer. 406s Preparing to unpack .../49-python3-installer_0.7.0+dfsg1-3_all.deb ... 406s Unpacking python3-installer (0.7.0+dfsg1-3) ... 406s Selecting previously unselected package pybuild-plugin-pyproject. 406s Preparing to unpack .../50-pybuild-plugin-pyproject_6.20250414_all.deb ... 406s Unpacking pybuild-plugin-pyproject (6.20250414) ... 406s Selecting previously unselected package python3-all. 406s Preparing to unpack .../51-python3-all_3.13.7-1_s390x.deb ... 406s Unpacking python3-all (3.13.7-1) ... 407s Selecting previously unselected package python3-korean-lunar-calendar. 407s Preparing to unpack .../52-python3-korean-lunar-calendar_0.3.1-2_all.deb ... 407s Unpacking python3-korean-lunar-calendar (0.3.1-2) ... 407s Selecting previously unselected package python3-pytz. 407s Preparing to unpack .../53-python3-pytz_2025.2-4_all.deb ... 407s Unpacking python3-pytz (2025.2-4) ... 407s Selecting previously unselected package python3-pandas-lib:s390x. 407s Preparing to unpack .../54-python3-pandas-lib_2.3.3+dfsg-1ubuntu1_s390x.deb ... 407s Unpacking python3-pandas-lib:s390x (2.3.3+dfsg-1ubuntu1) ... 407s Selecting previously unselected package python3-pandas. 407s Preparing to unpack .../55-python3-pandas_2.3.3+dfsg-1ubuntu1_all.deb ... 407s Unpacking python3-pandas (2.3.3+dfsg-1ubuntu1) ... 407s Selecting previously unselected package python3-pyluach. 407s Preparing to unpack .../56-python3-pyluach_2.3.0-1_all.deb ... 407s Unpacking python3-pyluach (2.3.0-1) ... 407s Selecting previously unselected package python3-toolz. 407s Preparing to unpack .../57-python3-toolz_1.0.0-2_all.deb ... 407s Unpacking python3-toolz (1.0.0-2) ... 407s Selecting previously unselected package python3-exchange-calendars. 407s Preparing to unpack .../58-python3-exchange-calendars_4.11.2-1_all.deb ... 407s Unpacking python3-exchange-calendars (4.11.2-1) ... 407s Selecting previously unselected package python3-sortedcontainers. 407s Preparing to unpack .../59-python3-sortedcontainers_2.4.0-2_all.deb ... 407s Unpacking python3-sortedcontainers (2.4.0-2) ... 407s Selecting previously unselected package python3-hypothesis. 407s Preparing to unpack .../60-python3-hypothesis_6.130.5-2_all.deb ... 407s Unpacking python3-hypothesis (6.130.5-2) ... 407s Selecting previously unselected package python3-iniconfig. 407s Preparing to unpack .../61-python3-iniconfig_2.1.0-1_all.deb ... 407s Unpacking python3-iniconfig (2.1.0-1) ... 407s Selecting previously unselected package python3-pluggy. 407s Preparing to unpack .../62-python3-pluggy_1.6.0-1_all.deb ... 407s Unpacking python3-pluggy (1.6.0-1) ... 407s Selecting previously unselected package python3-pytest. 407s Preparing to unpack .../63-python3-pytest_8.3.5-2_all.deb ... 407s Unpacking python3-pytest (8.3.5-2) ... 407s Setting up dh-python (6.20250414) ... 407s Setting up python3-iniconfig (2.1.0-1) ... 407s Setting up python3-pyluach (2.3.0-1) ... 407s Setting up libarchive-zip-perl (1.68-1) ... 407s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 407s Setting up m4 (1.4.20-2) ... 407s Setting up python3-all (3.13.7-1) ... 407s Setting up python3-pytz (2025.2-4) ... 407s Setting up python3-sortedcontainers (2.4.0-2) ... 407s Setting up libgomp1:s390x (15.2.0-7ubuntu1) ... 407s Setting up python3-wheel (0.46.1-2) ... 408s Setting up autotools-dev (20240727.1) ... 408s Setting up libblas3:s390x (3.12.1-7) ... 408s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so.3 to provide /usr/lib/s390x-linux-gnu/libblas.so.3 (libblas.so.3-s390x-linux-gnu) in auto mode 408s Setting up python3-korean-lunar-calendar (0.3.1-2) ... 408s Setting up python3-pyproject-hooks (1.2.0-1) ... 408s Setting up libmpc3:s390x (1.3.1-2) ... 408s Setting up python3-numpy-dev:s390x (1:2.3.4+ds-3ubuntu1) ... 408s Setting up autopoint (0.23.1-2build2) ... 408s Setting up python3-installer (0.7.0+dfsg1-3) ... 408s Setting up libgfortran5:s390x (15.2.0-7ubuntu1) ... 408s Setting up autoconf (2.72-3.1ubuntu1) ... 408s Setting up python3-pluggy (1.6.0-1) ... 408s Setting up libubsan1:s390x (15.2.0-7ubuntu1) ... 408s Setting up dwz (0.16-2) ... 408s Setting up libasan8:s390x (15.2.0-7ubuntu1) ... 408s Setting up debugedit (1:5.2-3) ... 408s Setting up python3-toolz (1.0.0-2) ... 408s Setting up libisl23:s390x (0.27-1) ... 408s Setting up python3-build (1.2.2-4) ... 408s Setting up libcc1-0:s390x (15.2.0-7ubuntu1) ... 408s Setting up libitm1:s390x (15.2.0-7ubuntu1) ... 408s Setting up automake (1:1.18.1-2) ... 408s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 408s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 408s Setting up liblapack3:s390x (3.12.1-7) ... 408s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/s390x-linux-gnu/liblapack.so.3 (liblapack.so.3-s390x-linux-gnu) in auto mode 408s Setting up gettext (0.23.1-2build2) ... 408s Setting up libgcc-15-dev:s390x (15.2.0-7ubuntu1) ... 408s Setting up pybuild-plugin-pyproject (6.20250414) ... 408s Setting up python3-pytest (8.3.5-2) ... 408s Setting up python3-hypothesis (6.130.5-2) ... 409s Setting up intltool-debian (0.35.0+20060710.6) ... 409s Setting up libstdc++-15-dev:s390x (15.2.0-7ubuntu1) ... 409s Setting up python3-numpy (1:2.3.4+ds-3ubuntu1) ... 410s Setting up dh-strip-nondeterminism (1.15.0-1) ... 410s Setting up cpp-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 410s Setting up gcc-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 410s Setting up g++-15-s390x-linux-gnu (15.2.0-7ubuntu1) ... 410s Setting up cpp-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 410s Setting up po-debconf (1.0.21+nmu1) ... 410s Setting up python3-pandas-lib:s390x (2.3.3+dfsg-1ubuntu1) ... 410s Setting up python3-pandas (2.3.3+dfsg-1ubuntu1) ... 414s Setting up gcc-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 414s Setting up cpp-15 (15.2.0-7ubuntu1) ... 414s Setting up cpp (4:15.2.0-4ubuntu1) ... 414s Setting up python3-exchange-calendars (4.11.2-1) ... 415s Setting up g++-s390x-linux-gnu (4:15.2.0-4ubuntu1) ... 415s Setting up gcc-15 (15.2.0-7ubuntu1) ... 415s Setting up g++-15 (15.2.0-7ubuntu1) ... 415s Setting up libtool (2.5.4-7) ... 415s Setting up gcc (4:15.2.0-4ubuntu1) ... 415s Setting up dh-autoreconf (21) ... 415s Setting up g++ (4:15.2.0-4ubuntu1) ... 415s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 415s Setting up build-essential (12.12ubuntu1) ... 415s Setting up debhelper (13.24.2ubuntu1) ... 415s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 415s Processing triggers for install-info (7.2-5) ... 415s Processing triggers for libc-bin (2.42-2ubuntu2) ... 415s Processing triggers for man-db (2.13.1-1) ... 417s autopkgtest [02:57:15]: test pybuild-autopkgtest: pybuild-autopkgtest 417s autopkgtest [02:57:15]: test pybuild-autopkgtest: [----------------------- 417s pybuild-autopkgtest 417s I: pybuild base:311: cd /tmp/autopkgtest.DQIYON/autopkgtest_tmp/build; python3.13 -m pytest -k "not test_testbase_integrity" 417s ============================= test session starts ============================== 417s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.13 417s cachedir: .pytest_cache 417s hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/tmp/autopkgtest.DQIYON/autopkgtest_tmp/build/.hypothesis/examples')) 417s rootdir: /tmp/autopkgtest.DQIYON/autopkgtest_tmp/build 417s configfile: pyproject.toml 417s testpaths: tests, exchange_calendars/utils/pandas_utils.py 417s plugins: typeguard-4.4.2, hypothesis-6.130.5 420s collecting ... collected 9191 items / 65 deselected / 9126 selected 420s 420s tests/test_aixk_calendar.py::TestAIXKCalendar::test_base_integrity PASSED [ 0%] 421s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calculated_against_csv PASSED [ 0%] 421s tests/test_aixk_calendar.py::TestAIXKCalendar::test_start_end PASSED [ 0%] 421s tests/test_aixk_calendar.py::TestAIXKCalendar::test_invalid_input PASSED [ 0%] 421s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_min PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_bound_max PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sanity_check_session_lengths PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_specification PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_daylight_savings PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_opens_closes_break_starts_ends PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[both] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[left] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[right] PASSED [ 0%] 422s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[right] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[right] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[right] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[right-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[left-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[both-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-previous] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_session[neither-next] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_properties[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_calendar_bounds_properties[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minute_methods[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_minutes[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_trading_minute[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_break_minute[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_on_minute[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_open_at_time[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_minute[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[neither] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[right] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[right] PASSED [ 0%] 423s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[right] PASSED [ 0%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[right] PASSED [ 0%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[right] PASSED [ 0%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[right] PASSED [ 0%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[right] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[right] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[right] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[right] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[left] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_past_session[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_to_future_session[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minute_offset_by_sessions[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_in_range[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_window[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_distance[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_minutes_to_sessions[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_minutes_count[both] PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_has_break PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_regular_holidays_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_adhoc_holidays_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_holidays_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_sample_time PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes_weekdays_time PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_non_early_closes_sample_time PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_late_opens PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_early_closes PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_open_close_break_start_end PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_has_break PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_next_prev_session PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_session_offset PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_is_session PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_date_to_session PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_prev_next_open_close PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_in_range PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_has_break PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_window PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_sessions_distance PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_trading_index PASSED [ 1%] 424s tests/test_aixk_calendar.py::TestAIXKCalendar::test_deprecated PASSED [ 1%] 424s tests/test_always_open.py::TestAlwaysOpenCalendar::test_base_integrity PASSED [ 1%] 424s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calculated_against_csv PASSED [ 1%] 424s tests/test_always_open.py::TestAlwaysOpenCalendar::test_start_end PASSED [ 1%] 424s tests/test_always_open.py::TestAlwaysOpenCalendar::test_invalid_input PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_min PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_bound_max PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sanity_check_session_lengths PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_specification PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_daylight_savings PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_opens_closes_break_starts_ends PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[left] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-next] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-next] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-next] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-next] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_properties[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_calendar_bounds_properties[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minute_methods[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_minutes[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_trading_minute[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_break_minute[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_on_minute[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_open_at_time[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_minute[right] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-previous] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-previous] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[right-none] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[right-none] PASSED [ 1%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_session[left-none] PASSED [ 2%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_trading_minute[left-none] PASSED [ 2%] 425s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[right] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_past_session[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_to_future_session[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minute_offset_by_sessions[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_in_range[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_window[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_distance[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_minutes_to_sessions[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_minutes_count[left] PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_has_break PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_regular_holidays_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_adhoc_holidays_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_holidays_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_sample_time PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes_weekdays_time PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_non_early_closes_sample_time PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_late_opens PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_early_closes PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_open_close_break_start_end PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_has_break PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_next_prev_session PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_session_offset PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_is_session PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_date_to_session PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_prev_next_open_close PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_in_range PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_has_break PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_window PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_sessions_distance PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_trading_index PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_deprecated PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_day PASSED [ 2%] 426s tests/test_always_open.py::TestAlwaysOpenCalendar::test_open_every_minute PASSED [ 2%] 426s tests/test_asex_calendar.py::TestASEXCalendar::test_base_integrity PASSED [ 2%] 427s tests/test_asex_calendar.py::TestASEXCalendar::test_calculated_against_csv PASSED [ 2%] 427s tests/test_asex_calendar.py::TestASEXCalendar::test_start_end PASSED [ 2%] 427s tests/test_asex_calendar.py::TestASEXCalendar::test_invalid_input PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_min PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_bound_max PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_sanity_check_session_lengths PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_specification PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_daylight_savings PASSED [ 2%] 428s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_opens_closes_break_starts_ends PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[both] PASSED [ 2%] 429s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[both] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[both] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-next] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-next] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[left] PASSED [ 2%] 430s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[left] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[left] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 2%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-next] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[right] PASSED [ 3%] 431s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[right] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[right] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[right] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[right-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[left-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[both-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-previous] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_session[neither-next] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 3%] 432s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_properties[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minute_methods[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_session_minutes[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_is_trading_minute[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_is_break_minute[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_on_minute[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_is_open_at_time[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_minute[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[neither] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[right] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[right] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[right] PASSED [ 3%] 433s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[right] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[left] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_past_session[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_to_future_session[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_in_range[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_window[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_distance[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_minutes_to_sessions[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_minutes_count[both] PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_has_break PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_regular_holidays_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_adhoc_holidays_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_non_holidays_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_sample_time PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes_weekdays_time PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_non_early_closes_sample_time PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_late_opens PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_early_closes PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_session_open_close_break_start_end PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_session_has_break PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_next_prev_session PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_session_offset PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_is_session PASSED [ 3%] 434s tests/test_asex_calendar.py::TestASEXCalendar::test_date_to_session PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_prev_next_open_close PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_in_range PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_has_break PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_window PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_sessions_distance PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_trading_index PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_deprecated PASSED [ 4%] 435s tests/test_asex_calendar.py::TestASEXCalendar::test_close_time_change PASSED [ 4%] 435s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_base_integrity PASSED [ 4%] 437s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calculated_against_csv PASSED [ 4%] 437s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_start_end PASSED [ 4%] 437s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_invalid_input PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_min PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_bound_max PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sanity_check_session_lengths PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_specification PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_daylight_savings PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_opens_closes_break_starts_ends PASSED [ 4%] 438s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[both] PASSED [ 4%] 439s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[both] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[both] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-next] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-next] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[left] PASSED [ 4%] 440s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[left] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[left] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-next] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[right] PASSED [ 4%] 441s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[right] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[right] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[right] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[right-none] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[left-none] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[both-none] PASSED [ 4%] 442s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-none] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-previous] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_session[neither-next] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_properties[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_calendar_bounds_properties[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minute_methods[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_minutes[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_trading_minute[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_break_minute[neither] PASSED [ 4%] 443s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_on_minute[neither] PASSED [ 4%] 444s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_open_at_time[neither] PASSED [ 4%] 444s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_minute[neither] PASSED [ 4%] 444s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[neither] PASSED [ 4%] 444s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[neither] PASSED [ 4%] 444s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[neither] PASSED [ 4%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 4%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[neither] PASSED [ 4%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[neither] PASSED [ 4%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[neither] PASSED [ 4%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[neither] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[neither] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[neither] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[right] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[left] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_past_session[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_to_future_session[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minute_offset_by_sessions[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_in_range[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_window[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_distance[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_minutes_to_sessions[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_minutes_count[both] PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_has_break PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_regular_holidays_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_adhoc_holidays_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_holidays_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_sample_time PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes_weekdays_time PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_non_early_closes_sample_time PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_late_opens PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_early_closes PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_open_close_break_start_end PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_has_break PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_next_prev_session PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_session_offset PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_is_session PASSED [ 5%] 445s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_date_to_session PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_prev_next_open_close PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_in_range PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_has_break PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_window PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_sessions_distance PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_trading_index PASSED [ 5%] 447s tests/test_bvmf_calendar.py::TestBVMFCalendar::test_deprecated PASSED [ 5%] 447s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_add_new_aliases PASSED [ 5%] 447s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_aliases_to_names PASSED [ 5%] 447s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_allow_alias_override_with_force PASSED [ 5%] 447s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_follow_alias_chain PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_cache PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_kwargs PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_get_calendar_names PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_names_to_aliases PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_alias_that_already_exists PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_reject_cyclic_aliases PASSED [ 5%] 448s tests/test_calendar_dispatcher.py::CalendarDispatcherTestCase::test_remove_aliases PASSED [ 5%] 448s tests/test_calendar_helpers.py::test_constants PASSED [ 5%] 448s tests/test_calendar_helpers.py::test_is_date PASSED [ 5%] 448s tests/test_calendar_helpers.py::test_is_utc PASSED [ 5%] 448s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-True] PASSED [ 5%] 449s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[2021-06-05-False] PASSED [ 5%] 449s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-True] PASSED [ 5%] 449s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult1-False] PASSED [ 5%] 450s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-True] PASSED [ 5%] 450s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult2-False] PASSED [ 5%] 451s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-True] PASSED [ 5%] 451s tests/test_calendar_helpers.py::test_parse_timestamp_with_date[date_mult3-False] PASSED [ 5%] 452s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-True] PASSED [ 5%] 452s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[2021-06-02 23:00-False] PASSED [ 5%] 452s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-True] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult1-False] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-True] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_minute[minute_mult2-False] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[left] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[right] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[both] PASSED [ 5%] 453s tests/test_calendar_helpers.py::test_parse_timestamp_with_second[neither] PASSED [ 6%] 454s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[2021-13-13] PASSED [ 6%] 454s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[malformed1] PASSED [ 6%] 454s tests/test_calendar_helpers.py::test_parse_timestamp_error_malformed[not a timestamp] PASSED [ 6%] 455s tests/test_calendar_helpers.py::test_parse_timestamp_error_oob PASSED [ 6%] 455s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[2021-06-02 23:00] PASSED [ 6%] 455s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult1] PASSED [ 6%] 456s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_minute[minute_mult2] PASSED [ 6%] 456s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[2021-06-05] PASSED [ 6%] 456s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult1] PASSED [ 6%] 457s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult2] PASSED [ 6%] 457s tests/test_calendar_helpers.py::test_parse_date_or_minute_for_date[date_mult3] PASSED [ 6%] 457s tests/test_calendar_helpers.py::test_parse_date_or_minute_oob PASSED [ 6%] 458s tests/test_calendar_helpers.py::test_parse_date[2021-06-05] PASSED [ 6%] 458s tests/test_calendar_helpers.py::test_parse_date[date_mult1] PASSED [ 6%] 458s tests/test_calendar_helpers.py::test_parse_date[date_mult2] PASSED [ 6%] 459s tests/test_calendar_helpers.py::test_parse_date[date_mult3] PASSED [ 6%] 459s tests/test_calendar_helpers.py::test_parse_date_errors PASSED [ 6%] 459s tests/test_calendar_helpers.py::test_parse_session PASSED [ 6%] 460s tests/test_calendar_helpers.py::test_parse_trading_minute PASSED [ 6%] 465s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XLON] PASSED [ 6%] 468s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] PASSED [ 6%] 468s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XLON] PASSED [ 6%] 474s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XHKG] PASSED [ 6%] 477s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] PASSED [ 6%] 477s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XHKG] PASSED [ 6%] 480s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XTAE] PASSED [ 6%] 482s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XTAE] PASSED [ 6%] 482s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[XTAE] PASSED [ 6%] 490s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[CMES] PASSED [ 6%] 497s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] PASSED [ 6%] 497s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[CMES] PASSED [ 6%] 498s tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[24/7] PASSED [ 6%] 499s tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[24/7] PASSED [ 6%] 499s tests/test_calendar_helpers.py::TestTradingIndex::test_daily_fuzz[24/7] PASSED [ 6%] 500s tests/test_calendar_helpers.py::TestTradingIndex::test_for_empty_with_neither_fuzz PASSED [ 6%] 500s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[XHKG] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[24/7] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlap_error_fuzz[CMES] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap0-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap1-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap2-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps[ti_for_overlap3-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[right-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-True] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_overlaps_2[both-False] PASSED [ 6%] 501s tests/test_calendar_helpers.py::TestTradingIndex::test_force PASSED [ 6%] 502s tests/test_calendar_helpers.py::TestTradingIndex::test_ignore_breaks PASSED [ 6%] 503s tests/test_calendar_helpers.py::TestTradingIndex::test_align PASSED [ 6%] 503s tests/test_calendar_helpers.py::TestTradingIndex::test_align_overlap PASSED [ 6%] 505s tests/test_calendar_helpers.py::TestTradingIndex::test_start_end_times PASSED [ 6%] 505s tests/test_calendar_helpers.py::TestTradingIndex::test_parsing_errors PASSED [ 6%] 505s tests/test_cmes_calendar.py::TestCMESCalendar::test_base_integrity PASSED [ 6%] 505s tests/test_cmes_calendar.py::TestCMESCalendar::test_calculated_against_csv PASSED [ 6%] 505s tests/test_cmes_calendar.py::TestCMESCalendar::test_start_end PASSED [ 6%] 505s tests/test_cmes_calendar.py::TestCMESCalendar::test_invalid_input PASSED [ 6%] 506s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_min PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_bound_max PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_sanity_check_session_lengths PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_specification PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_daylight_savings PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_opens_closes_break_starts_ends PASSED [ 6%] 507s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[left] PASSED [ 6%] 508s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[left] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[left] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-next] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-next] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 6%] 509s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_properties[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_calendar_bounds_properties[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minute_methods[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_minutes[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_trading_minute[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_break_minute[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_on_minute[right] PASSED [ 6%] 510s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_open_at_time[right] PASSED [ 6%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_minute[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-previous] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-previous] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[right-none] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_session[left-none] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[right] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_past_session[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_to_future_session[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minute_offset_by_sessions[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_in_range[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_window[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_distance[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_minutes_to_sessions[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_minutes_count[left] PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_has_break PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_regular_holidays_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_adhoc_holidays_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_holidays_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_sample_time PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes_weekdays_time PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_non_early_closes_sample_time PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_late_opens PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_early_closes PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_open_close_break_start_end PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_has_break PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_next_prev_session PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_session_offset PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_is_session PASSED [ 7%] 511s tests/test_cmes_calendar.py::TestCMESCalendar::test_date_to_session PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_prev_next_open_close PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_in_range PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_has_break PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_window PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_sessions_distance PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_trading_index PASSED [ 7%] 512s tests/test_cmes_calendar.py::TestCMESCalendar::test_deprecated PASSED [ 7%] 512s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar PASSED [ 7%] 512s tests/test_exchange_calendar.py::TestCalendarRegistration::test_register_calendar_type PASSED [ 7%] 512s tests/test_exchange_calendar.py::TestCalendarRegistration::test_both_places_are_checked PASSED [ 7%] 512s tests/test_exchange_calendar.py::TestCalendarRegistration::test_force_registration PASSED [ 7%] 537s tests/test_exchange_calendar.py::test_default_calendars PASSED [ 7%] 537s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19-0-time_offset0-tz0-2016-07-19 9:31] PASSED [ 7%] 537s tests/test_exchange_calendar.py::test_days_at_time[2016-07-19--1-time_offset1-tz1-2016-07-18 17:01] PASSED [ 7%] 537s tests/test_exchange_calendar.py::test_days_at_time[2004-04-05--1-time_offset2-tz2-2004-04-04 17:01] PASSED [ 7%] 537s tests/test_exchange_calendar.py::test_days_at_time[1990-04-02--1-time_offset3-tz3-1990-04-01 19:01] PASSED [ 7%] 537s tests/test_iepa_calendar.py::TestIEPACalendar::test_base_integrity PASSED [ 7%] 538s tests/test_iepa_calendar.py::TestIEPACalendar::test_calculated_against_csv PASSED [ 7%] 538s tests/test_iepa_calendar.py::TestIEPACalendar::test_start_end PASSED [ 7%] 538s tests/test_iepa_calendar.py::TestIEPACalendar::test_invalid_input PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_min PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_bound_max PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_sanity_check_session_lengths PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_specification PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_daylight_savings PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_opens_closes_break_starts_ends PASSED [ 7%] 539s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[both] PASSED [ 7%] 540s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[both] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[both] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-next] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-next] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-next] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-next] PASSED [ 7%] 541s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[left] PASSED [ 7%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[left] PASSED [ 7%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[left] PASSED [ 7%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[left] PASSED [ 8%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[left] PASSED [ 8%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[left] PASSED [ 8%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[left] PASSED [ 8%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[left] PASSED [ 8%] 542s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[left] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[left] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-next] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-next] PASSED [ 8%] 543s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[right] PASSED [ 8%] 544s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[right] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[right] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[right-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[right-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[left-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[left-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[both-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[both-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-previous] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_session[neither-next] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 8%] 545s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_properties[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_calendar_bounds_properties[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minute_methods[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_minutes[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_trading_minute[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_break_minute[neither] PASSED [ 8%] 546s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_on_minute[neither] PASSED [ 8%] 547s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_open_at_time[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_minute[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[neither] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[right] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[left] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_past_session[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_to_future_session[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minute_offset_by_sessions[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_in_range[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_window[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_distance[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_minutes_to_sessions[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_minutes_count[both] PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_has_break PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_regular_holidays_sample PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_adhoc_holidays_sample PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_holidays_sample PASSED [ 8%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens_sample PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_sample_time PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes_weekdays_time PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_non_early_closes_sample_time PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_late_opens PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_early_closes PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_open_close_break_start_end PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_has_break PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_next_prev_session PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_session_offset PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_is_session PASSED [ 9%] 548s tests/test_iepa_calendar.py::TestIEPACalendar::test_date_to_session PASSED [ 9%] 549s tests/test_iepa_calendar.py::TestIEPACalendar::test_prev_next_open_close PASSED [ 9%] 549s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_in_range PASSED [ 9%] 549s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_has_break PASSED [ 9%] 549s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_window PASSED [ 9%] 550s tests/test_iepa_calendar.py::TestIEPACalendar::test_sessions_distance PASSED [ 9%] 550s tests/test_iepa_calendar.py::TestIEPACalendar::test_trading_index PASSED [ 9%] 550s tests/test_iepa_calendar.py::TestIEPACalendar::test_deprecated PASSED [ 9%] 550s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_base_integrity PASSED [ 9%] 550s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calculated_against_csv PASSED [ 9%] 550s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_start_end PASSED [ 9%] 550s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_invalid_input PASSED [ 9%] 550s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_min PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_bound_max PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sanity_check_session_lengths PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_specification PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_daylight_savings PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_opens_closes_break_starts_ends PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-next] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-next] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-next] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-next] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_properties[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_calendar_bounds_properties[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minute_methods[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_minutes[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_trading_minute[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_break_minute[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_on_minute[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_open_at_time[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_minute[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-previous] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-previous] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[right-none] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[right-none] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_session[left-none] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_trading_minute[left-none] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[right] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_past_session[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_to_future_session[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minute_offset_by_sessions[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_in_range[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_window[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_distance[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_minutes_to_sessions[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_minutes_count[left] PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_has_break PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_regular_holidays_sample PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_adhoc_holidays_sample PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_holidays_sample PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens_sample PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample PASSED [ 9%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_sample_time PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes_weekdays_time PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_non_early_closes_sample_time PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_late_opens PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_early_closes PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_open_close_break_start_end PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_has_break PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_next_prev_session PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_session_offset PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_is_session PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_date_to_session PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_prev_next_open_close PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_in_range PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_has_break PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_window PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_sessions_distance PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_trading_index PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_deprecated PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday PASSED [ 10%] 551s tests/test_weekday_calendar.py::TestWeekdayCalendar::test_open_every_weekday_minute PASSED [ 10%] 551s tests/test_xams_calendar.py::TestXAMSCalendar::test_base_integrity PASSED [ 10%] 552s tests/test_xams_calendar.py::TestXAMSCalendar::test_calculated_against_csv PASSED [ 10%] 553s tests/test_xams_calendar.py::TestXAMSCalendar::test_start_end PASSED [ 10%] 553s tests/test_xams_calendar.py::TestXAMSCalendar::test_invalid_input PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_min PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_bound_max PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_sanity_check_session_lengths PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_specification PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_daylight_savings PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_opens_closes_break_starts_ends PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[both] PASSED [ 10%] 554s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[both] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[both] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[both] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-next] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-next] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 10%] 555s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[left] PASSED [ 10%] 556s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[left] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[left] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-next] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[right] PASSED [ 10%] 557s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[right] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[right] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[right-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[left-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[both-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-previous] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_session[neither-next] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 10%] 558s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_properties[neither] PASSED [ 10%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes[neither] PASSED [ 10%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_calendar_bounds_properties[neither] PASSED [ 10%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minute_methods[neither] PASSED [ 10%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_minutes[neither] PASSED [ 11%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_trading_minute[neither] PASSED [ 11%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_break_minute[neither] PASSED [ 11%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_on_minute[neither] PASSED [ 11%] 559s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_open_at_time[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_minute[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[neither] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[right] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[left] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_past_session[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_to_future_session[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minute_offset_by_sessions[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_in_range[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_window[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_distance[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_minutes_to_sessions[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_minutes_count[both] PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_has_break PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_regular_holidays_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_adhoc_holidays_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_holidays_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_sample_time PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes_weekdays_time PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_non_early_closes_sample_time PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_late_opens PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_early_closes PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_open_close_break_start_end PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_has_break PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_next_prev_session PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_session_offset PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_is_session PASSED [ 11%] 560s tests/test_xams_calendar.py::TestXAMSCalendar::test_date_to_session PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_prev_next_open_close PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_in_range PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_has_break PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_window PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_sessions_distance PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_trading_index PASSED [ 11%] 561s tests/test_xams_calendar.py::TestXAMSCalendar::test_deprecated PASSED [ 11%] 561s tests/test_xasx_calendar.py::TestXASXCalendar::test_base_integrity PASSED [ 11%] 564s tests/test_xasx_calendar.py::TestXASXCalendar::test_calculated_against_csv PASSED [ 11%] 564s tests/test_xasx_calendar.py::TestXASXCalendar::test_start_end PASSED [ 11%] 564s tests/test_xasx_calendar.py::TestXASXCalendar::test_invalid_input PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_min PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_bound_max PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_sanity_check_session_lengths PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_specification PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_daylight_savings PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_opens_closes_break_starts_ends PASSED [ 11%] 565s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[both] PASSED [ 11%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[both] PASSED [ 12%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-next] PASSED [ 12%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 12%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-next] PASSED [ 12%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 12%] 566s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[left] PASSED [ 12%] 567s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[left] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[left] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-next] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[right] PASSED [ 12%] 568s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[right] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[right] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[right-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[left-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[both-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-previous] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_session[neither-next] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 12%] 569s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_properties[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_calendar_bounds_properties[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minute_methods[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_minutes[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_trading_minute[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_break_minute[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_on_minute[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_open_at_time[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_minute[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[neither] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[right] PASSED [ 12%] 570s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[right] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[right] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[right] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[left] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_past_session[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_to_future_session[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minute_offset_by_sessions[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_in_range[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_window[both] PASSED [ 12%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_distance[both] PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_minutes_to_sessions[both] PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes[both] PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_minutes_count[both] PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_has_break PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_regular_holidays_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_adhoc_holidays_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_holidays_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_sample_time PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes_weekdays_time PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_non_early_closes_sample_time PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_late_opens PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_early_closes PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_open_close_break_start_end PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_has_break PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_next_prev_session PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_session_offset PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_is_session PASSED [ 13%] 571s tests/test_xasx_calendar.py::TestXASXCalendar::test_date_to_session PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_prev_next_open_close PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_in_range PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_has_break PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_window PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_sessions_distance PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_trading_index PASSED [ 13%] 572s tests/test_xasx_calendar.py::TestXASXCalendar::test_deprecated PASSED [ 13%] 572s tests/test_xbda_calendar.py::TestXBDACalendar::test_base_integrity PASSED [ 13%] 573s tests/test_xbda_calendar.py::TestXBDACalendar::test_calculated_against_csv PASSED [ 13%] 574s tests/test_xbda_calendar.py::TestXBDACalendar::test_start_end PASSED [ 13%] 574s tests/test_xbda_calendar.py::TestXBDACalendar::test_invalid_input PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_min PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_bound_max PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_sanity_check_session_lengths PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_specification PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_daylight_savings PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_opens_closes_break_starts_ends PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[both] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-next] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-next] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-next] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-next] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[left] PASSED [ 13%] 575s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[left] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[left] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[left] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-next] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-next] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[right] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[right-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[right-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[left-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[left-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[both-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[both-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 13%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-previous] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_session[neither-next] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_properties[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_calendar_bounds_properties[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minute_methods[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_minutes[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_trading_minute[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_break_minute[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_on_minute[neither] PASSED [ 14%] 576s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_open_at_time[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_minute[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[neither] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[right] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[left] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_past_session[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_to_future_session[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minute_offset_by_sessions[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_in_range[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_window[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_distance[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_minutes_to_sessions[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_minutes_count[both] PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_has_break PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_regular_holidays_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_adhoc_holidays_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_holidays_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_sample_time PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes_weekdays_time PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_non_early_closes_sample_time PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_late_opens PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_early_closes PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_open_close_break_start_end PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_has_break PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_next_prev_session PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_session_offset PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_is_session PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_date_to_session PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_prev_next_open_close PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_in_range PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_has_break PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_window PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_sessions_distance PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_trading_index PASSED [ 14%] 577s tests/test_xbda_calendar.py::TestXBDACalendar::test_deprecated PASSED [ 14%] 577s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_base_integrity PASSED [ 14%] 579s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calculated_against_csv PASSED [ 14%] 579s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_start_end PASSED [ 14%] 579s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_invalid_input PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_min PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_bound_max PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sanity_check_session_lengths PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_specification PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_daylight_savings PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_opens_closes_break_starts_ends PASSED [ 14%] 580s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[both] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-next] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-next] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-next] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-next] PASSED [ 15%] 581s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[left] PASSED [ 15%] 582s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[left] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[left] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-next] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-next] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[right] PASSED [ 15%] 583s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[right] PASSED [ 15%] 584s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[right] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[right] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[right-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[right-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[left-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[left-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[both-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[both-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-previous] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_session[neither-next] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_properties[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_calendar_bounds_properties[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minute_methods[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_minutes[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_trading_minute[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_break_minute[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_on_minute[neither] PASSED [ 15%] 585s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_open_at_time[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_minute[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[neither] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[right] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[left] PASSED [ 15%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[left] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[left] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_past_session[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_to_future_session[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minute_offset_by_sessions[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_in_range[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_window[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_distance[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_minutes_to_sessions[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_minutes_count[both] PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_has_break PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_regular_holidays_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_adhoc_holidays_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_holidays_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_sample_time PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes_weekdays_time PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample PASSED [ 16%] 586s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_non_early_closes_sample_time PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_late_opens PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_early_closes PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_open_close_break_start_end PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_has_break PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_next_prev_session PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_session_offset PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_is_session PASSED [ 16%] 587s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_date_to_session PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_prev_next_open_close PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_in_range PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_has_break PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_window PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_sessions_distance PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_trading_index PASSED [ 16%] 589s tests/test_xbkk_calendar.py::TestXBKKCalendar::test_deprecated PASSED [ 16%] 589s tests/test_xbog_calendar.py::TestXBOGCalendar::test_base_integrity PASSED [ 16%] 591s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calculated_against_csv PASSED [ 16%] 591s tests/test_xbog_calendar.py::TestXBOGCalendar::test_start_end PASSED [ 16%] 592s tests/test_xbog_calendar.py::TestXBOGCalendar::test_invalid_input PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_min PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_bound_max PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sanity_check_session_lengths PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_specification PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_daylight_savings PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions PASSED [ 16%] 593s tests/test_xbog_calendar.py::TestXBOGCalendar::test_opens_closes_break_starts_ends PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[both] PASSED [ 16%] 594s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[both] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[both] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-next] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-next] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[left] PASSED [ 16%] 595s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[left] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[left] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[left] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-previous] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-previous] PASSED [ 16%] 596s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-previous] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-next] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[right] PASSED [ 16%] 597s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[right] PASSED [ 16%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[right] PASSED [ 16%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[right-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[left-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[both-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-previous] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_session[neither-next] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 17%] 598s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_properties[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_calendar_bounds_properties[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minute_methods[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_minutes[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_trading_minute[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_break_minute[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_on_minute[neither] PASSED [ 17%] 599s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_open_at_time[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_minute[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[neither] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[right] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[left] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_past_session[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_to_future_session[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minute_offset_by_sessions[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_in_range[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_window[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_distance[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_minutes_to_sessions[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_minutes_count[both] PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_has_break PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_regular_holidays_sample PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_adhoc_holidays_sample PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_holidays_sample PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens_sample PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_sample_time PASSED [ 17%] 600s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes_weekdays_time PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_non_early_closes_sample_time PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_late_opens PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_early_closes PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_open_close_break_start_end PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_has_break PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_next_prev_session PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_session_offset PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_is_session PASSED [ 17%] 601s tests/test_xbog_calendar.py::TestXBOGCalendar::test_date_to_session PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_prev_next_open_close PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_in_range PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_has_break PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_window PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_sessions_distance PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_trading_index PASSED [ 17%] 603s tests/test_xbog_calendar.py::TestXBOGCalendar::test_deprecated PASSED [ 17%] 603s tests/test_xbom_calendar.py::TestXBOMCalendar::test_base_integrity PASSED [ 17%] 609s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv PASSED [ 17%] 609s tests/test_xbom_calendar.py::TestXBOMCalendar::test_start_end PASSED [ 17%] 609s tests/test_xbom_calendar.py::TestXBOMCalendar::test_invalid_input PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_min PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_bound_max PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sanity_check_session_lengths PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_specification PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_daylight_savings PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_opens_closes_break_starts_ends PASSED [ 18%] 610s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[both] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-next] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-next] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 18%] 611s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[left] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-next] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 18%] 612s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[right] PASSED [ 18%] 613s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[right] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[right] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[right-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[left-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[both-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-previous] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_session[neither-next] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_properties[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_calendar_bounds_properties[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minute_methods[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_minutes[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_trading_minute[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_break_minute[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_on_minute[neither] PASSED [ 18%] 614s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_open_at_time[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_minute[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[neither] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[right] PASSED [ 18%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[right] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[left] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_past_session[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_to_future_session[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minute_offset_by_sessions[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_in_range[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_window[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_distance[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_minutes_to_sessions[both] PASSED [ 19%] 615s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes[both] PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_minutes_count[both] PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_has_break PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_regular_holidays_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_adhoc_holidays_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_holidays_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_sample_time PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes_weekdays_time PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_non_early_closes_sample_time PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_late_opens PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_early_closes PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_open_close_break_start_end PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_has_break PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_next_prev_session PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_session_offset PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_is_session PASSED [ 19%] 616s tests/test_xbom_calendar.py::TestXBOMCalendar::test_date_to_session PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_prev_next_open_close PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_in_range PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_has_break PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_window PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_sessions_distance PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_trading_index PASSED [ 19%] 617s tests/test_xbom_calendar.py::TestXBOMCalendar::test_deprecated PASSED [ 19%] 617s tests/test_xbru_calendar.py::TestXBRUCalendar::test_base_integrity PASSED [ 19%] 619s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calculated_against_csv PASSED [ 19%] 619s tests/test_xbru_calendar.py::TestXBRUCalendar::test_start_end PASSED [ 19%] 619s tests/test_xbru_calendar.py::TestXBRUCalendar::test_invalid_input PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_min PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_bound_max PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sanity_check_session_lengths PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_specification PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_daylight_savings PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_opens_closes_break_starts_ends PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[both] PASSED [ 19%] 620s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[both] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[both] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[both] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-next] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-next] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 19%] 621s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[left] PASSED [ 19%] 622s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[left] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[left] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-next] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 19%] 623s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[right] PASSED [ 19%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[right] PASSED [ 19%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[right] PASSED [ 20%] 624s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[right] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[right] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[right-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[left-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[both-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-previous] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_session[neither-next] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_properties[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_calendar_bounds_properties[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minute_methods[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_minutes[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_trading_minute[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_break_minute[neither] PASSED [ 20%] 625s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_on_minute[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_open_at_time[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_minute[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[neither] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[right] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[left] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_past_session[both] PASSED [ 20%] 626s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_to_future_session[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minute_offset_by_sessions[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_in_range[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_window[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_distance[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_minutes_to_sessions[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_minutes_count[both] PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_has_break PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_regular_holidays_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_adhoc_holidays_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_holidays_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_sample_time PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes_weekdays_time PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_non_early_closes_sample_time PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_late_opens PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_early_closes PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_open_close_break_start_end PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_has_break PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_next_prev_session PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_session_offset PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_is_session PASSED [ 20%] 627s tests/test_xbru_calendar.py::TestXBRUCalendar::test_date_to_session PASSED [ 20%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_prev_next_open_close PASSED [ 20%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_in_range PASSED [ 20%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_has_break PASSED [ 21%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_window PASSED [ 21%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_sessions_distance PASSED [ 21%] 628s tests/test_xbru_calendar.py::TestXBRUCalendar::test_trading_index PASSED [ 21%] 629s tests/test_xbru_calendar.py::TestXBRUCalendar::test_deprecated PASSED [ 21%] 629s tests/test_xbse_calendar.py::TestXBSECalendar::test_base_integrity PASSED [ 21%] 630s tests/test_xbse_calendar.py::TestXBSECalendar::test_calculated_against_csv PASSED [ 21%] 631s tests/test_xbse_calendar.py::TestXBSECalendar::test_start_end PASSED [ 21%] 631s tests/test_xbse_calendar.py::TestXBSECalendar::test_invalid_input PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_min PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_bound_max PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_sanity_check_session_lengths PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_specification PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_daylight_savings PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_opens_closes_break_starts_ends PASSED [ 21%] 632s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[both] PASSED [ 21%] 633s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[both] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[both] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-next] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-next] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 21%] 634s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[left] PASSED [ 21%] 635s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[left] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[left] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-next] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[right] PASSED [ 21%] 636s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[right] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[right] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[right] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[right-none] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[left-none] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[both-none] PASSED [ 21%] 637s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-none] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-previous] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_session[neither-next] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_properties[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_calendar_bounds_properties[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minute_methods[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_minutes[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_trading_minute[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_break_minute[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_on_minute[neither] PASSED [ 21%] 638s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_open_at_time[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_minute[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[neither] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[right] PASSED [ 21%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[right] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[left] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_past_session[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_to_future_session[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minute_offset_by_sessions[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_in_range[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_window[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_distance[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_minutes_to_sessions[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_minutes_count[both] PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_has_break PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_regular_holidays_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_adhoc_holidays_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_holidays_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_sample_time PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes_weekdays_time PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_non_early_closes_sample_time PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_late_opens PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_early_closes PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_open_close_break_start_end PASSED [ 22%] 639s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_has_break PASSED [ 22%] 640s tests/test_xbse_calendar.py::TestXBSECalendar::test_next_prev_session PASSED [ 22%] 640s tests/test_xbse_calendar.py::TestXBSECalendar::test_session_offset PASSED [ 22%] 640s tests/test_xbse_calendar.py::TestXBSECalendar::test_is_session PASSED [ 22%] 640s tests/test_xbse_calendar.py::TestXBSECalendar::test_date_to_session PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_prev_next_open_close PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_in_range PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_has_break PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_window PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_sessions_distance PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_trading_index PASSED [ 22%] 642s tests/test_xbse_calendar.py::TestXBSECalendar::test_deprecated PASSED [ 22%] 642s tests/test_xbud_calendar.py::TestXBUDCalendar::test_base_integrity PASSED [ 22%] 644s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calculated_against_csv PASSED [ 22%] 645s tests/test_xbud_calendar.py::TestXBUDCalendar::test_start_end PASSED [ 22%] 645s tests/test_xbud_calendar.py::TestXBUDCalendar::test_invalid_input PASSED [ 22%] 646s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_min PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_bound_max PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sanity_check_session_lengths PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_specification PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_daylight_savings PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_opens_closes_break_starts_ends PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[both] PASSED [ 22%] 647s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[both] PASSED [ 22%] 648s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[both] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[both] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-next] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-next] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-next] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-next] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[left] PASSED [ 22%] 649s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[left] PASSED [ 22%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[left] PASSED [ 22%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-previous] PASSED [ 22%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-previous] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-previous] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-next] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-next] PASSED [ 23%] 650s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[right] PASSED [ 23%] 651s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[right] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[right] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[right-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[right-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[left-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[left-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[both-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[both-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-previous] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_session[neither-next] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_properties[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_calendar_bounds_properties[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minute_methods[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_minutes[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_trading_minute[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_break_minute[neither] PASSED [ 23%] 652s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_on_minute[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_open_at_time[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_minute[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[neither] PASSED [ 23%] 653s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[neither] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[neither] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[neither] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[neither] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[neither] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[right] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[left] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_past_session[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_to_future_session[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minute_offset_by_sessions[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_in_range[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_window[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_distance[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_minutes_to_sessions[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_minutes_count[both] PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_has_break PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_regular_holidays_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_adhoc_holidays_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_holidays_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_sample_time PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes_weekdays_time PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_non_early_closes_sample_time PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_late_opens PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_early_closes PASSED [ 23%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_open_close_break_start_end PASSED [ 24%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_has_break PASSED [ 24%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_next_prev_session PASSED [ 24%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_session_offset PASSED [ 24%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_is_session PASSED [ 24%] 654s tests/test_xbud_calendar.py::TestXBUDCalendar::test_date_to_session PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_prev_next_open_close PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_in_range PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_has_break PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_window PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_sessions_distance PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_trading_index PASSED [ 24%] 656s tests/test_xbud_calendar.py::TestXBUDCalendar::test_deprecated PASSED [ 24%] 656s tests/test_xbue_calendar.py::TestXBUECalendar::test_base_integrity PASSED [ 24%] 658s tests/test_xbue_calendar.py::TestXBUECalendar::test_calculated_against_csv PASSED [ 24%] 658s tests/test_xbue_calendar.py::TestXBUECalendar::test_start_end PASSED [ 24%] 659s tests/test_xbue_calendar.py::TestXBUECalendar::test_invalid_input PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_min PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_bound_max PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_sanity_check_session_lengths PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_specification PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_daylight_savings PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_opens_closes_break_starts_ends PASSED [ 24%] 660s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[both] PASSED [ 24%] 661s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[both] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[both] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-next] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-next] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-next] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-next] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[left] PASSED [ 24%] 662s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[left] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[left] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-next] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-next] PASSED [ 24%] 663s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[right] PASSED [ 24%] 664s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[right] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[right] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[right-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[right-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[left-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[left-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[both-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[both-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-previous] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_session[neither-next] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_properties[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_calendar_bounds_properties[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minute_methods[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_minutes[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_trading_minute[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_break_minute[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_on_minute[neither] PASSED [ 24%] 665s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_open_at_time[neither] PASSED [ 24%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_minute[neither] PASSED [ 24%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[neither] PASSED [ 24%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[neither] PASSED [ 24%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[neither] PASSED [ 24%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[neither] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[right] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[left] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_past_session[both] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_to_future_session[both] PASSED [ 25%] 666s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_minute_offset_by_sessions[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_in_range[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_window[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_distance[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_minutes_to_sessions[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_minutes_count[both] PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_has_break PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_regular_holidays_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_adhoc_holidays_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_holidays_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_sample_time PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes_weekdays_time PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_non_early_closes_sample_time PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_late_opens PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_early_closes PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_open_close_break_start_end PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_has_break PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_next_prev_session PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_session_offset PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_is_session PASSED [ 25%] 667s tests/test_xbue_calendar.py::TestXBUECalendar::test_date_to_session PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_prev_next_open_close PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_in_range PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_has_break PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_window PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_sessions_distance PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_trading_index PASSED [ 25%] 668s tests/test_xbue_calendar.py::TestXBUECalendar::test_deprecated PASSED [ 25%] 668s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_base_integrity PASSED [ 25%] 670s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calculated_against_csv PASSED [ 25%] 670s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_start_end PASSED [ 25%] 670s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_invalid_input PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_min PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_bound_max PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sanity_check_session_lengths PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_specification PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_daylight_savings PASSED [ 25%] 671s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_opens_closes_break_starts_ends PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[both] PASSED [ 25%] 672s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[both] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[both] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-next] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-next] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-next] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-next] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[left] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[left] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[left] PASSED [ 25%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[left] PASSED [ 26%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[left] PASSED [ 26%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[left] PASSED [ 26%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[left] PASSED [ 26%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[left] PASSED [ 26%] 673s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[left] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[left] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-next] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-next] PASSED [ 26%] 674s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[right] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[right-none] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[right-none] PASSED [ 26%] 675s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[left-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[left-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[both-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[both-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-previous] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_session[neither-next] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_properties[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_calendar_bounds_properties[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minute_methods[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_minutes[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_trading_minute[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_break_minute[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_on_minute[neither] PASSED [ 26%] 676s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_open_at_time[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_minute[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[neither] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[right] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[left] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_past_session[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_to_future_session[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minute_offset_by_sessions[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_in_range[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_window[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_distance[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_minutes_to_sessions[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_minutes_count[both] PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_has_break PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_regular_holidays_sample PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_adhoc_holidays_sample PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_holidays_sample PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens_sample PASSED [ 26%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_sample_time PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes_weekdays_time PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_non_early_closes_sample_time PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_late_opens PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_early_closes PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_open_close_break_start_end PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_has_break PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_next_prev_session PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_session_offset PASSED [ 27%] 677s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_is_session PASSED [ 27%] 678s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_date_to_session PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_prev_next_open_close PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_in_range PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_has_break PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_window PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_sessions_distance PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_trading_index PASSED [ 27%] 679s tests/test_xcbf_calendar.py::TestXCBFCalendar::test_deprecated PASSED [ 27%] 679s tests/test_xcse_calendar.py::TestXCSECalendar::test_base_integrity PASSED [ 27%] 680s tests/test_xcse_calendar.py::TestXCSECalendar::test_calculated_against_csv PASSED [ 27%] 680s tests/test_xcse_calendar.py::TestXCSECalendar::test_start_end PASSED [ 27%] 681s tests/test_xcse_calendar.py::TestXCSECalendar::test_invalid_input PASSED [ 27%] 681s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_min PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_bound_max PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_sanity_check_session_lengths PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_specification PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_daylight_savings PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_opens_closes_break_starts_ends PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[both] PASSED [ 27%] 682s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[both] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[both] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-next] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-next] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 27%] 683s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[left] PASSED [ 27%] 684s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[left] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[left] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-next] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 27%] 685s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[right] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[right-none] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[left-none] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[both-none] PASSED [ 27%] 686s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-none] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-previous] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_session[neither-next] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_properties[neither] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes[neither] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_calendar_bounds_properties[neither] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minute_methods[neither] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_minutes[neither] PASSED [ 27%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_trading_minute[neither] PASSED [ 28%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_break_minute[neither] PASSED [ 28%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_on_minute[neither] PASSED [ 28%] 687s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_open_at_time[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_minute[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[neither] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[right] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[left] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_past_session[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_to_future_session[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minute_offset_by_sessions[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_in_range[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_window[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_distance[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_minutes_to_sessions[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_minutes_count[both] PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_has_break PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_regular_holidays_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_adhoc_holidays_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_holidays_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_sample_time PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes_weekdays_time PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_non_early_closes_sample_time PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_late_opens PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_early_closes PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_open_close_break_start_end PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_has_break PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_next_prev_session PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_session_offset PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_is_session PASSED [ 28%] 688s tests/test_xcse_calendar.py::TestXCSECalendar::test_date_to_session PASSED [ 28%] 689s tests/test_xcse_calendar.py::TestXCSECalendar::test_prev_next_open_close PASSED [ 28%] 689s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_in_range PASSED [ 28%] 689s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_has_break PASSED [ 28%] 689s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_window PASSED [ 28%] 689s tests/test_xcse_calendar.py::TestXCSECalendar::test_sessions_distance PASSED [ 28%] 690s tests/test_xcse_calendar.py::TestXCSECalendar::test_trading_index PASSED [ 28%] 690s tests/test_xcse_calendar.py::TestXCSECalendar::test_deprecated PASSED [ 28%] 690s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_base_integrity PASSED [ 28%] 691s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calculated_against_csv PASSED [ 28%] 691s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_start_end PASSED [ 28%] 691s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_invalid_input PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_min PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_bound_max PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sanity_check_session_lengths PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_specification PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_daylight_savings PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[both] PASSED [ 28%] 692s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[both] PASSED [ 28%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[both] PASSED [ 28%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[both] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-next] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-next] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[left] PASSED [ 29%] 693s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[left] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[left] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-next] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[right] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[right-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[left-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[both-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_properties[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minute_methods[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_minutes[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_trading_minute[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_break_minute[neither] PASSED [ 29%] 694s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_open_at_time[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_minute[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_past_session[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_to_future_session[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_in_range[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_window[both] PASSED [ 29%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_distance[both] PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes[both] PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_has_break PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_regular_holidays_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_adhoc_holidays_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_holidays_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_sample_time PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes_weekdays_time PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_non_early_closes_sample_time PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_late_opens PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_early_closes PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_open_close_break_start_end PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_has_break PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_next_prev_session PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_session_offset PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_is_session PASSED [ 30%] 695s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_date_to_session PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_prev_next_open_close PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_in_range PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_has_break PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_window PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_sessions_distance PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_trading_index PASSED [ 30%] 696s tests/test_xcys_calendar.py::TestXCYSExchangeCalendar::test_deprecated PASSED [ 30%] 696s tests/test_xdub_calendar.py::TestXDUBCalendar::test_base_integrity PASSED [ 30%] 698s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calculated_against_csv PASSED [ 30%] 698s tests/test_xdub_calendar.py::TestXDUBCalendar::test_start_end PASSED [ 30%] 698s tests/test_xdub_calendar.py::TestXDUBCalendar::test_invalid_input PASSED [ 30%] 699s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_min PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_bound_max PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sanity_check_session_lengths PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_specification PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_daylight_savings PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_opens_closes_break_starts_ends PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[both] PASSED [ 30%] 700s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[both] PASSED [ 30%] 701s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[both] PASSED [ 30%] 701s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[both] PASSED [ 30%] 701s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-next] PASSED [ 30%] 701s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-next] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-next] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-next] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[left] PASSED [ 30%] 702s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[left] PASSED [ 30%] 703s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[left] PASSED [ 30%] 703s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-previous] PASSED [ 30%] 703s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 30%] 703s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-previous] PASSED [ 30%] 703s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-previous] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-next] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-next] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[right] PASSED [ 30%] 704s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[right] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[right] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[right-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[right-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[left-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[left-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[both-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[both-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-previous] PASSED [ 30%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 31%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_session[neither-next] PASSED [ 31%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 31%] 705s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_properties[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_calendar_bounds_properties[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minute_methods[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_minutes[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_trading_minute[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_break_minute[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_on_minute[neither] PASSED [ 31%] 706s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_open_at_time[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_minute[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[neither] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[right] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[left] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_past_session[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_to_future_session[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minute_offset_by_sessions[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_in_range[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_window[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_distance[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_minutes_to_sessions[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_minutes_count[both] PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_has_break PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_regular_holidays_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_adhoc_holidays_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_holidays_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_sample_time PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes_weekdays_time PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_non_early_closes_sample_time PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_late_opens PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_early_closes PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_open_close_break_start_end PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_has_break PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_next_prev_session PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_session_offset PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_is_session PASSED [ 31%] 707s tests/test_xdub_calendar.py::TestXDUBCalendar::test_date_to_session PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_prev_next_open_close PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_in_range PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_has_break PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_window PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_sessions_distance PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_trading_index PASSED [ 31%] 709s tests/test_xdub_calendar.py::TestXDUBCalendar::test_deprecated PASSED [ 31%] 709s tests/test_xdus_calendar.py::TestXDUSCalendar::test_base_integrity PASSED [ 31%] 711s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calculated_against_csv PASSED [ 31%] 711s tests/test_xdus_calendar.py::TestXDUSCalendar::test_start_end PASSED [ 31%] 711s tests/test_xdus_calendar.py::TestXDUSCalendar::test_invalid_input PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_min PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_bound_max PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sanity_check_session_lengths PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_specification PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_daylight_savings PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_opens_closes_break_starts_ends PASSED [ 31%] 712s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[both] PASSED [ 31%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[both] PASSED [ 32%] 713s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[both] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[both] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[both] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-next] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-next] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 32%] 714s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[left] PASSED [ 32%] 715s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[left] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[left] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[left] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-previous] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-previous] PASSED [ 32%] 716s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-previous] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-next] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[right] PASSED [ 32%] 717s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[right] PASSED [ 32%] 718s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[right] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[right] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[right-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[left-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[both-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-previous] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_session[neither-next] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 32%] 719s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_properties[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_calendar_bounds_properties[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minute_methods[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_minutes[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_trading_minute[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_break_minute[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_on_minute[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_open_at_time[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_minute[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[neither] PASSED [ 32%] 720s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[neither] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[right] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[left] PASSED [ 32%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[left] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[left] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_past_session[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_to_future_session[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minute_offset_by_sessions[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_in_range[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_window[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_distance[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_minutes_to_sessions[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_minutes_count[both] PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_has_break PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_regular_holidays_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_adhoc_holidays_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_holidays_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_sample_time PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes_weekdays_time PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_non_early_closes_sample_time PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_late_opens PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_early_closes PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_open_close_break_start_end PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_has_break PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_next_prev_session PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_session_offset PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_is_session PASSED [ 33%] 721s tests/test_xdus_calendar.py::TestXDUSCalendar::test_date_to_session PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_prev_next_open_close PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_in_range PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_has_break PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_window PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_sessions_distance PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_trading_index PASSED [ 33%] 723s tests/test_xdus_calendar.py::TestXDUSCalendar::test_deprecated PASSED [ 33%] 723s tests/test_xeee_calendar.py::TestXEEECalendar::test_base_integrity PASSED [ 33%] 725s tests/test_xeee_calendar.py::TestXEEECalendar::test_calculated_against_csv PASSED [ 33%] 725s tests/test_xeee_calendar.py::TestXEEECalendar::test_start_end PASSED [ 33%] 725s tests/test_xeee_calendar.py::TestXEEECalendar::test_invalid_input PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_min PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_bound_max PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_sanity_check_session_lengths PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_specification PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_daylight_savings PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_opens_closes_break_starts_ends PASSED [ 33%] 726s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[both] PASSED [ 33%] 727s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[both] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[both] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-next] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-next] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-next] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-next] PASSED [ 33%] 728s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[left] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-previous] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-previous] PASSED [ 33%] 729s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-previous] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-next] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-next] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[right] PASSED [ 33%] 730s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[right] PASSED [ 33%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[right] PASSED [ 33%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[right-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[right-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[left-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[left-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[both-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[both-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-previous] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_session[neither-next] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 34%] 731s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_properties[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_calendar_bounds_properties[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minute_methods[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_minutes[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_trading_minute[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_break_minute[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_on_minute[neither] PASSED [ 34%] 732s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_open_at_time[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_minute[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[neither] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[right] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[left] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_past_session[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_to_future_session[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minute_offset_by_sessions[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_in_range[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_window[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_distance[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_minutes_to_sessions[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_minutes_count[both] PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_has_break PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_regular_holidays_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_adhoc_holidays_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_holidays_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_sample_time PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes_weekdays_time PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_non_early_closes_sample_time PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_late_opens PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_early_closes PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_open_close_break_start_end PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_has_break PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_next_prev_session PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_session_offset PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_is_session PASSED [ 34%] 733s tests/test_xeee_calendar.py::TestXEEECalendar::test_date_to_session PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_prev_next_open_close PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_in_range PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_has_break PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_window PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_sessions_distance PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_trading_index PASSED [ 34%] 734s tests/test_xeee_calendar.py::TestXEEECalendar::test_deprecated PASSED [ 34%] 734s tests/test_xetr_calendar.py::TestXETRCalendar::test_base_integrity PASSED [ 34%] 736s tests/test_xetr_calendar.py::TestXETRCalendar::test_calculated_against_csv PASSED [ 34%] 736s tests/test_xetr_calendar.py::TestXETRCalendar::test_start_end PASSED [ 34%] 736s tests/test_xetr_calendar.py::TestXETRCalendar::test_invalid_input PASSED [ 34%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_min PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_bound_max PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_sanity_check_session_lengths PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_specification PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_daylight_savings PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions PASSED [ 35%] 737s tests/test_xetr_calendar.py::TestXETRCalendar::test_opens_closes_break_starts_ends PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[both] PASSED [ 35%] 738s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[both] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[both] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-next] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-next] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-next] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-next] PASSED [ 35%] 739s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[left] PASSED [ 35%] 740s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[left] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[left] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-next] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-next] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[right] PASSED [ 35%] 741s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[right] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[right] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[right] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[right-none] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[right-none] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[left-none] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[left-none] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[both-none] PASSED [ 35%] 742s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[both-none] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-none] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-previous] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_session[neither-next] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_properties[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_calendar_bounds_properties[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minute_methods[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_minutes[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_trading_minute[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_break_minute[neither] PASSED [ 35%] 743s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_on_minute[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_open_at_time[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_minute[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[neither] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[right] PASSED [ 35%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[left] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_past_session[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_to_future_session[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minute_offset_by_sessions[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_in_range[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_window[both] PASSED [ 36%] 744s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_distance[both] PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_minutes_to_sessions[both] PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes[both] PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_minutes_count[both] PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_has_break PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_regular_holidays_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_adhoc_holidays_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_holidays_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_sample_time PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes_weekdays_time PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_non_early_closes_sample_time PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_late_opens PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_early_closes PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_open_close_break_start_end PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_has_break PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_next_prev_session PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_session_offset PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_is_session PASSED [ 36%] 745s tests/test_xetr_calendar.py::TestXETRCalendar::test_date_to_session PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_prev_next_open_close PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_in_range PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_has_break PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_window PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_sessions_distance PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_trading_index PASSED [ 36%] 746s tests/test_xetr_calendar.py::TestXETRCalendar::test_deprecated PASSED [ 36%] 746s tests/test_xfra_calendar.py::TestXFRACalendar::test_base_integrity PASSED [ 36%] 748s tests/test_xfra_calendar.py::TestXFRACalendar::test_calculated_against_csv PASSED [ 36%] 748s tests/test_xfra_calendar.py::TestXFRACalendar::test_start_end PASSED [ 36%] 748s tests/test_xfra_calendar.py::TestXFRACalendar::test_invalid_input PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_min PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_bound_max PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_sanity_check_session_lengths PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_specification PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_daylight_savings PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions PASSED [ 36%] 749s tests/test_xfra_calendar.py::TestXFRACalendar::test_opens_closes_break_starts_ends PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[both] PASSED [ 36%] 750s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[both] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[both] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-next] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-next] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 36%] 751s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[left] PASSED [ 36%] 752s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[left] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[left] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-next] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[right] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[right] PASSED [ 36%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[right] PASSED [ 37%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[right] PASSED [ 37%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[right] PASSED [ 37%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[right] PASSED [ 37%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[right] PASSED [ 37%] 753s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[right] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[right] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[right] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[right-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[left-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[both-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-previous] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_session[neither-next] PASSED [ 37%] 754s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_properties[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_calendar_bounds_properties[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minute_methods[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_minutes[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_trading_minute[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_break_minute[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_on_minute[neither] PASSED [ 37%] 755s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_open_at_time[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_minute[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[neither] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[right] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[left] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_past_session[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_to_future_session[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minute_offset_by_sessions[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_in_range[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_window[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_distance[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_minutes_to_sessions[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_minutes_count[both] PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_has_break PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_regular_holidays_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_adhoc_holidays_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_holidays_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_sample_time PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes_weekdays_time PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_non_early_closes_sample_time PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_late_opens PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_early_closes PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_open_close_break_start_end PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_has_break PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_next_prev_session PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_session_offset PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_is_session PASSED [ 37%] 756s tests/test_xfra_calendar.py::TestXFRACalendar::test_date_to_session PASSED [ 37%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_prev_next_open_close PASSED [ 37%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_in_range PASSED [ 37%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_has_break PASSED [ 38%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_window PASSED [ 38%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_sessions_distance PASSED [ 38%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_trading_index PASSED [ 38%] 758s tests/test_xfra_calendar.py::TestXFRACalendar::test_deprecated PASSED [ 38%] 758s tests/test_xham_calendar.py::TestXHAMCalendar::test_base_integrity PASSED [ 38%] 759s tests/test_xham_calendar.py::TestXHAMCalendar::test_calculated_against_csv PASSED [ 38%] 759s tests/test_xham_calendar.py::TestXHAMCalendar::test_start_end PASSED [ 38%] 759s tests/test_xham_calendar.py::TestXHAMCalendar::test_invalid_input PASSED [ 38%] 760s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_min PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_bound_max PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_sanity_check_session_lengths PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_specification PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_daylight_savings PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_opens_closes_break_starts_ends PASSED [ 38%] 761s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[both] PASSED [ 38%] 762s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[both] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[both] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-next] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-next] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 38%] 763s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[left] PASSED [ 38%] 764s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[left] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[left] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-next] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 38%] 765s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[right] PASSED [ 38%] 766s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[right] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[right] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[right-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[left-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[both-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-previous] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_session[neither-next] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 38%] 767s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_properties[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_calendar_bounds_properties[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minute_methods[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_minutes[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_trading_minute[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_break_minute[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_on_minute[neither] PASSED [ 38%] 768s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_open_at_time[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_minute[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[neither] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[right] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[right] PASSED [ 38%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[right] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[left] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_past_session[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_to_future_session[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minute_offset_by_sessions[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_in_range[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_window[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_distance[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_minutes_to_sessions[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_minutes_count[both] PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_has_break PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_regular_holidays_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_adhoc_holidays_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_holidays_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_sample_time PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes_weekdays_time PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_non_early_closes_sample_time PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_late_opens PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_early_closes PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_open_close_break_start_end PASSED [ 39%] 769s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_has_break PASSED [ 39%] 770s tests/test_xham_calendar.py::TestXHAMCalendar::test_next_prev_session PASSED [ 39%] 770s tests/test_xham_calendar.py::TestXHAMCalendar::test_session_offset PASSED [ 39%] 770s tests/test_xham_calendar.py::TestXHAMCalendar::test_is_session PASSED [ 39%] 770s tests/test_xham_calendar.py::TestXHAMCalendar::test_date_to_session PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_prev_next_open_close PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_in_range PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_has_break PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_window PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_sessions_distance PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_trading_index PASSED [ 39%] 771s tests/test_xham_calendar.py::TestXHAMCalendar::test_deprecated PASSED [ 39%] 771s tests/test_xhel_calendar.py::TestXHELCalendar::test_base_integrity PASSED [ 39%] 773s tests/test_xhel_calendar.py::TestXHELCalendar::test_calculated_against_csv PASSED [ 39%] 773s tests/test_xhel_calendar.py::TestXHELCalendar::test_start_end PASSED [ 39%] 774s tests/test_xhel_calendar.py::TestXHELCalendar::test_invalid_input PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_min PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_bound_max PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_sanity_check_session_lengths PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_specification PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_daylight_savings PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions PASSED [ 39%] 775s tests/test_xhel_calendar.py::TestXHELCalendar::test_opens_closes_break_starts_ends PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[both] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-next] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-next] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-next] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-next] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[left] PASSED [ 39%] 777s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[left] PASSED [ 39%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[left] PASSED [ 39%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[left] PASSED [ 39%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-previous] PASSED [ 39%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 39%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-previous] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-previous] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-next] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-next] PASSED [ 40%] 778s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[right] PASSED [ 40%] 779s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[right] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[right] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[right-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[right-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[left-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[left-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[both-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[both-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-previous] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_session[neither-next] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_properties[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_calendar_bounds_properties[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minute_methods[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_minutes[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_trading_minute[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_break_minute[neither] PASSED [ 40%] 780s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_on_minute[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_open_at_time[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_minute[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[neither] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[right] PASSED [ 40%] 781s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[right] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[left] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_past_session[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_to_future_session[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minute_offset_by_sessions[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_in_range[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_window[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_distance[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_minutes_to_sessions[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_minutes_count[both] PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_has_break PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_regular_holidays_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_adhoc_holidays_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_holidays_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_sample_time PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes_weekdays_time PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_non_early_closes_sample_time PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_late_opens PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_early_closes PASSED [ 40%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_open_close_break_start_end PASSED [ 41%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_has_break PASSED [ 41%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_next_prev_session PASSED [ 41%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_session_offset PASSED [ 41%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_is_session PASSED [ 41%] 782s tests/test_xhel_calendar.py::TestXHELCalendar::test_date_to_session PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_prev_next_open_close PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_in_range PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_has_break PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_window PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_sessions_distance PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_trading_index PASSED [ 41%] 784s tests/test_xhel_calendar.py::TestXHELCalendar::test_deprecated PASSED [ 41%] 784s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_base_integrity PASSED [ 41%] 786s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calculated_against_csv PASSED [ 41%] 787s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_start_end PASSED [ 41%] 787s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_invalid_input PASSED [ 41%] 787s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_min PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_bound_max PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sanity_check_session_lengths PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_specification PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_daylight_savings PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_opens_closes_break_starts_ends PASSED [ 41%] 788s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[both] PASSED [ 41%] 789s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[both] PASSED [ 41%] 790s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[both] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[both] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-next] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-next] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[left] PASSED [ 41%] 792s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[left] PASSED [ 41%] 793s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[left] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[left] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-next] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 41%] 795s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[right] PASSED [ 41%] 796s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[right] PASSED [ 41%] 797s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[right] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[right] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[right-none] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[left-none] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[both-none] PASSED [ 41%] 798s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-none] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-previous] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_session[neither-next] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_properties[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_calendar_bounds_properties[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minute_methods[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_session_minutes[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_trading_minute[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_break_minute[neither] PASSED [ 41%] 799s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_on_minute[neither] PASSED [ 41%] 800s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_is_open_at_time[neither] PASSED [ 41%] 802s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_minute[neither] PASSED [ 41%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[neither] PASSED [ 41%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[neither] PASSED [ 41%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[neither] PASSED [ 41%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[neither] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[right] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[left] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_past_session[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_to_future_session[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minute_offset_by_sessions[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_in_range[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_window[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_distance[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_minutes_to_sessions[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_minutes_count[both] PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_has_break PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_regular_holidays_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_adhoc_holidays_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_holidays_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_late_opens_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_sample_time PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_early_closes_weekdays_time PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample PASSED [ 42%] 803s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_non_early_closes_sample_time PASSED [ 42%] 803s 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%] 804s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_date_to_session PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_prev_next_open_close PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_in_range PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_has_break PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_window PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_sessions_distance PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_trading_index PASSED [ 42%] 805s tests/test_xhkg_calendar.py::TestXHKGCalendar::test_deprecated PASSED [ 42%] 805s tests/test_xice_calendar.py::TestXICECalendar::test_base_integrity PASSED [ 42%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_calculated_against_csv PASSED [ 42%] 806s tests/test_xice_calendar.py::TestXICECalendar::test_start_end PASSED [ 42%] 807s tests/test_xice_calendar.py::TestXICECalendar::test_invalid_input PASSED [ 42%] 807s tests/test_xice_calendar.py::TestXICECalendar::test_bound_min PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_bound_max PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_sanity_check_session_lengths PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_specification PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_daylight_savings PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_sessions PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_opens_closes_break_starts_ends PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[both] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-next] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-next] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-next] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-next] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[left] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[left] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[left] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[left] PASSED [ 42%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[left] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-previous] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-previous] PASSED [ 43%] 808s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-previous] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-next] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-next] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[right-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[right-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[left-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[left-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[both-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[both-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-previous] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_session[neither-next] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_properties[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_calendar_bounds_properties[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_session_minute_methods[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_session_minutes[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_trading_minute[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_break_minute[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_on_minute[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_is_open_at_time[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_minute[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[neither] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[right] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[left] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_past_session[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_to_future_session[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minute_offset_by_sessions[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_in_range[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_window[both] PASSED [ 43%] 809s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_distance[both] PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_minutes_to_sessions[both] PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes[both] PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_minutes_count[both] PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_has_break PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_regular_holidays_sample PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_adhoc_holidays_sample PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_non_holidays_sample PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens_sample PASSED [ 43%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_sample_time PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes_weekdays_time PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_non_early_closes_sample_time PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_late_opens PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_early_closes PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_session_open_close_break_start_end PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_session_has_break PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_next_prev_session PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_session_offset PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_is_session PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_date_to_session PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_prev_next_open_close PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_in_range PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_has_break PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_window PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_sessions_distance PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_trading_index PASSED [ 44%] 810s tests/test_xice_calendar.py::TestXICECalendar::test_deprecated PASSED [ 44%] 810s tests/test_xidx_calendar.py::TestXIDXCalendar::test_base_integrity PASSED [ 44%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calculated_against_csv PASSED [ 44%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_start_end PASSED [ 44%] 812s tests/test_xidx_calendar.py::TestXIDXCalendar::test_invalid_input PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_min PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_bound_max PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sanity_check_session_lengths PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_specification PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_daylight_savings PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_opens_closes_break_starts_ends PASSED [ 44%] 813s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[both] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-next] PASSED [ 44%] 814s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-next] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[left] PASSED [ 44%] 815s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[left] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[left] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-next] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[right] PASSED [ 44%] 816s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[right] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[right] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[right-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[left-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[both-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-previous] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_session[neither-next] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 44%] 817s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_properties[neither] PASSED [ 44%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes[neither] PASSED [ 44%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_calendar_bounds_properties[neither] PASSED [ 44%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minute_methods[neither] PASSED [ 44%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_minutes[neither] PASSED [ 44%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_trading_minute[neither] PASSED [ 45%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_break_minute[neither] PASSED [ 45%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_on_minute[neither] PASSED [ 45%] 818s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_open_at_time[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_minute[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[neither] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[right] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[left] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_past_session[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_to_future_session[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minute_offset_by_sessions[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_in_range[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_window[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_distance[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_minutes_to_sessions[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_minutes_count[both] PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_has_break PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_regular_holidays_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_adhoc_holidays_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_holidays_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_sample_time PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes_weekdays_time PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_non_early_closes_sample_time PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_late_opens PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_early_closes PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_open_close_break_start_end PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_has_break PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_next_prev_session PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_session_offset PASSED [ 45%] 819s tests/test_xidx_calendar.py::TestXIDXCalendar::test_is_session PASSED [ 45%] 820s tests/test_xidx_calendar.py::TestXIDXCalendar::test_date_to_session PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_prev_next_open_close PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_in_range PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_has_break PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_window PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_sessions_distance PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_index PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_deprecated PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_trading_days PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 45%] 821s tests/test_xidx_calendar.py::TestXIDXCalendar::test_holidays_in_year[2018-holidays1] PASSED [ 45%] 822s tests/test_xist_calendar.py::TestXISTCalendar::test_base_integrity PASSED [ 45%] 823s tests/test_xist_calendar.py::TestXISTCalendar::test_calculated_against_csv PASSED [ 45%] 824s tests/test_xist_calendar.py::TestXISTCalendar::test_start_end PASSED [ 45%] 824s tests/test_xist_calendar.py::TestXISTCalendar::test_invalid_input PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_min PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_bound_max PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_sanity_check_session_lengths PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_specification PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_daylight_savings PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_opens_closes_break_starts_ends PASSED [ 45%] 825s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[both] PASSED [ 45%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[both] PASSED [ 46%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[both] PASSED [ 46%] 826s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[both] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[both] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-next] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-next] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-next] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-next] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[left] PASSED [ 46%] 827s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[left] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[left] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[left] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-next] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-next] PASSED [ 46%] 828s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[right] PASSED [ 46%] 829s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[right] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[right] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[right-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[right-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[left-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[left-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[both-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[both-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-previous] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_session[neither-next] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 46%] 830s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_properties[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_calendar_bounds_properties[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minute_methods[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_session_minutes[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_is_trading_minute[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_is_break_minute[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_on_minute[neither] PASSED [ 46%] 831s tests/test_xist_calendar.py::TestXISTCalendar::test_is_open_at_time[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_minute[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[neither] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[right] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[left] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_past_session[both] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_to_future_session[both] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset[both] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minute_offset_by_sessions[both] PASSED [ 46%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_in_range[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_window[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_distance[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_minutes_to_sessions[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_minutes_count[both] PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_has_break PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_regular_holidays_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_adhoc_holidays_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_non_holidays_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_sample_time PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes_weekdays_time PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_non_early_closes_sample_time PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_late_opens PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_early_closes PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_session_open_close_break_start_end PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_session_has_break PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_next_prev_session PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_session_offset PASSED [ 47%] 832s tests/test_xist_calendar.py::TestXISTCalendar::test_is_session PASSED [ 47%] 833s tests/test_xist_calendar.py::TestXISTCalendar::test_date_to_session PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_prev_next_open_close PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_in_range PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_has_break PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_window PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_sessions_distance PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_trading_index PASSED [ 47%] 834s tests/test_xist_calendar.py::TestXISTCalendar::test_deprecated PASSED [ 47%] 834s tests/test_xjse_calendar.py::TestXJSECalendar::test_base_integrity PASSED [ 47%] 836s tests/test_xjse_calendar.py::TestXJSECalendar::test_calculated_against_csv PASSED [ 47%] 836s tests/test_xjse_calendar.py::TestXJSECalendar::test_start_end PASSED [ 47%] 836s tests/test_xjse_calendar.py::TestXJSECalendar::test_invalid_input PASSED [ 47%] 837s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_min PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_bound_max PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_sanity_check_session_lengths PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_specification PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_daylight_savings PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_opens_closes_break_starts_ends PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[both] PASSED [ 47%] 838s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[both] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[both] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-next] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-next] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[left] PASSED [ 47%] 839s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[left] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[left] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[left] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-next] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 47%] 840s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[right] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[right-none] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[left-none] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[both-none] PASSED [ 47%] 841s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 47%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-none] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-previous] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_session[neither-next] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_properties[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_calendar_bounds_properties[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minute_methods[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_minutes[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_trading_minute[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_break_minute[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_on_minute[neither] PASSED [ 48%] 842s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_open_at_time[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_minute[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[neither] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[right] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[left] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_past_session[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_to_future_session[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minute_offset_by_sessions[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_in_range[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_window[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_distance[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_minutes_to_sessions[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_minutes_count[both] PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_has_break PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_regular_holidays_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_adhoc_holidays_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_holidays_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_sample_time PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes_weekdays_time PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_non_early_closes_sample_time PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_late_opens PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_early_closes PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_open_close_break_start_end PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_has_break PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_next_prev_session PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_session_offset PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_is_session PASSED [ 48%] 843s tests/test_xjse_calendar.py::TestXJSECalendar::test_date_to_session PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_prev_next_open_close PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_in_range PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_has_break PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_window PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_sessions_distance PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_trading_index PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_deprecated PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_no_weekend_sessions PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2019-holidays0] PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2018-holidays1] PASSED [ 48%] 845s tests/test_xjse_calendar.py::TestXJSECalendar::test_holidays_in_year[2016-holidays2] PASSED [ 48%] 845s tests/test_xkar_calendar.py::TestXKARCalendar::test_base_integrity PASSED [ 48%] 846s tests/test_xkar_calendar.py::TestXKARCalendar::test_calculated_against_csv PASSED [ 48%] 846s tests/test_xkar_calendar.py::TestXKARCalendar::test_start_end PASSED [ 48%] 846s tests/test_xkar_calendar.py::TestXKARCalendar::test_invalid_input PASSED [ 48%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_min PASSED [ 48%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_bound_max PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_sanity_check_session_lengths PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_specification PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_daylight_savings PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_opens_closes_break_starts_ends PASSED [ 49%] 847s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[both] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-next] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-next] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 49%] 848s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[left] PASSED [ 49%] 849s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[left] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[left] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-next] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[right] PASSED [ 49%] 850s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[right] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[right] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[right-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[left-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[both-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-previous] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_session[neither-next] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_properties[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_calendar_bounds_properties[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minute_methods[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_minutes[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_trading_minute[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_break_minute[neither] PASSED [ 49%] 851s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_on_minute[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_open_at_time[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_minute[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[neither] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[right] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[left] PASSED [ 49%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[left] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_past_session[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_to_future_session[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minute_offset_by_sessions[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_in_range[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_window[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_distance[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_minutes_to_sessions[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_minutes_count[both] PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_has_break PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_regular_holidays_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_adhoc_holidays_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_holidays_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_sample_time PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes_weekdays_time PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample PASSED [ 50%] 852s tests/test_xkar_calendar.py::TestXKARCalendar::test_non_early_closes_sample_time PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_late_opens PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_early_closes PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_open_close_break_start_end PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_has_break PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_next_prev_session PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_session_offset PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_is_session PASSED [ 50%] 853s tests/test_xkar_calendar.py::TestXKARCalendar::test_date_to_session PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_prev_next_open_close PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_in_range PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_has_break PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_window PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_sessions_distance PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_trading_index PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_deprecated PASSED [ 50%] 855s tests/test_xkar_calendar.py::TestXKARCalendar::test_holidays_in_year[2019-holidays0] PASSED [ 50%] 855s tests/test_xkls_calendar.py::TestXKLSCalendar::test_base_integrity PASSED [ 50%] 857s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calculated_against_csv PASSED [ 50%] 857s tests/test_xkls_calendar.py::TestXKLSCalendar::test_start_end PASSED [ 50%] 857s tests/test_xkls_calendar.py::TestXKLSCalendar::test_invalid_input PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_min PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_bound_max PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sanity_check_session_lengths PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_specification PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_daylight_savings PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_opens_closes_break_starts_ends PASSED [ 50%] 858s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[both] PASSED [ 50%] 859s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[both] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[both] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-next] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-next] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[left] PASSED [ 50%] 860s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[left] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[left] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-next] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 50%] 861s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[right] PASSED [ 50%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[right] PASSED [ 50%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[right] PASSED [ 50%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[right] PASSED [ 51%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[right] PASSED [ 51%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[right] PASSED [ 51%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[right] PASSED [ 51%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[right] PASSED [ 51%] 862s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[right] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[right] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[right-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[left-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[both-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-previous] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_session[neither-next] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 51%] 863s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_properties[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_calendar_bounds_properties[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minute_methods[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_minutes[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_trading_minute[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_break_minute[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_on_minute[neither] PASSED [ 51%] 864s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_open_at_time[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_minute[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[neither] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[right] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[left] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_past_session[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_to_future_session[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minute_offset_by_sessions[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_in_range[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_window[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_distance[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_minutes_to_sessions[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_minutes_count[both] PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_has_break PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_regular_holidays_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_adhoc_holidays_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_holidays_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_sample_time PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes_weekdays_time PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_non_early_closes_sample_time PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_late_opens PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_early_closes PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_open_close_break_start_end PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_has_break PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_next_prev_session PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_session_offset PASSED [ 51%] 865s tests/test_xkls_calendar.py::TestXKLSCalendar::test_is_session PASSED [ 51%] 866s tests/test_xkls_calendar.py::TestXKLSCalendar::test_date_to_session PASSED [ 51%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_prev_next_open_close PASSED [ 51%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_in_range PASSED [ 51%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_has_break PASSED [ 51%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_window PASSED [ 52%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_sessions_distance PASSED [ 52%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_trading_index PASSED [ 52%] 867s tests/test_xkls_calendar.py::TestXKLSCalendar::test_deprecated PASSED [ 52%] 867s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_base_integrity PASSED [ 52%] 879s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv PASSED [ 52%] 883s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_start_end PASSED [ 52%] 884s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_invalid_input PASSED [ 52%] 890s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sanity_check_session_lengths PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_specification PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_daylight_savings PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_opens_closes_break_starts_ends PASSED [ 52%] 893s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[both] PASSED [ 52%] 894s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[both] PASSED [ 52%] 895s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[both] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[both] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-next] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-next] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 52%] 897s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[left] PASSED [ 52%] 899s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[left] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[left] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-next] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[right] PASSED [ 52%] 900s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[right] PASSED [ 52%] 901s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[right] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[right] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[right-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[left-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[both-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-previous] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_session[neither-next] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 52%] 902s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_properties[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calendar_bounds_properties[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minute_methods[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_minutes[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_trading_minute[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_break_minute[neither] PASSED [ 52%] 903s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_on_minute[neither] PASSED [ 52%] 904s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_open_at_time[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_minute[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[neither] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[right] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[right] PASSED [ 52%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[right] PASSED [ 53%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[right] PASSED [ 53%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[right] PASSED [ 53%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[right] PASSED [ 53%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[right] PASSED [ 53%] 906s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[right] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[right] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[right] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[left] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_past_session[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_to_future_session[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minute_offset_by_sessions[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_in_range[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_window[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_distance[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_minutes_to_sessions[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_minutes_count[both] PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_has_break PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_regular_holidays_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_adhoc_holidays_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_holidays_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_sample_time PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes_weekdays_time PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_non_early_closes_sample_time PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_early_closes PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_open_close_break_start_end PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_has_break PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_next_prev_session PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_session_offset PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_is_session PASSED [ 53%] 907s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_date_to_session PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_prev_next_open_close PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_in_range PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_has_break PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_window PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_sessions_distance PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_trading_index PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_deprecated PASSED [ 53%] 909s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_late_opens XFAIL [ 53%] 910s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_historical_regular_holidays_fall_into_precomputed_holidays PASSED [ 53%] 911s tests/test_xkrx_calendar.py::TestXKRXCalendar::test_feb_29_2022_in_lunar_calendar PASSED [ 53%] 911s tests/test_xlim_calendar.py::TestXLIMCalendar::test_base_integrity PASSED [ 53%] 912s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calculated_against_csv PASSED [ 53%] 912s tests/test_xlim_calendar.py::TestXLIMCalendar::test_start_end PASSED [ 53%] 913s tests/test_xlim_calendar.py::TestXLIMCalendar::test_invalid_input PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_min PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_bound_max PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sanity_check_session_lengths PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_specification PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_daylight_savings PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_opens_closes_break_starts_ends PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[both] PASSED [ 53%] 914s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[both] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[both] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[both] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-next] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-next] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-next] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-next] PASSED [ 53%] 915s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[left] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-previous] PASSED [ 53%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 54%] 916s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-previous] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-previous] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-next] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-next] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[right] PASSED [ 54%] 917s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[right] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[right] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[right-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[right-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[left-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[left-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[both-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[both-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-previous] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_session[neither-next] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_properties[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_calendar_bounds_properties[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minute_methods[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_minutes[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_trading_minute[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_break_minute[neither] PASSED [ 54%] 918s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_on_minute[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_open_at_time[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_minute[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[neither] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[right] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[left] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_past_session[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_to_future_session[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minute_offset_by_sessions[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_in_range[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_window[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_distance[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_minutes_to_sessions[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_minutes_count[both] PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_has_break PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_regular_holidays_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_adhoc_holidays_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_holidays_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_sample_time PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes_weekdays_time PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_non_early_closes_sample_time PASSED [ 54%] 919s tests/test_xlim_calendar.py::TestXLIMCalendar::test_late_opens PASSED [ 54%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_early_closes PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_open_close_break_start_end PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_has_break PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_next_prev_session PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_session_offset PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_is_session PASSED [ 55%] 920s tests/test_xlim_calendar.py::TestXLIMCalendar::test_date_to_session PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_prev_next_open_close PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_in_range PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_has_break PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_window PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_sessions_distance PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_trading_index PASSED [ 55%] 921s tests/test_xlim_calendar.py::TestXLIMCalendar::test_deprecated PASSED [ 55%] 921s tests/test_xlis_calendar.py::TestXLISCalendar::test_base_integrity PASSED [ 55%] 922s tests/test_xlis_calendar.py::TestXLISCalendar::test_calculated_against_csv PASSED [ 55%] 922s tests/test_xlis_calendar.py::TestXLISCalendar::test_start_end PASSED [ 55%] 922s tests/test_xlis_calendar.py::TestXLISCalendar::test_invalid_input PASSED [ 55%] 923s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_min PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_bound_max PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_sanity_check_session_lengths PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_specification PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_daylight_savings PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_opens_closes_break_starts_ends PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[both] PASSED [ 55%] 924s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[both] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[both] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[both] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-next] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-next] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 55%] 925s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[left] PASSED [ 55%] 926s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[left] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[left] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-next] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[right] PASSED [ 55%] 927s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[right] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[right] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[right-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[left-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[both-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-previous] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_session[neither-next] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_properties[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_calendar_bounds_properties[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minute_methods[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_minutes[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_trading_minute[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_break_minute[neither] PASSED [ 55%] 928s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_on_minute[neither] PASSED [ 55%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_open_at_time[neither] PASSED [ 55%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_minute[neither] PASSED [ 55%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[neither] PASSED [ 55%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[neither] PASSED [ 55%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[neither] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[right] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[left] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_past_session[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_to_future_session[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minute_offset_by_sessions[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_in_range[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_window[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_distance[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_minutes_to_sessions[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_minutes_count[both] PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_has_break PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_regular_holidays_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_adhoc_holidays_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_holidays_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_sample_time PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes_weekdays_time PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_non_early_closes_sample_time PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_late_opens PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_early_closes PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_open_close_break_start_end PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_has_break PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_next_prev_session PASSED [ 56%] 929s tests/test_xlis_calendar.py::TestXLISCalendar::test_session_offset PASSED [ 56%] 930s tests/test_xlis_calendar.py::TestXLISCalendar::test_is_session PASSED [ 56%] 930s tests/test_xlis_calendar.py::TestXLISCalendar::test_date_to_session PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_prev_next_open_close PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_in_range PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_has_break PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_window PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_sessions_distance PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_trading_index PASSED [ 56%] 931s tests/test_xlis_calendar.py::TestXLISCalendar::test_deprecated PASSED [ 56%] 931s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_base_integrity PASSED [ 56%] 931s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calculated_against_csv PASSED [ 56%] 932s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_start_end PASSED [ 56%] 932s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_invalid_input PASSED [ 56%] 932s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_min PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_bound_max PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sanity_check_session_lengths PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_specification PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_daylight_savings PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_opens_closes_break_starts_ends PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[both] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-next] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-next] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-next] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-next] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[left] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[left] PASSED [ 56%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[left] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-next] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-next] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[right] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[right-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[right-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[left-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[left-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[both-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[both-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_session[neither-next] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_properties[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_calendar_bounds_properties[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minute_methods[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_minutes[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_trading_minute[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_break_minute[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_on_minute[neither] PASSED [ 57%] 934s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_open_at_time[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_minute[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[neither] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[right] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[left] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_past_session[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_to_future_session[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minute_offset_by_sessions[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_in_range[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_window[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_distance[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_minutes_to_sessions[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_minutes_count[both] PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_has_break PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_regular_holidays_sample PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_adhoc_holidays_sample PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_holidays_sample PASSED [ 57%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens_sample PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_sample_time PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes_weekdays_time PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_non_early_closes_sample_time PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_late_opens PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_early_closes PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_open_close_break_start_end PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_has_break PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_next_prev_session PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_session_offset PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_is_session PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_date_to_session PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_prev_next_open_close PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_in_range PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_has_break PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_window PASSED [ 58%] 935s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_sessions_distance PASSED [ 58%] 936s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_trading_index PASSED [ 58%] 936s tests/test_xlit_calendar.py::TestXLITExchangeCalendar::test_deprecated PASSED [ 58%] 936s tests/test_xlon_calendar.py::TestXLONCalendar::test_base_integrity PASSED [ 58%] 938s tests/test_xlon_calendar.py::TestXLONCalendar::test_calculated_against_csv PASSED [ 58%] 938s tests/test_xlon_calendar.py::TestXLONCalendar::test_start_end PASSED [ 58%] 938s tests/test_xlon_calendar.py::TestXLONCalendar::test_invalid_input PASSED [ 58%] 939s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_min PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_bound_max PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_sanity_check_session_lengths PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_specification PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_daylight_savings PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_opens_closes_break_starts_ends PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[both] PASSED [ 58%] 940s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[both] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[both] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[both] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-next] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-next] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-next] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-next] PASSED [ 58%] 941s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[left] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-previous] PASSED [ 58%] 942s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-previous] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-previous] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-next] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-next] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[right] PASSED [ 58%] 943s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[right] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[right] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[right] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[right-none] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[right-none] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[left-none] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[left-none] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[both-none] PASSED [ 58%] 944s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[both-none] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-none] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-previous] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_session[neither-next] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_properties[neither] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes[neither] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_calendar_bounds_properties[neither] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minute_methods[neither] PASSED [ 58%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_minutes[neither] PASSED [ 59%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_trading_minute[neither] PASSED [ 59%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_break_minute[neither] PASSED [ 59%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_on_minute[neither] PASSED [ 59%] 945s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_open_at_time[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_minute[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[neither] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[right] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[left] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_past_session[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_to_future_session[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minute_offset_by_sessions[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_in_range[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_window[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_distance[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_minutes_to_sessions[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_minutes_count[both] PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_has_break PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_regular_holidays_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_adhoc_holidays_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_holidays_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_sample_time PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes_weekdays_time PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_non_early_closes_sample_time PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_late_opens PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_early_closes PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_open_close_break_start_end PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_has_break PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_next_prev_session PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_session_offset PASSED [ 59%] 946s tests/test_xlon_calendar.py::TestXLONCalendar::test_is_session PASSED [ 59%] 947s tests/test_xlon_calendar.py::TestXLONCalendar::test_date_to_session PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_prev_next_open_close PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_in_range PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_has_break PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_window PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_sessions_distance PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_trading_index PASSED [ 59%] 948s tests/test_xlon_calendar.py::TestXLONCalendar::test_deprecated PASSED [ 59%] 948s tests/test_xlux_calendar.py::TestXLUXCalendar::test_base_integrity PASSED [ 59%] 949s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calculated_against_csv PASSED [ 59%] 949s tests/test_xlux_calendar.py::TestXLUXCalendar::test_start_end PASSED [ 59%] 949s tests/test_xlux_calendar.py::TestXLUXCalendar::test_invalid_input PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_min PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_bound_max PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sanity_check_session_lengths PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_specification PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_daylight_savings PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_opens_closes_break_starts_ends PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[both] PASSED [ 59%] 950s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[both] PASSED [ 59%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[both] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[both] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-next] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-next] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 60%] 951s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[left] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-next] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 60%] 952s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[right] PASSED [ 60%] 953s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[right] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[right] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[right-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[left-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[both-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-previous] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_session[neither-next] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_properties[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_calendar_bounds_properties[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minute_methods[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_minutes[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_trading_minute[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_break_minute[neither] PASSED [ 60%] 954s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_on_minute[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_open_at_time[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_minute[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[neither] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[right] PASSED [ 60%] 955s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[right] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[left] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_past_session[both] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_to_future_session[both] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset[both] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minute_offset_by_sessions[both] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_in_range[both] PASSED [ 60%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_window[both] PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_distance[both] PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_minutes_to_sessions[both] PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes[both] PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_minutes_count[both] PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_has_break PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_regular_holidays_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_adhoc_holidays_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_holidays_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_sample_time PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes_weekdays_time PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_non_early_closes_sample_time PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_late_opens PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_early_closes PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_open_close_break_start_end PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_has_break PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_next_prev_session PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_session_offset PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_is_session PASSED [ 61%] 956s tests/test_xlux_calendar.py::TestXLUXCalendar::test_date_to_session PASSED [ 61%] 957s tests/test_xlux_calendar.py::TestXLUXCalendar::test_prev_next_open_close PASSED [ 61%] 957s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_in_range PASSED [ 61%] 957s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_has_break PASSED [ 61%] 957s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_window PASSED [ 61%] 957s tests/test_xlux_calendar.py::TestXLUXCalendar::test_sessions_distance PASSED [ 61%] 958s tests/test_xlux_calendar.py::TestXLUXCalendar::test_trading_index PASSED [ 61%] 958s tests/test_xlux_calendar.py::TestXLUXCalendar::test_deprecated PASSED [ 61%] 958s tests/test_xmad_calendar.py::TestXMADCalendar::test_base_integrity PASSED [ 61%] 959s tests/test_xmad_calendar.py::TestXMADCalendar::test_calculated_against_csv PASSED [ 61%] 959s tests/test_xmad_calendar.py::TestXMADCalendar::test_start_end PASSED [ 61%] 959s tests/test_xmad_calendar.py::TestXMADCalendar::test_invalid_input PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_min PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_bound_max PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_sanity_check_session_lengths PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_specification PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_daylight_savings PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_opens_closes_break_starts_ends PASSED [ 61%] 960s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[both] PASSED [ 61%] 961s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[both] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[both] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-next] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-next] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-next] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-next] PASSED [ 61%] 962s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[left] PASSED [ 61%] 963s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[left] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[left] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-next] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-next] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[right] PASSED [ 61%] 964s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[right] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[right] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[right] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[right-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[right-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[left-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[left-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[both-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[both-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 61%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-previous] PASSED [ 62%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 62%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_session[neither-next] PASSED [ 62%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 62%] 965s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_properties[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_calendar_bounds_properties[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minute_methods[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_minutes[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_trading_minute[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_break_minute[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_on_minute[neither] PASSED [ 62%] 966s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_open_at_time[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_minute[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[neither] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[right] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[left] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_past_session[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_to_future_session[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minute_offset_by_sessions[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_in_range[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_window[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_distance[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_minutes_to_sessions[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_minutes_count[both] PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_has_break PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_regular_holidays_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_adhoc_holidays_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_holidays_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_sample_time PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes_weekdays_time PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_non_early_closes_sample_time PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_late_opens PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_early_closes PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_open_close_break_start_end PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_has_break PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_next_prev_session PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_session_offset PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_is_session PASSED [ 62%] 967s tests/test_xmad_calendar.py::TestXMADCalendar::test_date_to_session PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_prev_next_open_close PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_in_range PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_has_break PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_window PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_sessions_distance PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_trading_index PASSED [ 62%] 969s tests/test_xmad_calendar.py::TestXMADCalendar::test_deprecated PASSED [ 62%] 969s tests/test_xmex_calendar.py::TestXMEXCalendar::test_base_integrity PASSED [ 62%] 970s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calculated_against_csv PASSED [ 62%] 970s tests/test_xmex_calendar.py::TestXMEXCalendar::test_start_end PASSED [ 62%] 970s tests/test_xmex_calendar.py::TestXMEXCalendar::test_invalid_input PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_min PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_bound_max PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sanity_check_session_lengths PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_specification PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_daylight_savings PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_opens_closes_break_starts_ends PASSED [ 62%] 971s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[both] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-next] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-next] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 63%] 972s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[left] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-previous] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-previous] PASSED [ 63%] 973s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-previous] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-next] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[right] PASSED [ 63%] 974s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[right] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[right] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[right-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[left-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[both-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-previous] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_session[neither-next] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 63%] 975s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_properties[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_calendar_bounds_properties[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minute_methods[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_minutes[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_trading_minute[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_break_minute[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_on_minute[neither] PASSED [ 63%] 976s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_open_at_time[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_minute[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[neither] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[right] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[left] PASSED [ 63%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[left] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[left] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[left] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_past_session[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_to_future_session[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minute_offset_by_sessions[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_in_range[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_window[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_distance[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_minutes_to_sessions[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_minutes_count[both] PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_has_break PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_regular_holidays_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_adhoc_holidays_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_holidays_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_sample_time PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes_weekdays_time PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_non_early_closes_sample_time PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_late_opens PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_early_closes PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_open_close_break_start_end PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_has_break PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_next_prev_session PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_session_offset PASSED [ 64%] 977s tests/test_xmex_calendar.py::TestXMEXCalendar::test_is_session PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_date_to_session PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_prev_next_open_close PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_in_range PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_has_break PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_window PASSED [ 64%] 978s tests/test_xmex_calendar.py::TestXMEXCalendar::test_sessions_distance PASSED [ 64%] 979s tests/test_xmex_calendar.py::TestXMEXCalendar::test_trading_index PASSED [ 64%] 979s tests/test_xmex_calendar.py::TestXMEXCalendar::test_deprecated PASSED [ 64%] 979s tests/test_xmil_calendar.py::TestXMILCalendar::test_base_integrity PASSED [ 64%] 980s tests/test_xmil_calendar.py::TestXMILCalendar::test_calculated_against_csv PASSED [ 64%] 980s tests/test_xmil_calendar.py::TestXMILCalendar::test_start_end PASSED [ 64%] 980s tests/test_xmil_calendar.py::TestXMILCalendar::test_invalid_input PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_min PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_bound_max PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_sanity_check_session_lengths PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_specification PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_daylight_savings PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_opens_closes_break_starts_ends PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[both] PASSED [ 64%] 981s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[both] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[both] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[both] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-next] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-next] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-next] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-next] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[left] PASSED [ 64%] 982s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[left] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[left] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[left] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-previous] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-previous] PASSED [ 64%] 983s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-previous] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-next] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-next] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[right] PASSED [ 64%] 984s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[right] PASSED [ 64%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[right] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[right-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[right-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[left-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[left-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[both-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[both-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-previous] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_session[neither-next] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_properties[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_calendar_bounds_properties[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minute_methods[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_minutes[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_trading_minute[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_break_minute[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_on_minute[neither] PASSED [ 65%] 985s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_open_at_time[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_minute[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[neither] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[right] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[left] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_past_session[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_to_future_session[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minute_offset_by_sessions[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_in_range[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_window[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_distance[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_minutes_to_sessions[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_minutes_count[both] PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_has_break PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_regular_holidays_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_adhoc_holidays_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_holidays_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_sample_time PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes_weekdays_time PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_non_early_closes_sample_time PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_late_opens PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_early_closes PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_open_close_break_start_end PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_has_break PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_next_prev_session PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_session_offset PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_is_session PASSED [ 65%] 986s tests/test_xmil_calendar.py::TestXMILCalendar::test_date_to_session PASSED [ 65%] 987s tests/test_xmil_calendar.py::TestXMILCalendar::test_prev_next_open_close PASSED [ 65%] 987s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_in_range PASSED [ 65%] 987s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_has_break PASSED [ 65%] 987s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_window PASSED [ 65%] 987s tests/test_xmil_calendar.py::TestXMILCalendar::test_sessions_distance PASSED [ 65%] 988s tests/test_xmil_calendar.py::TestXMILCalendar::test_trading_index PASSED [ 65%] 988s tests/test_xmil_calendar.py::TestXMILCalendar::test_deprecated PASSED [ 65%] 988s tests/test_xmos_calendar.py::TestXMOSCalendar::test_base_integrity PASSED [ 65%] 997s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv PASSED [ 65%] 998s tests/test_xmos_calendar.py::TestXMOSCalendar::test_start_end PASSED [ 65%] 999s tests/test_xmos_calendar.py::TestXMOSCalendar::test_invalid_input PASSED [ 66%] 1005s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_max PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sanity_check_session_lengths PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_specification PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_daylight_savings PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_opens_closes_break_starts_ends PASSED [ 66%] 1006s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[both] PASSED [ 66%] 1007s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[both] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[both] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-next] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-next] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[left] PASSED [ 66%] 1008s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[left] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[left] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[left] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-next] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 66%] 1009s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[right] PASSED [ 66%] 1010s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[right] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[right] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[right-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[left-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[both-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-previous] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_session[neither-next] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 66%] 1011s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_properties[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_calendar_bounds_properties[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minute_methods[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_minutes[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_trading_minute[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_break_minute[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_on_minute[neither] PASSED [ 66%] 1012s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_open_at_time[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_minute[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[neither] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[right] PASSED [ 66%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[right] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[left] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_past_session[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_to_future_session[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minute_offset_by_sessions[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_in_range[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_window[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_distance[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_minutes_to_sessions[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_minutes_count[both] PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_has_break PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_regular_holidays_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_adhoc_holidays_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_holidays_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_sample_time PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes_weekdays_time PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_non_early_closes_sample_time PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_late_opens PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_early_closes PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_open_close_break_start_end PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_has_break PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_next_prev_session PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_session_offset PASSED [ 67%] 1013s tests/test_xmos_calendar.py::TestXMOSCalendar::test_is_session PASSED [ 67%] 1014s tests/test_xmos_calendar.py::TestXMOSCalendar::test_date_to_session PASSED [ 67%] 1015s tests/test_xmos_calendar.py::TestXMOSCalendar::test_prev_next_open_close PASSED [ 67%] 1015s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_in_range PASSED [ 67%] 1015s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_has_break PASSED [ 67%] 1015s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_window PASSED [ 67%] 1015s tests/test_xmos_calendar.py::TestXMOSCalendar::test_sessions_distance PASSED [ 67%] 1016s tests/test_xmos_calendar.py::TestXMOSCalendar::test_trading_index PASSED [ 67%] 1016s tests/test_xmos_calendar.py::TestXMOSCalendar::test_deprecated PASSED [ 67%] 1016s tests/test_xnys_calendar.py::TestXNYSCalendar::test_base_integrity PASSED [ 67%] 1017s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calculated_against_csv PASSED [ 67%] 1017s tests/test_xnys_calendar.py::TestXNYSCalendar::test_start_end PASSED [ 67%] 1017s tests/test_xnys_calendar.py::TestXNYSCalendar::test_invalid_input PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_min PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_bound_max PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sanity_check_session_lengths PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_specification PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_daylight_savings PASSED [ 67%] 1018s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_opens_closes_break_starts_ends PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[both] PASSED [ 67%] 1019s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[both] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[both] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-next] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-next] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[left] PASSED [ 67%] 1020s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[left] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[left] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-next] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[right] PASSED [ 67%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[right] PASSED [ 68%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[right] PASSED [ 68%] 1021s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[right] PASSED [ 68%] 1022s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[right] PASSED [ 68%] 1022s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[right] PASSED [ 68%] 1022s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[right] PASSED [ 68%] 1022s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[right] PASSED [ 68%] 1022s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[right] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[right] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[right-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[left-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[both-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-previous] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_session[neither-next] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_properties[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_calendar_bounds_properties[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minute_methods[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_minutes[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_trading_minute[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_break_minute[neither] PASSED [ 68%] 1023s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_on_minute[neither] PASSED [ 68%] 1024s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_open_at_time[neither] PASSED [ 68%] 1024s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_minute[neither] PASSED [ 68%] 1024s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[neither] PASSED [ 68%] 1024s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[neither] PASSED [ 68%] 1024s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[neither] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[right] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[left] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_past_session[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_to_future_session[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minute_offset_by_sessions[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_in_range[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_window[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_distance[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_minutes_to_sessions[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_minutes_count[both] PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_has_break PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_regular_holidays_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_adhoc_holidays_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_holidays_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_sample_time PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes_weekdays_time PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_non_early_closes_sample_time PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_late_opens PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_early_closes PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_open_close_break_start_end PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_has_break PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_next_prev_session PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_session_offset PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_is_session PASSED [ 68%] 1025s tests/test_xnys_calendar.py::TestXNYSCalendar::test_date_to_session PASSED [ 68%] 1026s tests/test_xnys_calendar.py::TestXNYSCalendar::test_prev_next_open_close PASSED [ 68%] 1026s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_in_range PASSED [ 69%] 1026s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_has_break PASSED [ 69%] 1026s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_window PASSED [ 69%] 1026s tests/test_xnys_calendar.py::TestXNYSCalendar::test_sessions_distance PASSED [ 69%] 1027s tests/test_xnys_calendar.py::TestXNYSCalendar::test_trading_index PASSED [ 69%] 1027s tests/test_xnys_calendar.py::TestXNYSCalendar::test_deprecated PASSED [ 69%] 1027s tests/test_xnze_calendar.py::TestXNZECalendar::test_base_integrity PASSED [ 69%] 1028s tests/test_xnze_calendar.py::TestXNZECalendar::test_calculated_against_csv PASSED [ 69%] 1028s tests/test_xnze_calendar.py::TestXNZECalendar::test_start_end PASSED [ 69%] 1028s tests/test_xnze_calendar.py::TestXNZECalendar::test_invalid_input PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_min PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_bound_max PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sanity_check_session_lengths PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_specification PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_daylight_savings PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions PASSED [ 69%] 1029s tests/test_xnze_calendar.py::TestXNZECalendar::test_opens_closes_break_starts_ends PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[both] PASSED [ 69%] 1030s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[both] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[both] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-next] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-next] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-next] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-next] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[left] PASSED [ 69%] 1031s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[left] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[left] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-next] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-next] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[right] PASSED [ 69%] 1032s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[right] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[right] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[right] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[right-none] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[right-none] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[left-none] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[left-none] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[both-none] PASSED [ 69%] 1033s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[both-none] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-none] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-previous] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_session[neither-next] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_properties[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_calendar_bounds_properties[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minute_methods[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_minutes[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_trading_minute[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_break_minute[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_on_minute[neither] PASSED [ 69%] 1034s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_open_at_time[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_minute[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[neither] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[right] PASSED [ 69%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[right] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[left] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_past_session[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_to_future_session[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minute_offset_by_sessions[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_in_range[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_window[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_distance[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_minutes_to_sessions[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_minutes_count[both] PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_has_break PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_regular_holidays_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_adhoc_holidays_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_holidays_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_sample_time PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes_weekdays_time PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_non_early_closes_sample_time PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_late_opens PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_early_closes PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_open_close_break_start_end PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_has_break PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_next_prev_session PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_session_offset PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_is_session PASSED [ 70%] 1035s tests/test_xnze_calendar.py::TestXNZECalendar::test_date_to_session PASSED [ 70%] 1036s tests/test_xnze_calendar.py::TestXNZECalendar::test_prev_next_open_close PASSED [ 70%] 1036s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_in_range PASSED [ 70%] 1036s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_has_break PASSED [ 70%] 1036s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_window PASSED [ 70%] 1036s tests/test_xnze_calendar.py::TestXNZECalendar::test_sessions_distance PASSED [ 70%] 1037s tests/test_xnze_calendar.py::TestXNZECalendar::test_trading_index PASSED [ 70%] 1037s tests/test_xnze_calendar.py::TestXNZECalendar::test_deprecated PASSED [ 70%] 1037s tests/test_xosl_calendar.py::TestXOSLCalendar::test_base_integrity PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calculated_against_csv PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_start_end PASSED [ 70%] 1038s tests/test_xosl_calendar.py::TestXOSLCalendar::test_invalid_input PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_min PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_bound_max PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sanity_check_session_lengths PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_specification PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_daylight_savings PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_opens_closes_break_starts_ends PASSED [ 70%] 1039s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[both] PASSED [ 70%] 1040s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[both] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[both] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-next] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-next] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-next] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-next] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[left] PASSED [ 70%] 1041s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[left] PASSED [ 70%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[left] PASSED [ 70%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[left] PASSED [ 70%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-previous] PASSED [ 70%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-previous] PASSED [ 71%] 1042s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-previous] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-next] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-next] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[right] PASSED [ 71%] 1043s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[right] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[right] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[right-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[right-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[left-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[left-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[both-none] PASSED [ 71%] 1044s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[both-none] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-none] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-previous] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_session[neither-next] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_properties[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_calendar_bounds_properties[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minute_methods[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_minutes[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_trading_minute[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_break_minute[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_on_minute[neither] PASSED [ 71%] 1045s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_open_at_time[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_minute[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[neither] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[right] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[left] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_past_session[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_to_future_session[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minute_offset_by_sessions[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_in_range[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_window[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_distance[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_minutes_to_sessions[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_minutes_count[both] PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_has_break PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_regular_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_adhoc_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_holidays_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_sample_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes_weekdays_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_non_early_closes_sample_time PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_late_opens PASSED [ 71%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_early_closes PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_open_close_break_start_end PASSED [ 72%] 1046s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_has_break PASSED [ 72%] 1047s tests/test_xosl_calendar.py::TestXOSLCalendar::test_next_prev_session PASSED [ 72%] 1047s tests/test_xosl_calendar.py::TestXOSLCalendar::test_session_offset PASSED [ 72%] 1047s tests/test_xosl_calendar.py::TestXOSLCalendar::test_is_session PASSED [ 72%] 1047s tests/test_xosl_calendar.py::TestXOSLCalendar::test_date_to_session PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_prev_next_open_close PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_in_range PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_has_break PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_window PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_sessions_distance PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_trading_index PASSED [ 72%] 1048s tests/test_xosl_calendar.py::TestXOSLCalendar::test_deprecated PASSED [ 72%] 1048s tests/test_xpar_calendar.py::TestXPARCalendar::test_base_integrity PASSED [ 72%] 1050s tests/test_xpar_calendar.py::TestXPARCalendar::test_calculated_against_csv PASSED [ 72%] 1050s tests/test_xpar_calendar.py::TestXPARCalendar::test_start_end PASSED [ 72%] 1050s tests/test_xpar_calendar.py::TestXPARCalendar::test_invalid_input PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_min PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_bound_max PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_sanity_check_session_lengths PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_specification PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_daylight_savings PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_opens_closes_break_starts_ends PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[both] PASSED [ 72%] 1051s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[both] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[both] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-next] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-next] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[left] PASSED [ 72%] 1052s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[left] PASSED [ 72%] 1053s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[left] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[left] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-next] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[right] PASSED [ 72%] 1054s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[right] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[right] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[right-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[left-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[both-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-previous] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_session[neither-next] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 72%] 1055s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_properties[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_calendar_bounds_properties[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minute_methods[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_minutes[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_trading_minute[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_break_minute[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_on_minute[neither] PASSED [ 72%] 1056s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_open_at_time[neither] PASSED [ 72%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_minute[neither] PASSED [ 72%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[neither] PASSED [ 72%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[neither] PASSED [ 72%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[neither] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[right] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[left] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_past_session[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_to_future_session[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minute_offset_by_sessions[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_in_range[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_window[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_distance[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_minutes_to_sessions[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_minutes_count[both] PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_has_break PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_regular_holidays_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_adhoc_holidays_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_holidays_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_sample_time PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes_weekdays_time PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_non_early_closes_sample_time PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_late_opens PASSED [ 73%] 1057s tests/test_xpar_calendar.py::TestXPARCalendar::test_early_closes PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_open_close_break_start_end PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_has_break PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_next_prev_session PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_session_offset PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_is_session PASSED [ 73%] 1058s tests/test_xpar_calendar.py::TestXPARCalendar::test_date_to_session PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_prev_next_open_close PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_in_range PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_has_break PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_window PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_sessions_distance PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_trading_index PASSED [ 73%] 1059s tests/test_xpar_calendar.py::TestXPARCalendar::test_deprecated PASSED [ 73%] 1059s tests/test_xphs_calendar.py::TestXPHSCalendar::test_base_integrity PASSED [ 73%] 1061s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calculated_against_csv PASSED [ 73%] 1062s tests/test_xphs_calendar.py::TestXPHSCalendar::test_start_end PASSED [ 73%] 1062s tests/test_xphs_calendar.py::TestXPHSCalendar::test_invalid_input PASSED [ 73%] 1063s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_min PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_bound_max PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sanity_check_session_lengths PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_specification PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_daylight_savings PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_opens_closes_break_starts_ends PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[both] PASSED [ 73%] 1064s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[both] PASSED [ 73%] 1065s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[both] PASSED [ 73%] 1065s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[both] PASSED [ 73%] 1065s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-next] PASSED [ 73%] 1065s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-next] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[left] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[left] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[left] PASSED [ 73%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[left] PASSED [ 74%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[left] PASSED [ 74%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[left] PASSED [ 74%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[left] PASSED [ 74%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[left] PASSED [ 74%] 1066s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[left] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[left] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-next] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 74%] 1067s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[right] PASSED [ 74%] 1068s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[right] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[right] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[right-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[left-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[both-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-previous] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_session[neither-next] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 74%] 1069s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_properties[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_calendar_bounds_properties[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minute_methods[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_minutes[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_trading_minute[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_break_minute[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_on_minute[neither] PASSED [ 74%] 1070s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_open_at_time[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_minute[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[neither] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[right] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[left] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_past_session[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_to_future_session[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minute_offset_by_sessions[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_in_range[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_window[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_distance[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_minutes_to_sessions[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_minutes_count[both] PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_has_break PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_regular_holidays_sample PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_adhoc_holidays_sample PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_holidays_sample PASSED [ 74%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens_sample PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_sample_time PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes_weekdays_time PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_non_early_closes_sample_time PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_late_opens PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_early_closes PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_open_close_break_start_end PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_has_break PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_next_prev_session PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_session_offset PASSED [ 75%] 1071s tests/test_xphs_calendar.py::TestXPHSCalendar::test_is_session PASSED [ 75%] 1072s tests/test_xphs_calendar.py::TestXPHSCalendar::test_date_to_session PASSED [ 75%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_prev_next_open_close PASSED [ 75%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_in_range PASSED [ 75%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_has_break PASSED [ 75%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_window PASSED [ 75%] 1073s tests/test_xphs_calendar.py::TestXPHSCalendar::test_sessions_distance PASSED [ 75%] 1074s tests/test_xphs_calendar.py::TestXPHSCalendar::test_trading_index PASSED [ 75%] 1074s tests/test_xphs_calendar.py::TestXPHSCalendar::test_deprecated PASSED [ 75%] 1074s tests/test_xpra_calendar.py::TestXPRACalendar::test_base_integrity PASSED [ 75%] 1075s tests/test_xpra_calendar.py::TestXPRACalendar::test_calculated_against_csv PASSED [ 75%] 1076s tests/test_xpra_calendar.py::TestXPRACalendar::test_start_end PASSED [ 75%] 1076s tests/test_xpra_calendar.py::TestXPRACalendar::test_invalid_input PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_min PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_bound_max PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_sanity_check_session_lengths PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_specification PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_daylight_savings PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_opens_closes_break_starts_ends PASSED [ 75%] 1077s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[both] PASSED [ 75%] 1078s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[both] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[both] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-next] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-next] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-next] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-next] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[left] PASSED [ 75%] 1079s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[left] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[left] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[left] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-previous] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-previous] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-previous] PASSED [ 75%] 1080s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-previous] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-previous] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-previous] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-next] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-next] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[right] PASSED [ 75%] 1081s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[right] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[right] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[right-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[right-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[left-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[left-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[both-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[both-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-none] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-previous] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_session[neither-next] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_trading_minute[neither-next] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_properties[neither] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes[neither] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_calendar_bounds_properties[neither] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minute_methods[neither] PASSED [ 75%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_minutes[neither] PASSED [ 76%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_trading_minute[neither] PASSED [ 76%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_break_minute[neither] PASSED [ 76%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_on_minute[neither] PASSED [ 76%] 1082s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_open_at_time[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_minute[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[neither] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[right] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[left] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_past_session[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_to_future_session[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minute_offset_by_sessions[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_in_range[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_window[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_distance[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_minutes_to_sessions[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_minutes_count[both] PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_has_break PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_regular_holidays_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_adhoc_holidays_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_holidays_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_sample_time PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes_weekdays_time PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_non_early_closes_sample_time PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_late_opens PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_early_closes PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_open_close_break_start_end PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_has_break PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_next_prev_session PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_session_offset PASSED [ 76%] 1083s tests/test_xpra_calendar.py::TestXPRACalendar::test_is_session PASSED [ 76%] 1084s tests/test_xpra_calendar.py::TestXPRACalendar::test_date_to_session PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_prev_next_open_close PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_in_range PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_has_break PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_window PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_sessions_distance PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_trading_index PASSED [ 76%] 1086s tests/test_xpra_calendar.py::TestXPRACalendar::test_deprecated PASSED [ 76%] 1086s tests/test_xris_calendar.py::TestXRISCalendar::test_base_integrity PASSED [ 76%] 1086s tests/test_xris_calendar.py::TestXRISCalendar::test_calculated_against_csv PASSED [ 76%] 1086s tests/test_xris_calendar.py::TestXRISCalendar::test_start_end PASSED [ 76%] 1086s tests/test_xris_calendar.py::TestXRISCalendar::test_invalid_input PASSED [ 76%] 1087s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_min PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_bound_max PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_sanity_check_session_lengths PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_specification PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_daylight_savings PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_opens_closes_break_starts_ends PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[both] PASSED [ 76%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[both] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[left] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-next] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[right] PASSED [ 77%] 1088s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[right-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[right-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[left-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[left-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[both-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[both-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-previous] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_session[neither-next] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_properties[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_calendar_bounds_properties[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minute_methods[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_session_minutes[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_trading_minute[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_break_minute[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_on_minute[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_open_at_time[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_minute[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[neither] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[right] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[left] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_past_session[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_to_future_session[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minute_offset_by_sessions[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_in_range[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_window[both] PASSED [ 77%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_distance[both] PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_minutes_to_sessions[both] PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes[both] PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_minutes_count[both] PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_has_break PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_regular_holidays_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_adhoc_holidays_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_non_holidays_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_sample_time PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes_weekdays_time PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_non_early_closes_sample_time PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_late_opens PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_early_closes PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_session_open_close_break_start_end PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_session_has_break PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_next_prev_session PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_session_offset PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_is_session PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_date_to_session PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_prev_next_open_close PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_in_range PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_has_break PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_window PASSED [ 78%] 1089s tests/test_xris_calendar.py::TestXRISCalendar::test_sessions_distance PASSED [ 78%] 1090s tests/test_xris_calendar.py::TestXRISCalendar::test_trading_index PASSED [ 78%] 1090s tests/test_xris_calendar.py::TestXRISCalendar::test_deprecated PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_base_integrity PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_calculated_against_csv PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_start_end PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_invalid_input PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_min PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_bound_max PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_sanity_check_session_lengths PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_specification PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_daylight_savings PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_opens_closes_break_starts_ends PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[both] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-next] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-next] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-next] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-next] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[left] PASSED [ 78%] 1090s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[left] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[left] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-next] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-next] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[right] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[right-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[right-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[left-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[left-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[both-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[both-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 78%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-previous] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_session[neither-next] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_properties[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_calendar_bounds_properties[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minute_methods[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_minutes[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_trading_minute[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_break_minute[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_on_minute[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_open_at_time[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_minute[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[neither] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[right] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[left] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_past_session[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_to_future_session[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minute_offset_by_sessions[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_in_range[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_window[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_distance[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_minutes_to_sessions[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_minutes_count[both] PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_has_break PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_regular_holidays_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_adhoc_holidays_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_holidays_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_sample_time PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes_weekdays_time PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_non_early_closes_sample_time PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_late_opens PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_early_closes PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_open_close_break_start_end PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_has_break PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_next_prev_session PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_session_offset PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_is_session PASSED [ 79%] 1091s tests/test_xsau_calendar.py::TestXASUCalendar::test_date_to_session PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_prev_next_open_close PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_in_range PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_has_break PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_window PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_sessions_distance PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_trading_index PASSED [ 79%] 1092s tests/test_xsau_calendar.py::TestXASUCalendar::test_deprecated PASSED [ 79%] 1092s tests/test_xses_calendar.py::TestXSESCalendar::test_base_integrity PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_calculated_against_csv PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_start_end PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_invalid_input PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_min PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_bound_max PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_sanity_check_session_lengths PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_specification PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_daylight_savings PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_opens_closes_break_starts_ends PASSED [ 79%] 1093s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[both] PASSED [ 80%] 1094s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[both] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[both] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-next] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-next] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-next] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-next] PASSED [ 80%] 1095s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[left] PASSED [ 80%] 1096s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[left] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[left] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-next] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-next] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[right] PASSED [ 80%] 1097s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[right] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[right] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[right-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[right-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[left-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[left-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[both-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[both-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-previous] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_session[neither-next] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 80%] 1098s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_properties[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_calendar_bounds_properties[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minute_methods[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_session_minutes[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_is_trading_minute[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_is_break_minute[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_on_minute[neither] PASSED [ 80%] 1099s tests/test_xses_calendar.py::TestXSESCalendar::test_is_open_at_time[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_minute[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[neither] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[right] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[left] PASSED [ 80%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[left] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[left] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_past_session[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_to_future_session[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minute_offset_by_sessions[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_in_range[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_window[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_distance[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_minutes_to_sessions[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_minutes_count[both] PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_has_break PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_regular_holidays_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_adhoc_holidays_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_non_holidays_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_sample_time PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes_weekdays_time PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_non_early_closes_sample_time PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_late_opens PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_early_closes PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_session_open_close_break_start_end PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_session_has_break PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_next_prev_session PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_session_offset PASSED [ 81%] 1100s tests/test_xses_calendar.py::TestXSESCalendar::test_is_session PASSED [ 81%] 1101s tests/test_xses_calendar.py::TestXSESCalendar::test_date_to_session PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_prev_next_open_close PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_in_range PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_has_break PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_window PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_sessions_distance PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_trading_index PASSED [ 81%] 1102s tests/test_xses_calendar.py::TestXSESCalendar::test_deprecated PASSED [ 81%] 1102s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_base_integrity PASSED [ 81%] 1105s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calculated_against_csv PASSED [ 81%] 1105s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_start_end PASSED [ 81%] 1105s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_invalid_input PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_min PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_bound_max PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sanity_check_session_lengths PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_specification PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_daylight_savings PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_opens_closes_break_starts_ends PASSED [ 81%] 1107s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[both] PASSED [ 81%] 1108s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[both] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[both] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-next] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-next] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[left] PASSED [ 81%] 1109s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[left] PASSED [ 81%] 1110s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[left] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[left] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-next] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[right] PASSED [ 81%] 1111s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[right] PASSED [ 81%] 1112s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[right] PASSED [ 81%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[right] PASSED [ 81%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[right-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[left-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[both-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-previous] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_session[neither-next] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 82%] 1113s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_properties[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_calendar_bounds_properties[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minute_methods[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_minutes[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_trading_minute[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_break_minute[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_on_minute[neither] PASSED [ 82%] 1114s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_open_at_time[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_minute[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[neither] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[right] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[left] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_past_session[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_to_future_session[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minute_offset_by_sessions[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_in_range[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_window[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_distance[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_minutes_to_sessions[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_minutes_count[both] PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_has_break PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_regular_holidays_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_adhoc_holidays_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_holidays_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_sample_time PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes_weekdays_time PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_non_early_closes_sample_time PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_late_opens PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_early_closes PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_open_close_break_start_end PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_has_break PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_next_prev_session PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_session_offset PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_is_session PASSED [ 82%] 1115s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_date_to_session PASSED [ 82%] 1116s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_prev_next_open_close PASSED [ 82%] 1116s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_in_range PASSED [ 82%] 1116s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_has_break PASSED [ 82%] 1116s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_window PASSED [ 82%] 1116s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_sessions_distance PASSED [ 82%] 1117s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_trading_index PASSED [ 82%] 1117s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_deprecated PASSED [ 82%] 1117s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_additional_early_closes_sample PASSED [ 82%] 1117s tests/test_xsgo_calendar.py::TestXSGOCalendar::test_close_time_change PASSED [ 82%] 1117s tests/test_xshg_calendar.py::TestXSHGCalendar::test_base_integrity PASSED [ 82%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calculated_against_csv PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_start_end PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_invalid_input PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_min PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_bound_max PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sanity_check_session_lengths PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_specification PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_daylight_savings PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions PASSED [ 83%] 1118s tests/test_xshg_calendar.py::TestXSHGCalendar::test_opens_closes_break_starts_ends PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[both] PASSED [ 83%] 1119s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[both] PASSED [ 83%] 1120s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[both] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[both] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-next] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-next] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[left] PASSED [ 83%] 1121s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[left] PASSED [ 83%] 1122s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[left] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[left] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-next] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 83%] 1123s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[right] PASSED [ 83%] 1124s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[right] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[right] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[right-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[left-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[both-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-previous] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_session[neither-next] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_properties[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_calendar_bounds_properties[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minute_methods[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_minutes[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_trading_minute[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_break_minute[neither] PASSED [ 83%] 1126s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_on_minute[neither] PASSED [ 83%] 1127s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_open_at_time[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_minute[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[neither] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[right] PASSED [ 83%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[right] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[right] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[right] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[left] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_past_session[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_to_future_session[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minute_offset_by_sessions[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_in_range[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_window[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_distance[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_minutes_to_sessions[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_minutes_count[both] PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_has_break PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_regular_holidays_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_adhoc_holidays_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_holidays_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_sample_time PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes_weekdays_time PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_non_early_closes_sample_time PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_late_opens PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_early_closes PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_open_close_break_start_end PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_has_break PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_next_prev_session PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_session_offset PASSED [ 84%] 1128s tests/test_xshg_calendar.py::TestXSHGCalendar::test_is_session PASSED [ 84%] 1129s tests/test_xshg_calendar.py::TestXSHGCalendar::test_date_to_session PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_prev_next_open_close PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_in_range PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_has_break PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_window PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_sessions_distance PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_trading_index PASSED [ 84%] 1130s tests/test_xshg_calendar.py::TestXSHGCalendar::test_deprecated PASSED [ 84%] 1130s tests/test_xsto_calendar.py::TestXSTOCalendar::test_base_integrity PASSED [ 84%] 1131s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calculated_against_csv PASSED [ 84%] 1132s tests/test_xsto_calendar.py::TestXSTOCalendar::test_start_end PASSED [ 84%] 1132s tests/test_xsto_calendar.py::TestXSTOCalendar::test_invalid_input PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_min PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_bound_max PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sanity_check_session_lengths PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_specification PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_daylight_savings PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_opens_closes_break_starts_ends PASSED [ 84%] 1133s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[both] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-next] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-next] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 84%] 1134s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[left] PASSED [ 84%] 1135s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[left] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[left] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-next] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 84%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[right] PASSED [ 85%] 1136s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[right] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[right] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[right-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[left-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[both-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-previous] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_session[neither-next] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_properties[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_calendar_bounds_properties[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minute_methods[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_minutes[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_trading_minute[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_break_minute[neither] PASSED [ 85%] 1137s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_on_minute[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_open_at_time[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_minute[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[neither] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[right] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[left] PASSED [ 85%] 1138s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[left] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[left] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[left] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[left] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_past_session[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_to_future_session[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minute_offset_by_sessions[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_in_range[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_window[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_distance[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_minutes_to_sessions[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_minutes_count[both] PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_has_break PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_regular_holidays_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_adhoc_holidays_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_holidays_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_sample_time PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes_weekdays_time PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_non_early_closes_sample_time PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_late_opens PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_early_closes PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_open_close_break_start_end PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_has_break PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_next_prev_session PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_session_offset PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_is_session PASSED [ 85%] 1139s tests/test_xsto_calendar.py::TestXSTOCalendar::test_date_to_session PASSED [ 85%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_prev_next_open_close PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_in_range PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_has_break PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_window PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_sessions_distance PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_trading_index PASSED [ 86%] 1140s tests/test_xsto_calendar.py::TestXSTOCalendar::test_deprecated PASSED [ 86%] 1140s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_base_integrity PASSED [ 86%] 1141s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calculated_against_csv PASSED [ 86%] 1141s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_start_end PASSED [ 86%] 1142s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_invalid_input PASSED [ 86%] 1142s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_min PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_bound_max PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sanity_check_session_lengths PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_specification PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_daylight_savings PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_opens_closes_break_starts_ends PASSED [ 86%] 1143s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[both] PASSED [ 86%] 1144s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[both] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[both] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-next] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-next] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-next] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-next] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[left] PASSED [ 86%] 1145s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[left] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[left] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[left] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-previous] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-previous] PASSED [ 86%] 1146s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-previous] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-next] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-next] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[right] PASSED [ 86%] 1147s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[right] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[right] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[right-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[right-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[left-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[left-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[both-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[both-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-previous] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_session[neither-next] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_properties[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_calendar_bounds_properties[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minute_methods[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_minutes[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_trading_minute[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_break_minute[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_on_minute[neither] PASSED [ 86%] 1148s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_open_at_time[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_minute[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[neither] PASSED [ 86%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[neither] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[right] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[left] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_past_session[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_to_future_session[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minute_offset_by_sessions[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_in_range[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_window[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_distance[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_minutes_to_sessions[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_minutes_count[both] PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_has_break PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_regular_holidays_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_adhoc_holidays_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_holidays_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_sample_time PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes_weekdays_time PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_non_early_closes_sample_time PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_late_opens PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_early_closes PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_open_close_break_start_end PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_has_break PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_next_prev_session PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_session_offset PASSED [ 87%] 1149s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_is_session PASSED [ 87%] 1150s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_date_to_session PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_prev_next_open_close PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_in_range PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_has_break PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_window PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_sessions_distance PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_trading_index PASSED [ 87%] 1151s tests/test_xswx_calendar.py::TestIXSWXCalendar::test_deprecated PASSED [ 87%] 1151s tests/test_xtae_calendar.py::TestXTAECalendar::test_base_integrity PASSED [ 87%] 1153s tests/test_xtae_calendar.py::TestXTAECalendar::test_calculated_against_csv PASSED [ 87%] 1154s tests/test_xtae_calendar.py::TestXTAECalendar::test_start_end PASSED [ 87%] 1155s tests/test_xtae_calendar.py::TestXTAECalendar::test_invalid_input PASSED [ 87%] 1156s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_min PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_bound_max PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_sanity_check_session_lengths PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_specification PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_daylight_savings PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_opens_closes_break_starts_ends PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[both] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-next] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-next] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-next] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-next] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[left] PASSED [ 87%] 1157s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[left] PASSED [ 87%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[left] PASSED [ 87%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[left] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-next] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-next] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[right] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[right-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[right-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[left-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[left-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[both-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[both-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_session[neither-next] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_properties[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_calendar_bounds_properties[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minute_methods[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_minutes[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_trading_minute[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_break_minute[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_on_minute[neither] PASSED [ 88%] 1158s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_open_at_time[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_minute[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[neither] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[right] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[left] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_past_session[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_to_future_session[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minute_offset_by_sessions[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_in_range[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_window[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_distance[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_minutes_to_sessions[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_minutes_count[both] PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_has_break PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_regular_holidays_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_adhoc_holidays_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_holidays_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_sample_time PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes_weekdays_time PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_non_early_closes_sample_time PASSED [ 88%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_late_opens PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_early_closes PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_open_close_break_start_end PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_has_break PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_next_prev_session PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_session_offset PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_is_session PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_date_to_session PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_prev_next_open_close PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_in_range PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_has_break PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_window PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_sessions_distance PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_trading_index PASSED [ 89%] 1159s tests/test_xtae_calendar.py::TestXTAECalendar::test_deprecated PASSED [ 89%] 1159s tests/test_xtai_calendar.py::TestXTAICalendar::test_base_integrity PASSED [ 89%] 1163s tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv PASSED [ 89%] 1164s tests/test_xtai_calendar.py::TestXTAICalendar::test_start_end PASSED [ 89%] 1164s tests/test_xtai_calendar.py::TestXTAICalendar::test_invalid_input PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_min PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_bound_max PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_sanity_check_session_lengths PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_specification PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_daylight_savings PASSED [ 89%] 1165s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions PASSED [ 89%] 1166s tests/test_xtai_calendar.py::TestXTAICalendar::test_opens_closes_break_starts_ends PASSED [ 89%] 1166s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[both] PASSED [ 89%] 1167s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[both] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[both] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-next] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-next] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-next] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-next] PASSED [ 89%] 1170s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[left] PASSED [ 89%] 1171s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[left] PASSED [ 89%] 1173s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[left] PASSED [ 89%] 1173s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-previous] PASSED [ 89%] 1173s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-previous] PASSED [ 89%] 1173s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-previous] PASSED [ 89%] 1173s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-previous] PASSED [ 89%] 1174s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-previous] PASSED [ 89%] 1174s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-previous] PASSED [ 89%] 1174s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-next] PASSED [ 89%] 1174s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-next] PASSED [ 89%] 1174s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[right] PASSED [ 89%] 1175s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[right] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[right] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[right-none] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[right-none] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[left-none] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[left-none] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[both-none] PASSED [ 89%] 1177s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[both-none] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-none] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-none] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-previous] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_session[neither-next] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_trading_minute[neither-next] PASSED [ 89%] 1178s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_properties[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_calendar_bounds_properties[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minute_methods[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_minutes[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_trading_minute[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_break_minute[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_on_minute[neither] PASSED [ 89%] 1179s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_open_at_time[neither] PASSED [ 89%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_minute[neither] PASSED [ 89%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[neither] PASSED [ 89%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[neither] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[right] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[left] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_past_session[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_to_future_session[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minute_offset_by_sessions[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_in_range[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_window[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_distance[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_minutes_to_sessions[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_minutes_count[both] PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_has_break PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_regular_holidays_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_adhoc_holidays_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_holidays_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_sample_time PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes_weekdays_time PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_non_early_closes_sample_time PASSED [ 90%] 1181s tests/test_xtai_calendar.py::TestXTAICalendar::test_late_opens PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_early_closes PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_open_close_break_start_end PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_has_break PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_next_prev_session PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_session_offset PASSED [ 90%] 1182s tests/test_xtai_calendar.py::TestXTAICalendar::test_is_session PASSED [ 90%] 1183s tests/test_xtai_calendar.py::TestXTAICalendar::test_date_to_session PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_in_range PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_has_break PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_window PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_sessions_distance PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_trading_index PASSED [ 90%] 1188s tests/test_xtai_calendar.py::TestXTAICalendar::test_deprecated PASSED [ 90%] 1188s tests/test_xtal_calendar.py::TestXTALCalendar::test_base_integrity PASSED [ 90%] 1188s tests/test_xtal_calendar.py::TestXTALCalendar::test_calculated_against_csv PASSED [ 90%] 1188s tests/test_xtal_calendar.py::TestXTALCalendar::test_start_end PASSED [ 90%] 1189s tests/test_xtal_calendar.py::TestXTALCalendar::test_invalid_input PASSED [ 90%] 1189s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_min PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_bound_max PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_sanity_check_session_lengths PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_specification PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_daylight_savings PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_opens_closes_break_starts_ends PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[both] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-next] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-next] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-next] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-next] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[left] PASSED [ 90%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[left] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-next] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-next] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[right] PASSED [ 91%] 1190s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[right-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[right-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[left-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[left-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[both-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[both-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-previous] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_session[neither-next] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_properties[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_calendar_bounds_properties[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minute_methods[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_minutes[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_trading_minute[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_break_minute[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_on_minute[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_open_at_time[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_minute[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[neither] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[right] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[left] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_past_session[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_to_future_session[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minute_offset_by_sessions[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_in_range[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_window[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_distance[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_minutes_to_sessions[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_minutes_count[both] PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_has_break PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_regular_holidays_sample PASSED [ 91%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_adhoc_holidays_sample PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_holidays_sample PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens_sample PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_sample_time PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes_weekdays_time PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_non_early_closes_sample_time PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_late_opens PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_early_closes PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_open_close_break_start_end PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_has_break PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_next_prev_session PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_session_offset PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_is_session PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_date_to_session PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_prev_next_open_close PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_in_range PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_has_break PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_window PASSED [ 92%] 1191s tests/test_xtal_calendar.py::TestXTALCalendar::test_sessions_distance PASSED [ 92%] 1192s tests/test_xtal_calendar.py::TestXTALCalendar::test_trading_index PASSED [ 92%] 1192s tests/test_xtal_calendar.py::TestXTALCalendar::test_deprecated PASSED [ 92%] 1192s tests/test_xtks_calendar.py::TestXTKSCalendar::test_base_integrity PASSED [ 92%] 1193s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calculated_against_csv PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_start_end PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_invalid_input PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_min PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_bound_max PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sanity_check_session_lengths PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_specification PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_daylight_savings PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_opens_closes_break_starts_ends PASSED [ 92%] 1194s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[both] PASSED [ 92%] 1195s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[both] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[both] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-next] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-next] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-next] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-next] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[left] PASSED [ 92%] 1196s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[left] PASSED [ 92%] 1197s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[left] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[left] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-next] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-next] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[right] PASSED [ 92%] 1198s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[right] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[right] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[right-none] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[right-none] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[left-none] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[left-none] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[both-none] PASSED [ 92%] 1199s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[both-none] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-none] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-previous] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_session[neither-next] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_properties[neither] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes[neither] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_calendar_bounds_properties[neither] PASSED [ 92%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minute_methods[neither] PASSED [ 93%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_minutes[neither] PASSED [ 93%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_trading_minute[neither] PASSED [ 93%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_break_minute[neither] PASSED [ 93%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_on_minute[neither] PASSED [ 93%] 1200s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_open_at_time[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_minute[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[neither] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[right] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[left] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_past_session[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_to_future_session[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minute_offset_by_sessions[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_in_range[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_window[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_distance[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_minutes_to_sessions[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_minutes_count[both] PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_has_break PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_regular_holidays_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_adhoc_holidays_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_holidays_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_sample_time PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes_weekdays_time PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_non_early_closes_sample_time PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_late_opens PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_early_closes PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_open_close_break_start_end PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_has_break PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_next_prev_session PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_session_offset PASSED [ 93%] 1201s tests/test_xtks_calendar.py::TestXTKSCalendar::test_is_session PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_date_to_session PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_prev_next_open_close PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_in_range PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_has_break PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_window PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_sessions_distance PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_trading_index PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_deprecated PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_golden_week_holidays PASSED [ 93%] 1202s tests/test_xtks_calendar.py::TestXTKSCalendar::test_emperors_birthday PASSED [ 93%] 1202s tests/test_xtse_calendar.py::TestXTSECalendar::test_base_integrity PASSED [ 93%] 1204s tests/test_xtse_calendar.py::TestXTSECalendar::test_calculated_against_csv PASSED [ 93%] 1204s tests/test_xtse_calendar.py::TestXTSECalendar::test_start_end PASSED [ 93%] 1205s tests/test_xtse_calendar.py::TestXTSECalendar::test_invalid_input PASSED [ 93%] 1205s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_min PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_bound_max PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_sanity_check_session_lengths PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_specification PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_daylight_savings PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_opens_closes_break_starts_ends PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[both] PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[both] PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[both] PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[both] PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[both] PASSED [ 93%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[both] PASSED [ 94%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[both] PASSED [ 94%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[both] PASSED [ 94%] 1206s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[both] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[both] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-next] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-next] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-next] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-next] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[left] PASSED [ 94%] 1207s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[left] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[left] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-previous] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-next] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-next] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[right] PASSED [ 94%] 1208s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[right] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[right] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[right-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[right-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[left-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[left-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[both-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[both-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-none] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-previous] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_session[neither-next] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_trading_minute[neither-next] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_properties[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_calendar_bounds_properties[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minute_methods[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_minutes[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_trading_minute[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_break_minute[neither] PASSED [ 94%] 1209s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_on_minute[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_open_at_time[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_minute[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[neither] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[right] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[left] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_past_session[both] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_to_future_session[both] PASSED [ 94%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minute_offset_by_sessions[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_in_range[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_window[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_distance[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_minutes_to_sessions[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_minutes_count[both] PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_has_break PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_regular_holidays_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_adhoc_holidays_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_holidays_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_sample_time PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes_weekdays_time PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_non_early_closes_sample_time PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_late_opens PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_early_closes PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_open_close_break_start_end PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_has_break PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_next_prev_session PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_session_offset PASSED [ 95%] 1210s tests/test_xtse_calendar.py::TestXTSECalendar::test_is_session PASSED [ 95%] 1211s tests/test_xtse_calendar.py::TestXTSECalendar::test_date_to_session PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_prev_next_open_close PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_in_range PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_has_break PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_window PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_sessions_distance PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_trading_index PASSED [ 95%] 1212s tests/test_xtse_calendar.py::TestXTSECalendar::test_deprecated PASSED [ 95%] 1212s tests/test_xwar_calendar.py::TestXWARCalendar::test_base_integrity PASSED [ 95%] 1213s tests/test_xwar_calendar.py::TestXWARCalendar::test_calculated_against_csv PASSED [ 95%] 1213s tests/test_xwar_calendar.py::TestXWARCalendar::test_start_end PASSED [ 95%] 1214s tests/test_xwar_calendar.py::TestXWARCalendar::test_invalid_input PASSED [ 95%] 1214s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_min PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_bound_max PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_sanity_check_session_lengths PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_specification PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_daylight_savings PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_opens_closes_break_starts_ends PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[both] PASSED [ 95%] 1215s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[both] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[both] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-next] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-next] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-next] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-next] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[left] PASSED [ 95%] 1216s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[left] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[left] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[left] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-next] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-next] PASSED [ 95%] 1217s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[right] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[right-none] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[right-none] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[left-none] PASSED [ 95%] 1218s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[left-none] PASSED [ 95%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[both-none] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[both-none] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-none] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-previous] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_session[neither-next] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_properties[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_calendar_bounds_properties[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minute_methods[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_minutes[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_trading_minute[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_break_minute[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_on_minute[neither] PASSED [ 96%] 1219s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_open_at_time[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_minute[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[neither] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[right] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[left] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_past_session[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_to_future_session[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minute_offset_by_sessions[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_in_range[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_window[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_distance[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_minutes_to_sessions[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_minutes_count[both] PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_has_break PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_regular_holidays_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_adhoc_holidays_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_holidays_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_sample_time PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes_weekdays_time PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_non_early_closes_sample_time PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_late_opens PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_early_closes PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_open_close_break_start_end PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_has_break PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_next_prev_session PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_session_offset PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_is_session PASSED [ 96%] 1220s tests/test_xwar_calendar.py::TestXWARCalendar::test_date_to_session PASSED [ 96%] 1221s tests/test_xwar_calendar.py::TestXWARCalendar::test_prev_next_open_close PASSED [ 96%] 1221s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_in_range PASSED [ 96%] 1221s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_has_break PASSED [ 96%] 1221s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_window PASSED [ 96%] 1221s tests/test_xwar_calendar.py::TestXWARCalendar::test_sessions_distance PASSED [ 96%] 1222s tests/test_xwar_calendar.py::TestXWARCalendar::test_trading_index PASSED [ 96%] 1222s tests/test_xwar_calendar.py::TestXWARCalendar::test_deprecated PASSED [ 96%] 1222s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_base_integrity PASSED [ 96%] 1223s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calculated_against_csv PASSED [ 96%] 1223s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_start_end PASSED [ 96%] 1223s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_invalid_input PASSED [ 96%] 1224s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_min PASSED [ 96%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_bound_max PASSED [ 96%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sanity_check_session_lengths PASSED [ 96%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_specification PASSED [ 96%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_daylight_savings PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_opens_closes_break_starts_ends PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[both] PASSED [ 97%] 1225s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[both] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[both] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-next] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-next] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-next] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-next] PASSED [ 97%] 1226s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[left] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-previous] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-previous] PASSED [ 97%] 1227s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-previous] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-next] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-next] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[right] PASSED [ 97%] 1228s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[right] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[right] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[right-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[right-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[left-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[left-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[both-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[both-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-previous] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_session[neither-next] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_properties[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_calendar_bounds_properties[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minute_methods[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_minutes[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_trading_minute[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_break_minute[neither] PASSED [ 97%] 1229s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_on_minute[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_open_at_time[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_minute[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[neither] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[right] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[left] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[left] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[left] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[left] PASSED [ 97%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[left] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_past_session[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_to_future_session[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minute_offset_by_sessions[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_in_range[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_window[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_distance[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_minutes_to_sessions[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_minutes_count[both] PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_has_break PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_regular_holidays_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_adhoc_holidays_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_holidays_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_sample_time PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes_weekdays_time PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_non_early_closes_sample_time PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_late_opens PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_early_closes PASSED [ 98%] 1230s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_open_close_break_start_end PASSED [ 98%] 1231s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_has_break PASSED [ 98%] 1231s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_next_prev_session PASSED [ 98%] 1231s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_session_offset PASSED [ 98%] 1231s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_is_session PASSED [ 98%] 1231s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_date_to_session PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_prev_next_open_close PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_in_range PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_has_break PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_window PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_sessions_distance PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_trading_index PASSED [ 98%] 1232s tests/test_xwbo_calendar.py::TestXWBOCalendar::test_deprecated PASSED [ 98%] 1232s tests/test_xzag_calendar.py::TestXZAGCalendar::test_base_integrity PASSED [ 98%] 1233s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calculated_against_csv PASSED [ 98%] 1234s tests/test_xzag_calendar.py::TestXZAGCalendar::test_start_end PASSED [ 98%] 1234s tests/test_xzag_calendar.py::TestXZAGCalendar::test_invalid_input PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_min PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_bound_max PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sanity_check_session_lengths PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_specification PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_daylight_savings PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_opens_closes_break_starts_ends PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[both] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-next] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-next] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-next] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-next] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[left] PASSED [ 98%] 1235s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[left] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[left] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[left] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-previous] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-next] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-next] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[right] PASSED [ 98%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[right] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[right] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[right] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[right] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[right-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[right-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[left-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[left-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[both-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[both-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-none] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-previous] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-previous] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_session[neither-next] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_trading_minute[neither-next] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_properties[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_calendar_bounds_properties[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minute_methods[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_minutes[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_trading_minute[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_break_minute[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_on_minute[neither] PASSED [ 99%] 1236s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_open_at_time[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_minute[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[neither] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[right] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[left] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_past_session[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_to_future_session[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minute_offset_by_sessions[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_in_range[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_window[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_distance[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_minutes_to_sessions[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_minutes_count[both] PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_has_break PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_regular_holidays_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_adhoc_holidays_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_holidays_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_sample_time PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes_weekdays_time PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_non_early_closes_sample_time PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_late_opens PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_early_closes PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_open_close_break_start_end PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_has_break PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_next_prev_session PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_session_offset PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_is_session PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_date_to_session PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_prev_next_open_close PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_in_range PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_has_break PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_window PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_sessions_distance PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_trading_index PASSED [ 99%] 1237s tests/test_xzag_calendar.py::TestXZAGCalendar::test_deprecated PASSED [100%] 1237s 1237s ============================= slowest 15 durations ============================= 1237s 24.93s call tests/test_exchange_calendar.py::test_default_calendars 1237s 12.42s setup tests/test_xkrx_calendar.py::TestXKRXCalendar::test_calculated_against_csv 1237s 8.99s setup tests/test_xmos_calendar.py::TestXMOSCalendar::test_calculated_against_csv 1237s 7.56s call tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[CMES] 1237s 6.90s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[CMES] 1237s 5.95s setup tests/test_xbom_calendar.py::TestXBOMCalendar::test_calculated_against_csv 1237s 5.33s call tests/test_xmos_calendar.py::TestXMOSCalendar::test_bound_min 1237s 5.26s call tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XHKG] 1237s 5.13s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_min 1237s 4.67s call tests/test_xtai_calendar.py::TestXTAICalendar::test_prev_next_open_close 1237s 4.06s setup tests/test_xtai_calendar.py::TestXTAICalendar::test_calculated_against_csv 1237s 3.42s call tests/test_calendar_helpers.py::TestTradingIndex::test_indices_fuzz[XLON] 1237s 3.39s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XHKG] 1237s 3.28s call tests/test_calendar_helpers.py::TestTradingIndex::test_intervals_fuzz[XLON] 1237s 3.23s call tests/test_xkrx_calendar.py::TestXKRXCalendar::test_bound_max 1237s ========== 9125 passed, 65 deselected, 1 xfailed in 820.03s (0:13:40) ========== 1238s autopkgtest [03:10:56]: test pybuild-autopkgtest: -----------------------] 1239s autopkgtest [03:10:57]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1239s pybuild-autopkgtest PASS 1240s autopkgtest [03:10:58]: @@@@@@@@@@@@@@@@@@@@ summary 1240s pybuild-autopkgtest PASS