anchor.diff:     cucumber:run(f18A_cucumber,{strings,?FEATURE}),
   
      Trace = trace:stop(),
  -   T     = trace:extract(Trace,f18A,n406),
      T2    = trace:extract(Trace,scenario2),
   
  -   ?debugFmt("TRACE: ~p",[T]),
      ?assertEqual([n406_initialise,n406_reset,n406_step,n406_verify],T2).
   
  
positive.code:                   "",
                    "Scenario: N406", 
                    "   Given  Node 406 is initialised from ../cucumber/N406.bin",
                    "     And  Node 406 is reset",
                    "     And  Node 406 is stepped 5 times",
                    "    Then  Trace should match N406.trace"
                  ]).
  
  -record(context,{ node
  
negative.code: step(Context,given,Condition) ->
     initialise(Context,re:run(Condition,"^Node ([0-9]{3}) is initialised from (.*)$",[{capture,all_but_first,list}]));
  
  step(Context,'and',"Node 000 listening on RIGHT") ->
      listen(Context);
  
  step(Context,'and',"Node 406 is reset") ->
      reset(Context);
  
  step(Context,'and',"Node 406 is stepped 19 times") ->
      step_impl(Context,32);
  
  step(Context,then,"Trace should match N406.trace") ->
      verify(Context);
  
  step(Context,'and',"Node 000 should have received [6,8]") ->
      n000 ! stop,
      ?assertEqual([6,8],receive {rx,L} -> L end),
      Context.
  
  
  % INTERNAL
  
  