Commit graph

36 commits

Author SHA1 Message Date
1222f64d82 kata: add sample Makefile to launch tests 2020-11-09 11:49:25 +01:00
0a4966ae95 calculator: add executable calculator
It can both evaluate and print the given expression.

It uses `click` to parse its CLI options.
2020-11-09 11:49:25 +01:00
2f240fa78c calculator: update Pipenv files 2020-11-09 11:49:25 +01:00
f77f7b9ed7 calculator: add printer visitor 2020-11-09 11:49:25 +01:00
2ac7ce0520 calculator: add infix parser 2019-11-30 18:08:15 +01:00
425733deca calculator: add prefix parser 2019-11-30 17:37:55 +01:00
220e70ab33 calculator: add postfix parser 2019-11-30 17:32:57 +01:00
2490e1a5bd calculator: use commonly defined operations 2019-11-30 17:29:09 +01:00
f103adddac calculator: add an evaluation visitor
The `calculator.eval` module defines an `Evaluator` visitor for the AST
hierarchy.
2019-11-30 15:21:42 +01:00
5ea82de840 calculator: add initial AST implementation
The AST's class hierarchy is defined inside the `calculator.ast` module.

An abstract visitor is defined inside the `calculator.ast.visit`
package.
2019-11-30 15:21:04 +01:00
e7c70bd6a5 calculator: add Pipenv files 2019-11-30 15:15:47 +01:00
f9a9ffaaf5 fizzbuzz: always order fizzbuzzer output words 2019-11-30 12:08:18 +01:00
a48f7877d9 fizzbuzz: add fizzbuzzer custom function creator 2019-11-30 12:04:57 +01:00
6159d12cff fizzbuzz: add working fizzbuzz implementation 2019-11-30 11:53:54 +01:00
bbba7507c6 fizzbuzz: add initial executable 2019-11-30 11:36:58 +01:00
927558fd7a fizzbuzz: add Pipenv files 2019-11-30 11:36:33 +01:00
4487269ab6 rover: add exception on unknown Commander command 2019-11-28 16:21:40 +01:00
b4ecee8c44 rover: add pytest-mypy to Pipfile 2019-11-16 04:28:08 +01:00
41adeb39d2 rover: add return type annotation to methods 2019-11-16 04:27:41 +01:00
7352207636 rover: add rover starting on obstacle validation 2019-11-16 04:26:24 +01:00
39d1fcd5ac rover: add non-oversize position validation 2019-11-16 04:25:28 +01:00
1fbf7ece7c rover: add non-negative coordinate validation 2019-11-16 04:24:02 +01:00
ce0241b3f4 rover: add obstacle detection to Commander 2019-11-16 03:19:50 +01:00
556acf8095 rover: add parse_exectute method to Commander 2019-11-16 03:02:53 +01:00
81dca25a4f rover: add Commander class 2019-11-15 21:32:55 +01:00
4a79fd4c7f rover: add turn methods to Rover class 2019-11-15 21:29:37 +01:00
af803b642a rover: add backward method 2019-11-15 21:20:42 +01:00
c96f44332c rover: wrap when going over planet size 2019-11-15 21:14:42 +01:00
24b3f63d3c rover: wrap when going negative 2019-11-15 21:12:51 +01:00
d9bf239c39 rover: use direction when going forward 2019-11-15 21:12:07 +01:00
add6940dce rover: use Pydantic for Vector and Rover classes
Pydantic is similar to Dataclasses, but enables run-time type-checking.
2019-11-15 21:04:16 +01:00
0f1b861eee rover: add direction field to Rover 2019-11-15 20:43:59 +01:00
b6d74b24eb rover: define default values for Rover fields 2019-11-15 20:35:19 +01:00
b90f92e557 rover: use real Vector class 2019-11-15 20:34:34 +01:00
ca35c2bf94 rover: initial class definition 2019-11-15 20:29:06 +01:00
aec0c6c3fc rover: add Pipenv files 2019-11-15 20:22:29 +01:00