Skip to content

Satellite requires unnatural edge case checking #1259

Open
@DanRyba253

Description

@DanRyba253

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions