haskell icon indicating copy to clipboard operation
haskell copied to clipboard

Satellite requires unnatural edge case checking

Open DanRyba253 opened this issue 8 months ago • 1 comments

I feel like the first test of "satellite"

Case { description = "Empty tree"
     , preorder    = ""
     , inorder     = ""
     , expected    = Nothing
     }

should be

Case { description = "Empty tree"
     , preorder    = ""
     , inorder     = ""
     , expected    = Just Leaf
     }

Reasons:

  1. the BinaryTree type already supports empty trees, so expecting Nothing is redundant
  2. empty list is a valid inorder and preorder traversal for an empty tree, so expecting Nothing is misleading, as it indicates that an error has occured.
  3. A recursive implementation of treeFromTraversals naturally outputs Just Leaf on empty inputs, thus, satisfying the tests requires an awkward wrapper function.

DanRyba253 avatar May 27 '24 11:05 DanRyba253