Repository: aeon-toolkit/aeon
Pull request #733 (2023-09-08 11:53:09)

[ENH] Improve coverage for datasets module
#### Reference Issues/PRs
part of #664 
See https://github.com/aeon-toolkit/aeon/issues/732
#### What does this implement/fix? Explain your changes.

improve coverage for datasets module, and fix occasion edge case bug (or raise an issue, see #732 )

note that anything that interacts with timeseriesclassification.com will switch on PR_TESTING so it only runs on overnighters. 


Patch:
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 4c10b21a..c3b40003 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -1,7 +1,7 @@
 # Contributors
 
 <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
-[![All Contributors](https://img.shields.io/badge/all_contributors-210-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-211-orange.svg)](#contributors)
 <!-- ALL-CONTRIBUTORS-BADGE:END -->
 
 This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -215,15 +215,16 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
     </tr>
     <tr>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/khrapovs"><img src="https://avatars.githubusercontent.com/u/3774663?v=4?s=80" width="80px;" alt="Stanislav Khrapov"/><br /><sub><b>Stanislav Khrapov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=khrapovs" title="Code">💻</a></td>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/steenrotsman"><img src="https://avatars.githubusercontent.com/u/78110080?s=400&v=4?s=80" width="80px;" alt="Stijn Rotman"/><br /><sub><b>Stijn Rotman</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=steenrotsman" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/SveaMeyer13"><img src="https://avatars.githubusercontent.com/u/46671894?v=4?s=80" width="80px;" alt="Svea Marie Meyer"/><br /><sub><b>Svea Marie Meyer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=SveaMeyer13" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=SveaMeyer13" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/sylvaincom"><img src="https://avatars.githubusercontent.com/u/48064216?v=4?s=80" width="80px;" alt="Sylvain Combettes"/><br /><sub><b>Sylvain Combettes</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=sylvaincom" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Asylvaincom" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/TNTran92"><img src="https://avatars.githubusercontent.com/u/55965636?v=4?s=80" width="80px;" alt="TNTran92"/><br /><sub><b>TNTran92</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=TNTran92" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://thayeylolu.github.io/portfolio/"><img src="https://avatars.githubusercontent.com/u/13348874?v=4?s=80" width="80px;" alt="Taiwo Owoseni"/><br /><sub><b>Taiwo Owoseni</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=thayeylolu" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/lnthach"><img src="https://avatars0.githubusercontent.com/u/7788363?v=4?s=80" width="80px;" alt="Thach Le Nguyen"/><br /><sub><b>Thach Le Nguyen</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=lnthach" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=lnthach" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/mathco-wf"><img src="https://avatars.githubusercontent.com/mathco-wf?s=80" width="80px;" alt="TheMathcompay Widget Factory Team"/><br /><sub><b>TheMathcompay Widget Factory Team</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=mathco-wf" title="Documentation">📖</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/tombh"><img src="https://avatars.githubusercontent.com/u/160835?s=80&v=4?s=80" width="80px;" alt="Thomas Buckley-Houston"/><br /><sub><b>Thomas Buckley-Houston</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Atombh" title="Bug reports">🐛</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/tombh"><img src="https://avatars.githubusercontent.com/u/160835?s=80&v=4?s=80" width="80px;" alt="Thomas Buckley-Houston"/><br /><sub><b>Thomas Buckley-Houston</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Atombh" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xxl4tomxu98"><img src="https://avatars.githubusercontent.com/u/62292177?s=40&v=4?s=80" width="80px;" alt="Tom Xu"/><br /><sub><b>Tom Xu</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xxl4tomxu98" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=xxl4tomxu98" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/tch"><img src="https://avatars3.githubusercontent.com/u/184076?v=4?s=80" width="80px;" alt="Tomasz Chodakowski"/><br /><sub><b>Tomasz Chodakowski</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=tch" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=tch" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Atch" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="http://www.timeseriesclassification.com"><img src="https://avatars1.githubusercontent.com/u/9594042?v=4?s=80" width="80px;" alt="Tony Bagnall"/><br /><sub><b>Tony Bagnall</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=TonyBagnall" title="Code">💻</a> <a href="#business-TonyBagnall" title="Business development">💼</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=TonyBagnall" title="Documentation">📖</a> <a href="#design-TonyBagnall" title="Design">🎨</a> <a href="#eventOrganizing-TonyBagnall" title="Event Organizing">📋</a> <a href="#fundingFinding-TonyBagnall" title="Funding Finding">🔍</a> <a href="#ideas-TonyBagnall" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-TonyBagnall" title="Project Management">📆</a> <a href="#question-TonyBagnall" title="Answering Questions">💬</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3ATonyBagnall" title="Reviewed Pull Requests">👀</a> <a href="#talk-TonyBagnall" title="Talks">📢</a> <a href="#data-TonyBagnall" title="Data">🔣</a></td>
@@ -231,9 +232,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/victordremov"><img src="https://avatars.githubusercontent.com/u/32140716?s=80" width="80px;" alt="Viktor Dremov"/><br /><sub><b>Viktor Dremov</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=victordremov" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ViktorKaz"><img src="https://avatars0.githubusercontent.com/u/33499138?v=4?s=80" width="80px;" alt="ViktorKaz"/><br /><sub><b>ViktorKaz</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ViktorKaz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=ViktorKaz" title="Documentation">📖</a> <a href="#design-ViktorKaz" title="Design">🎨</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/VyomkeshVyas"><img src="https://avatars.githubusercontent.com/u/110027694?v=4?s=80" width="80px;" alt="Vyomkesh Vyas"/><br /><sub><b>Vyomkesh Vyas</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Documentation">📖</a> <a href="#example-VyomkeshVyas" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=VyomkeshVyas" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/templierw/"><img src="https://github.com/templierw.png?s=80" width="80px;" alt="William Templier"/><br /><sub><b>William Templier</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=templierw" title="Documentation">📖</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/templierw/"><img src="https://github.com/templierw.png?s=80" width="80px;" alt="William Templier"/><br /><sub><b>William Templier</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=templierw" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/magittan"><img src="https://avatars0.githubusercontent.com/u/14024202?v=4?s=80" width="80px;" alt="William Zheng"/><br /><sub><b>William Zheng</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=magittan" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=magittan" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/yairbeer"><img src="https://avatars.githubusercontent.com/yairbeer?s=80" width="80px;" alt="Yair Beer"/><br /><sub><b>Yair Beer</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=yairbeer" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/yashlamba"><img src="https://avatars.githubusercontent.com/u/44164398?v=4?s=80" width="80px;" alt="Yash Lamba"/><br /><sub><b>Yash Lamba</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=yashlamba" title="Code">💻</a></td>
@@ -241,9 +242,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/ZiyaoWei"><img src="https://avatars.githubusercontent.com/u/940823?v=4?s=80" width="80px;" alt="Ziyao Wei"/><br /><sub><b>Ziyao Wei</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=ZiyaoWei" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/aa25desh"><img src="https://avatars1.githubusercontent.com/u/29518290?v=4?s=80" width="80px;" alt="aa25desh"/><br /><sub><b>aa25desh</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=aa25desh" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aaa25desh" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/abandus"><img src="https://avatars2.githubusercontent.com/u/46486474?v=4?s=80" width="80px;" alt="abandus"/><br /><sub><b>abandus</b></sub></a><br /><a href="#ideas-abandus" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=abandus" title="Code">💻</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/adoherty21"><img src="https://avatars.githubusercontent.com/u/52799751?s=400&v=4?s=80" width="80px;" alt="adoherty21"/><br /><sub><b>adoherty21</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aadoherty21" title="Bug reports">🐛</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/adoherty21"><img src="https://avatars.githubusercontent.com/u/52799751?s=400&v=4?s=80" width="80px;" alt="adoherty21"/><br /><sub><b>adoherty21</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Aadoherty21" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/bethrice44"><img src="https://avatars.githubusercontent.com/u/11226988?v=4?s=80" width="80px;" alt="bethrice44"/><br /><sub><b>bethrice44</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Abethrice44" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=bethrice44" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Abethrice44" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=bethrice44" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/big-o"><img src="https://avatars1.githubusercontent.com/u/1134151?v=4?s=80" width="80px;" alt="big-o"/><br /><sub><b>big-o</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=big-o" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=big-o" title="Tests">⚠️</a> <a href="#design-big-o" title="Design">🎨</a> <a href="#ideas-big-o" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Abig-o" title="Reviewed Pull Requests">👀</a> <a href="#tutorial-big-o" title="Tutorials">✅</a> <a href="#mentoring-big-o" title="Mentoring">🧑‍🏫</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/bobbys-dev"><img src="https://avatars.githubusercontent.com/bobbys-dev?s=80" width="80px;" alt="bobbys"/><br /><sub><b>bobbys</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=bobbys-dev" title="Code">💻</a></td>
@@ -251,9 +252,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/btrtts"><img src="https://avatars3.githubusercontent.com/u/66252156?v=4?s=80" width="80px;" alt="btrtts"/><br /><sub><b>btrtts</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=btrtts" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/chizzi25"><img src="https://avatars3.githubusercontent.com/u/67911243?v=4?s=80" width="80px;" alt="chizzi25"/><br /><sub><b>chizzi25</b></sub></a><br /><a href="#blog-chizzi25" title="Blogposts">📝</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/chrisholder"><img src="https://avatars.githubusercontent.com/u/4674372?v=4?s=80" width="80px;" alt="chrisholder"/><br /><sub><b>chrisholder</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Tests">⚠️</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=chrisholder" title="Documentation">📖</a> <a href="#design-chrisholder" title="Design">🎨</a> <a href="#example-chrisholder" title="Examples">💡</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Achrisholder" title="Bug reports">🐛</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/danbartl"><img src="https://avatars.githubusercontent.com/u/19947407?v=4?s=80" width="80px;" alt="danbartl"/><br /><sub><b>danbartl</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Adanbartl" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Adanbartl" title="Reviewed Pull Requests">👀</a> <a href="#talk-danbartl" title="Talks">📢</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Tests">⚠️</a> <a href="#tutorial-danbartl" title="Tutorials">✅</a> <a href="#video-danbartl" title="Videos">📹</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/danbartl"><img src="https://avatars.githubusercontent.com/u/19947407?v=4?s=80" width="80px;" alt="danbartl"/><br /><sub><b>danbartl</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Adanbartl" title="Bug reports">🐛</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/pulls?q=is%3Apr+reviewed-by%3Adanbartl" title="Reviewed Pull Requests">👀</a> <a href="#talk-danbartl" title="Talks">📢</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=danbartl" title="Tests">⚠️</a> <a href="#tutorial-danbartl" title="Tutorials">✅</a> <a href="#video-danbartl" title="Videos">📹</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/hamzahiqb"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=80" width="80px;" alt="hamzahiqb"/><br /><sub><b>hamzahiqb</b></sub></a><br /><a href="#infra-hamzahiqb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/hiqbal2"><img src="https://avatars3.githubusercontent.com/u/10302415?v=4?s=80" width="80px;" alt="hiqbal2"/><br /><sub><b>hiqbal2</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=hiqbal2" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/jesellier"><img src="https://avatars0.githubusercontent.com/u/51952076?v=4?s=80" width="80px;" alt="jesellier"/><br /><sub><b>jesellier</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=jesellier" title="Code">💻</a></td>
@@ -261,9 +262,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/kkoziara"><img src="https://avatars1.githubusercontent.com/u/4346849?v=4?s=80" width="80px;" alt="kkoziara"/><br /><sub><b>kkoziara</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=kkoziara" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Akkoziara" title="Bug reports">🐛</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/matteogales"><img src="https://avatars0.githubusercontent.com/u/9269326?v=4?s=80" width="80px;" alt="matteogales"/><br /><sub><b>matteogales</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=matteogales" title="Code">💻</a> <a href="#design-matteogales" title="Design">🎨</a> <a href="#ideas-matteogales" title="Ideas, Planning, & Feedback">🤔</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/oleskiewicz"><img src="https://avatars1.githubusercontent.com/u/5682158?v=4?s=80" width="80px;" alt="oleskiewicz"/><br /><sub><b>oleskiewicz</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Documentation">📖</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=oleskiewicz" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/pabworks"><img src="https://avatars.githubusercontent.com/u/32725127?v=4?s=80" width="80px;" alt="pabworks"/><br /><sub><b>pabworks</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Tests">⚠️</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/pabworks"><img src="https://avatars.githubusercontent.com/u/32725127?v=4?s=80" width="80px;" alt="pabworks"/><br /><sub><b>pabworks</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=pabworks" title="Tests">⚠️</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xloem"><img src="https://avatars.githubusercontent.com/u/279585?v=4?s=80" width="80px;" alt="patiently pending world peace"/><br /><sub><b>patiently pending world peace</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xloem" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/raishubham1"><img src="https://avatars3.githubusercontent.com/u/29356417?v=4?s=80" width="80px;" alt="raishubham1"/><br /><sub><b>raishubham1</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=raishubham1" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/simone-pignotti"><img src="https://avatars1.githubusercontent.com/u/44410066?v=4?s=80" width="80px;" alt="simone-pignotti"/><br /><sub><b>simone-pignotti</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=simone-pignotti" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/issues?q=author%3Asimone-pignotti" title="Bug reports">🐛</a></td>
@@ -271,9 +272,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/sri1419"><img src="https://avatars2.githubusercontent.com/u/65078278?v=4?s=80" width="80px;" alt="sri1419"/><br /><sub><b>sri1419</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=sri1419" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/tensorflow-as-tf"><img src="https://avatars.githubusercontent.com/u/51345718?v=4?s=80" width="80px;" alt="tensorflow-as-tf"/><br /><sub><b>tensorflow-as-tf</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=tensorflow-as-tf" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/vedazeren"><img src="https://avatars3.githubusercontent.com/u/63582874?v=4?s=80" width="80px;" alt="vedazeren"/><br /><sub><b>vedazeren</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Code">💻</a> <a href="https://github.com/aeon-toolkit/aeon/commits?author=vedazeren" title="Tests">⚠️</a></td>
-      <td align="center" valign="top" width="12.5%"><a href="https://github.com/vincent-nich12"><img src="https://avatars3.githubusercontent.com/u/36476633?v=4?s=80" width="80px;" alt="vincent-nich12"/><br /><sub><b>vincent-nich12</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vincent-nich12" title="Code">💻</a></td>
     </tr>
     <tr>
+      <td align="center" valign="top" width="12.5%"><a href="https://github.com/vincent-nich12"><img src="https://avatars3.githubusercontent.com/u/36476633?v=4?s=80" width="80px;" alt="vincent-nich12"/><br /><sub><b>vincent-nich12</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vincent-nich12" title="Code">💻</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/vollmersj"><img src="https://avatars2.githubusercontent.com/u/12613127?v=4?s=80" width="80px;" alt="vollmersj"/><br /><sub><b>vollmersj</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=vollmersj" title="Documentation">📖</a></td>
       <td align="center" valign="top" width="12.5%"><a href="https://github.com/xiaobenbenecho"><img src="https://avatars.githubusercontent.com/u/17461849?v=4?s=80" width="80px;" alt="xiaobenbenecho"/><br /><sub><b>xiaobenbenecho</b></sub></a><br /><a href="https://github.com/aeon-toolkit/aeon/commits?author=xiaobenbenecho" title="Code">💻</a></td>
     </tr>
diff --git a/aeon/datasets/_data_loaders.py b/aeon/datasets/_data_loaders.py
index bec5ac10..45459874 100644
--- a/aeon/datasets/_data_loaders.py
+++ b/aeon/datasets/_data_loaders.py
@@ -1100,21 +1100,21 @@ def load_forecasting(name, extract_path=None, return_metadata=True):
     # Check if data already in extract path or, if extract_path None,
     # in datasets/data directory
     if name not in list_downloaded_tsf_datasets(extract_path):
-        if extract_path is None:
-            local_dirname = "local_data"
-        if not os.path.exists(os.path.join(local_module, local_dirname)):
-            os.makedirs(os.path.join(local_module, local_dirname))
-        if name not in list_downloaded_tsc_tsr_datasets(
+        # Dataset is not already present in the datasets directory provided.
+        # If it is not there, download and install it.
+        if name in tsf_all.keys():
+            id = tsf_all[name]
+            if extract_path is None:
+                local_dirname = "local_data"
+            if not os.path.exists(os.path.join(local_module, local_dirname)):
+                os.makedirs(os.path.join(local_module, local_dirname))
+        else:
+            raise ValueError(
+                f"File name {name} is not in the list of valid files to download"
+            )
+        if name not in list_downloaded_tsf_datasets(
             os.path.join(local_module, local_dirname)
         ):
-            # Dataset is not already present in the datasets directory provided.
-            # If it is not there, download and install it.
-            if name in tsf_all.keys():
-                id = tsf_all[name]
-            else:
-                raise ValueError(
-                    f"File name {name} is not in the list of valid files to download"
-                )
             url = f"https://zenodo.org/record/{id}/files/{name}.zip"
             file_save = f"{local_module}/{local_dirname}/{name}.zip"
             if not os.path.exists(file_save):
@@ -1185,10 +1185,16 @@ def load_regression(name, split=None, extract_path=None, return_metadata=True):
     if not os.path.exists(os.path.join(local_module, local_dirname)):
         os.makedirs(os.path.join(local_module, local_dirname))
     if name not in list_downloaded_tsc_tsr_datasets(extract_path):
-        if extract_path is None:
-            local_dirname = "local_data"
-        if not os.path.exists(os.path.join(local_module, local_dirname)):
-            os.makedirs(os.path.join(local_module, local_dirname))
+        if name in tser_all.keys():
+            id = tser_all[name]
+            if extract_path is None:
+                local_dirname = "local_data"
+            if not os.path.exists(os.path.join(local_module, local_dirname)):
+                os.makedirs(os.path.join(local_module, local_dirname))
+        else:
+            raise ValueError(
+                f"File name {name} is not in the list of valid files to download"
+            )
         if name not in list_downloaded_tsc_tsr_datasets(
             os.path.join(local_module, local_dirname)
         ):
diff --git a/aeon/datasets/_data_writers.py b/aeon/datasets/_data_writers.py
index d5d69617..2e65c26f 100644
--- a/aeon/datasets/_data_writers.py
+++ b/aeon/datasets/_data_writers.py
@@ -107,14 +107,15 @@ def _write_data_to_tsfile(
     """
     # ensure data provided is a ndarray
     if not isinstance(X, np.ndarray) and not isinstance(X, list):
-        raise ValueError("Data provided must be a ndarray or a list")
+        raise TypeError("Data provided must be a ndarray or a list")
     class_labels = None
-    if y is not None and not regression:
+    if y is not None:
         # ensure number of cases is same as the class value list
         if len(X) != len(y):
             raise IndexError(
-                "The number of cases is not the same as the number of  class values"
+                "The number of cases in X does not match the number of values in y"
             )
+    if not regression:
         class_labels = np.unique(y)
     n_cases = len(X)
     n_channels = len(X[0])
@@ -303,7 +304,7 @@ def _write_header(
     if suffix is not None:
         load_path = load_path + suffix
     if extension is not None:
-        load_path = load_path + suffix + extension
+        load_path = load_path + extension
     file = open(load_path, "w")
     # write comment if any as a block at start of file
     if comment is not None:
@@ -323,10 +324,8 @@ def _write_header(
         file.write(f"@classLabel true {space_separated_class_label}\n")
     else:
         file.write("@classLabel false\n")
-        if regression:
+        if regression:  # or if a regresssion problem, write target label
             file.write("@targetlabel true\n")
-
-    # or if a regresssion problem, write target label
     file.write("@data\n")
     return file
 
@@ -359,9 +358,9 @@ def _write_dataframe_to_tsfile(
         regression=regression,
         extension=None,
     )
-    n_cases, n_dimensions = X.shape
+    n_cases, n_channels = X.shape
     for i in range(0, n_cases):
-        for j in range(0, n_dimensions):
+        for j in range(0, n_channels):
             series = X.iloc[i, j]
             for k in range(0, series.size - 1):
                 file.write(f"{series[k]},")


Test patch:
diff --git a/aeon/datasets/tests/test_data_loaders.py b/aeon/datasets/tests/test_data_loaders.py
index fdae04da..001b72c3 100644
--- a/aeon/datasets/tests/test_data_loaders.py
+++ b/aeon/datasets/tests/test_data_loaders.py
@@ -6,6 +6,7 @@ __author__ = ["SebasKoel", "Emiliathewolf", "TonyBagnall", "jasonlines", "achiev
 __all__ = []
 
 import os
+import shutil
 
 import numpy as np
 import pandas as pd
@@ -37,7 +38,83 @@ from aeon.datasets._data_loaders import (
     _load_header_info,
     _load_saved_dataset,
 )
-from aeon.datatypes import check_is_mtype
+from aeon.tests._config import PR_TESTING
+
+
+@pytest.mark.skipif(
+    PR_TESTING,
+    reason="Only run on overnights because of intermittent fail for read/write",
+)
+def test_load_forecasting_from_repo():
+    name = "FOO"
+    with pytest.raises(
+        ValueError, match=f"File name {name} is not in the list of " f"valid files"
+    ):
+        load_forecasting(name)
+    name = "m1_quarterly_dataset"
+    data, meta = load_forecasting(name)
+    assert isinstance(data, pd.DataFrame)
+    assert isinstance(meta, dict)
+    assert meta["frequency"] == "quarterly"
+    assert meta["forecast_horizon"] == 8
+    assert not meta["contain_missing_values"]
+    assert not meta["contain_equal_length"]
+
+    shutil.rmtree(os.path.dirname(__file__) + "/../local_data")
+
+
+@pytest.mark.skipif(
+    PR_TESTING,
+    reason="Only run on overnights because of intermittent fail for read/write",
+)
+def test_load_classification_from_repo():
+    name = "FOO"
+    with pytest.raises(
+        ValueError, match=f"dataset name ={name} is not available on extract path"
+    ):
+        load_classification(name)
+    name = "SonyAIBORobotSurface1"
+    X, y, meta = load_classification(name)
+    assert isinstance(X, np.ndarray)
+    assert isinstance(y, np.ndarray)
+    assert isinstance(meta, dict)
+    assert len(X) == len(y)
+    assert X.shape == (621, 1, 70)
+    assert meta["problemname"] == "sonyaiborobotsurface1"
+    assert not meta["timestamps"]
+    assert meta["univariate"]
+    assert meta["equallength"]
+    assert meta["classlabel"]
+    assert not meta["targetlabel"]
+    assert meta["class_values"] == ["1", "2"]
+    shutil.rmtree(os.path.dirname(__file__) + "/../local_data")
+
+
+@pytest.mark.skipif(
+    PR_TESTING,
+    reason="Only run on overnights because of intermittent fail for read/write",
+)
+def test_load_regression_from_repo():
+    name = "FOO"
+    with pytest.raises(
+        ValueError, match=f"File name {name} is not in the list of " f"valid files"
+    ):
+        load_regression(name)
+    name = "FloodModeling1"
+    X, y, meta = load_regression(name)
+    assert isinstance(X, np.ndarray)
+    assert isinstance(y, np.ndarray)
+    assert isinstance(meta, dict)
+    assert len(X) == len(y)
+    assert X.shape == (673, 1, 266)
+    assert meta["problemname"] == "floodmodeling1"
+    assert not meta["timestamps"]
+    assert meta["univariate"]
+    assert meta["equallength"]
+    assert not meta["classlabel"]
+    assert meta["targetlabel"]
+    assert meta["class_values"] == []
+    shutil.rmtree(os.path.dirname(__file__) + "/../local_data")
 
 
 def test__alias_datatype_check():
@@ -438,11 +515,18 @@ def test_load_tsf_to_dataframe(input_path, return_type, output_df):
     }
 
     df, metadata = load_tsf_to_dataframe(data_path, return_type=return_type)
-
+    assert isinstance(df, pd.DataFrame)
+    assert isinstance(metadata, dict)
     assert_frame_equal(df, output_df, check_dtype=False)
     assert metadata == expected_metadata
-    if return_type != "default_tsf":
-        assert check_is_mtype(obj=df, mtype=return_type)
+    # default_tsf"
+    #    assert check_is_mtype(obj=df, mtype=return_type)
+    if return_type == "default_tsf":
+        assert isinstance(df, pd.DataFrame)
+    elif return_type == "pd-multiindex":
+        assert isinstance(df.index, pd.MultiIndex)
+    elif return_type == "pd_multiindex_hier":
+        assert df.index.nlevels > 1
 
 
 def test_load_from_tsf_file():
@@ -477,6 +561,8 @@ def test_load_forecasting():
         os.path.dirname(aeon.__file__),
         "datasets/data/UnitTest/",
     )
+    df = load_forecasting("m1_yearly_dataset", return_metadata=False)
+    assert df.shape == (181, 3)
     with pytest.raises(ValueError):
         X, y, meta = load_forecasting("FOOBAR", extract_path=data_path)
 
@@ -629,9 +715,15 @@ def test_load_from_arff():
     X, y = _load_saved_dataset("GunPoint", split="TRAIN")
     data_path = MODULE + "/" + DIRNAME + "/GunPoint/GunPoint_TRAIN.arff"
     X2, y2 = load_from_arff_file(data_path)
+    assert isinstance(X2, np.ndarray)
+    assert isinstance(y2, np.ndarray)
+    assert X.shape == X2.shape
+    assert len(X2) == len(y2)
     np.testing.assert_array_almost_equal(X, X2, decimal=4)
     assert np.array_equal(y, y2)
     X, y = _load_saved_dataset("BasicMotions", split="TRAIN")
     data_path = MODULE + "/" + DIRNAME + "/BasicMotions/BasicMotions_TRAIN.arff"
     X2, y2 = load_from_arff_file(data_path)
+    assert isinstance(X, np.ndarray)
+    assert isinstance(y2, np.ndarray)
     np.testing.assert_array_almost_equal(X, X2, decimal=4)
diff --git a/aeon/datasets/tests/test_single_problem_loaders.py b/aeon/datasets/tests/test_single_problem_loaders.py
index 3e82824d..5602b44e 100644
--- a/aeon/datasets/tests/test_single_problem_loaders.py
+++ b/aeon/datasets/tests/test_single_problem_loaders.py
@@ -8,6 +8,7 @@ from aeon.datasets import (  # Univariate; Unequal length; Multivariate
     load_acsf1,
     load_arrow_head,
     load_basic_motions,
+    load_covid_3month,
     load_italy_power_demand,
     load_japanese_vowels,
     load_osuleaf,
@@ -84,3 +85,18 @@ def test_load_solar():
     solar = load_solar(api_version="WRONG")
     assert type(solar) == pd.Series
     assert solar.shape == (289,)
+    solar = load_solar(api_version=None, return_full_df=True)
+    assert solar.name == "solar_gen"
+    solar = load_solar(api_version=None, normalise=False)
+    assert solar.name == "solar_gen"
+
+
+def test_load_covid_3month():
+    """Test load covid 3 month."""
+    X, y = load_covid_3month()
+    assert isinstance(X, np.ndarray)
+    assert len(X) == len(y)
+    assert X.shape == (201, 1, 84)
+    assert isinstance(y, np.ndarray)
+    X = load_covid_3month(return_X_y=False)
+    assert isinstance(X, pd.DataFrame)