Testing for Dyalog APL: Ullu - Glasgow 2024

Testing for Dyalog APL: Ullu - Glasgow 2024
Slide Note
Embed
Share

A comprehensive overview of Ullu testing for Dyalog APL in Glasgow 2024. Explore the creation, testing methods, future prospects, and coverage of primitives. Discover how Ullu verifies correct results, tests edge cases, and ensures code coverage for a robust APL experience.

  • Testing
  • Dyalog APL
  • Ullu
  • Glasgow 2024
  • Primitives

Uploaded on Apr 08, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Glasgow 2024 ullu: Tests for Dyalog APL Aarush Bhat Dyalog Ltd.

  2. Coming up What is ullu? How has Dyalog been tested so far? Why and How ullu was created? What is the future of ullu? ullu: Tests for Dyalog APL 1

  3. What is ullu ullu: Tests for Dyalog APL 2

  4. Pre-ullu Standard QAs Shuffle QAs Unit Tests Fuzz tests Code Coverage tests ullu: Tests for Dyalog APL 3

  5. Versions and Platforms 6 platforms Windows, Mac, Mac/Arm, AIX, Pi, Linux, Linux/Arm(under dev) 4 versions 6 platforms 32/64 Classic/Unicode That is 63 interpreters of Dyalog APL ullu: Tests for Dyalog APL 4

  6. With ullu ullu: Tests for Dyalog APL 5

  7. What does it do? Verify correct results using fundamental scenarios Test edge cases Test all the data types possible, being reproducible and truly randomised Finally, inspect code coverage to find missing test cases ullu: Tests for Dyalog APL 6

  8. Battle testing Image generated by GPT-4o ullu: Tests for Dyalog APL 7

  9. Primitives Covered as of 1/9/24 - 11 unique (monadic ) unique mask (monadic ) index of (dyadic ) membership (dyadic ) multiply (dyadic ) add (dyadic +) divide (dyadic ) floor (monadic ) magnitude (monadic |) residue (dyadic |) subtract (dyadic -) ullu: Tests for Dyalog APL 8

  10. Next up greater (dyadic >) less (dyadic <) exponential (dyadic *) grade ( ) not equal (dyadic ) not (monadic ~) union (dyadic ) ullu: Tests for Dyalog APL 9

  11. Process Define fundamental scenarios Explore the codebase Check code coverage Check user issues Verify interpreter limits Check displayed errors Remove dead code ullu: Tests for Dyalog APL 10

  12. Model functions Unique R Y {0= : , { ,( / )/ } / 1 } Add R X+Y { -- } Magnitude R |Y { ( 1@( 0)( >0))} ullu: Tests for Dyalog APL 11

  13. Tests Unique R Y Assert ( data) data Add R X+Y RunVariations (2 data) data data Magnitude R |Y RunVariations (modelMag data) data ullu: Tests for Dyalog APL 12

  14. RunVariations Normal array (one or two datatypes mixed) Scalar Empty array Differently shaped array Testing with model Testing with completely randomised data with model ullu: Tests for Dyalog APL 13

  15. Data, more data and results 84,274 tests Lots of numbers, arrays and data elements Good news, ullu is now integrated with the standard and coverage QAs ullu: Tests for Dyalog APL 14

  16. Code coverage ullu: Tests for Dyalog APL 15

  17. Future plans Cover all primitives Work with more data Find cases that people might not hit in a 100 years Make Dyalog APL more reliable ullu: Tests for Dyalog APL 16

  18. Find ullu at: github.com/Dyalog/ullu Reach out: aarush@dyalog.com ullu: Tests for Dyalog APL 17

  19. In short, ullu is New Structured Independent A 2nd coat of paint ullu: Tests for Dyalog APL 18

  20. It is not just about finding things wrong about Dyalog APL but making us more confident when making enhancements ullu: Tests for Dyalog APL 19

More Related Content