Interfaces define a contract that an implementing module will fulfill.
t.throws(interfaceStamp, new RegExp('expected error message'));
@koresar Not very performant, but looks great.
10000 runs, three unimplemented methods
3s 583.978422ms execution time for InterfaceCheck
3s 21.861021ms execution time for EmptyStamp
Not too bad, I mean we're building 10000 objects from a stamp & checking 30000 methods for implementation and are only 550ms slower (approx 10 %).