anchor.diff:  
   -include_lib("eunit/include/eunit.hrl").
   
  --define(ASSERT_UP(Node), ?assertMatch({online, {available, _}}, ?NS:status(Node)) ).
  --define(ASSERT_IDLE(Node), ?assertMatch({online, {unavailable, _}}, ?NS:status(Node)) ).
  --define(ASSERT_DOWN(Node), ?assertMatch({offline, {unavailable, _}}, ?NS:status(Node)) ).
  +-define(ASSERT_AVAILABLE(Node), ?assertMatch({online, {available, _}}, ?NS:status(Node)) ).
  +-define(ASSERT_UNAVAILABLE(Node), ?assertMatch({online, {unavailable, _}}, ?NS:status(Node)) ).
  +-define(ASSERT_OFFLINE(Node), ?assertMatch({offline, {unavailable, _}}, ?NS:status(Node)) ).
   
   basic_setup() ->
       test_util:start_apps(),
  
positive.code:                        ?NS:heartbeat(?NODE),
                         heartbeat_step(?NODE, ?HB_INTERVAL, 3),
                         ?NS:aborted(?NODE),
                         ?ASSERT_UP(?NODE)
                 end}
        end,
        fun(_) ->
  
negative.code:                        ?NS:watch(?NODE),
                         heartbeat_step(?NODE, ?HB_INTERVAL, 3),
                         ?NS:aborted(?NODE),
                         ?ASSERT_AVAILABLE(?NODE),
  
                         timer:sleep(?HB_INTERVAL*7),
                         pushy_node_stats:scan(),
                         timer:sleep(?HB_INTERVAL),
                         ?ASSERT_OFFLINE(?NODE)
  
                         %assertReceive({down, ?NODE})
                 end}
  