Skip to content

Instantly share code, notes, and snippets.

@sigilante
Last active July 18, 2024 20:37
Show Gist options
  • Select an option

  • Save sigilante/a5652564fa33c61dce0e3d0ca0ac1dcd to your computer and use it in GitHub Desktop.

Select an option

Save sigilante/a5652564fa33c61dce0e3d0ca0ac1dcd to your computer and use it in GitHub Desktop.
Towards a more convenient testing pattern.
/+  *test
|%
::
++  run-pair
  |=  pair=^
  ^-  (unit tang)
  :-  ~
  %+  expect-eq
    !>  -.pair
  !>  +.pair
::
++  run-fail
  |=  =(trap)
  ^-  (unit tang)
  :-  ~
  (expect-fail trap)
::
++  cases-zero
  :~  :-  0     (sub 0 0)
      :-  1     (sub 1 0)
      :-  0     (sub 20 20)
  ==
::
++  fails-zero
  :~  |.((sub 0 1))
      |.((sub 1 0))    :: passes to show effect of failed failure test
  ==
::
++  cases-one
  :~  :-  0     (sub 1 1)
      :-  1     (sub 2 1)
      :-  19    (sub 20 1)
  ==
::
++  fails-one
  :~  |.((sub 1 2))
      |.((sub 19 20))
  ==
::
++  test-zero
  ;;  tang
  %-  zing
  ;:  weld
    (murn cases-zero run-pair)
    (murn fails-zero run-fail)
  ==
::
++  test-one
  ;;  tang
  %-  zing
  ;:  weld
    (murn cases-one run-pair)
    (murn fails-one run-fail)
  ==
--
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment