Created
September 5, 2014 13:22
-
-
Save voldern/a7d48580b7e0712c4d9e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
✓ parse single symbol | |
✓ parse boolean | |
✓ parse integer | |
✓ parse string | |
✓ parse list of symbols | |
✓ parse list of mixed types | |
✓ parse on nested list | |
✓ parse exception missing paren | |
✓ parse exception extra paren | |
✓ parse with extra whitespace | |
✓ parse comments | |
✓ parse larger example | |
✓ expand single quoted symbol | |
✓ nested quotes | |
✓ expand crazy quote combo | |
✓ expand quasiquote | |
✓ expand unquote | |
✓ expand unquotesplicing | |
✓ evaluating boolean | |
✓ evaluating integer | |
✓ evaluating string | |
✓ evaluating quote | |
✓ evaluating quasiquote | |
✓ evaluating quasiquote with unquote | |
✓ evaluating quasiquote with unquotesplicing | |
✓ evaluating atom function | |
✓ evaluating eq function | |
✓ basic math operators | |
✓ math operators only work on numbers | |
✓ nested expressions | |
✓ basic if statement | |
✓ that only correct branch is evaluated | |
✓ if with sub expressions | |
✓ joining strings | |
✓ substr | |
✓ upper | |
✓ lower | |
✓ simple lookup | |
✓ lookup on missing raises exception | |
✓ lookup from inner env | |
✓ lookup deeply nested var | |
✓ extend returns new environment | |
✓ set changes environment in place | |
✓ redefined variables illegal | |
✓ evaluating symbol | |
✓ lookup missing variable | |
✓ define | |
✓ define with wrong number of arguments | |
✓ define with nonsymbol as variable | |
✓ variable lookup after define | |
✓ lambda evaluates to lambda | |
✓ lambda closure keeps defining env | |
✓ lambda closure holds function | |
✓ lambda arguments are list | |
✓ lambda number of arguments | |
✓ lambda variable nubmber of arguments | |
✓ lambda fails on invalid argument definition | |
✓ defining lambda with error in body | |
✓ evaluating call to closure | |
✓ evaluating call to closure with arguments | |
✓ evaluating call to closure with variable list of arguments | |
✓ call to function should evaluate arguments | |
✓ evaluating call to closure with free variables | |
✓ calling very simple function in environment | |
✓ calling lambda directly | |
✓ calling complex expression which evaluates to function | |
✓ calling atom raises exception | |
✓ test make sure arguments to functions are evaluated | |
✓ calling with wrong number of arguments | |
✓ calling function recursively | |
✓ creating lists by quoting | |
✓ creating list with cons | |
✓ creating longer lists with only cons | |
✓ getting first element from list | |
✓ getting first element from empty list | |
✓ getting tail of list | |
✓ checking whether list is empty | |
✓ creating list using list | |
✓ appending one list to another | |
✓ defining and evaluating simple macro | |
✓ defining and evaluating simple expanding macro | |
✓ defining and evaluating unquotesplicing macro | |
✓ defining macro outside of top level should fail | |
✓ not | |
✓ or | |
✓ and | |
✓ xor | |
✓ greater or equal | |
✓ less or equal | |
✓ sum | |
✓ length | |
✓ filter | |
✓ map | |
✓ reverse | |
✓ range | |
✓ sort | |
✓ capitalize | |
# tests 195 | |
# pass 195 | |
✓ ok |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment