Some thoughts:

what do we want to test?
the lieutenants should be able to agree upon a consensus

TODO: unit tests for algms

TODO: OptionParser: --output / -o (for formatting as graph)
NOTE: visualize / graph using: https://github.com/glejeune/Ruby-Graphviz

OM(m) - Oral Message algorithm / method
SM(m) - Signed Message algorithm / method

advanced: OM(m,p) (not fully connected graph)


OM(m)
Setup:
n nodes, 1 of which is the general, and the rest (n-1) of which are lieutenants

Input:
m faulty nodes

Output: 
Value v agreed upon by the n-1 lieutenants


Acknowledgments: 
Lamport, Leslie; Robert Shostak, Marshall Pease - "The Byzantine Generals Problem": http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf
Dr. Dobbs's site helped me understand the algorithms better in the times when the above paper got too tough: http://www.drdobbs.com/cpp/the-byzantine-generals-problem/206904396
Helpful slides from Dr. Indranil Gupta's class on Advanced Topics in Distributed Systems: http://www.cs.uiuc.edu/class/sp07/cs525/slides_040507.ppt‎
Tony Arcieri, for his awesome Celluloid actor framework for Ruby