Added lots of unit tests

following the definition of the language