added bellman-ford algorithm and tests