anchor.diff:  % maxspeed is maximum interface throughput, considering duplex mode
   calculate_network_stats([{maxthp, Name, MaxSpeed} | CurrentNetworkStats], [{maxthp, Name, _} | NetworkStats], Stats, TimeElapsed) ->
       calculate_network_stats(CurrentNetworkStats, NetworkStats, [{<<"net_maxthp_", Name/binary>>, MaxSpeed} | Stats], TimeElapsed);
  -calculate_network_stats([{NameA, _} | CurrentNetworkStats], [{NameB, _} | NetworkStats], Stats, TimeElapsed) when NameA > NameB ->
  -    calculate_network_stats(CurrentNetworkStats, NetworkStats, Stats, TimeElapsed);
   calculate_network_stats(_, _, Stats, _) ->
       lists:reverse(Stats).
   
  
positive.code: %%--------------------------------------------------------------------
  -spec get_network_stats(NetworkStats, TimeElapsed :: float()) -> {Result, NetworkStats} when
      NetworkStats :: [{rx_b | tx_b | rx_p | tx_p, Name :: binary(), Value :: integer()}],
      Result :: [{Name :: binary(), Value :: integer() | float()}].
  get_network_stats(NetworkStats, TimeElapsed) ->
      Dir = "/sys/class/net/",
      case file:list_dir(Dir) of
  
negative.code: %% Checks whether string contains only following characters a-zA-Z0-9_
  %% @end
  %%--------------------------------------------------------------------
  -spec is_valid_name(Name :: string()) -> boolean().
  is_valid_name([]) ->
      false;
  is_valid_name([Character]) ->
      is_valid_character(Character);
  is_valid_name([Character | Characters]) ->
      is_valid_character(Character) andalso is_valid_name(Characters).
  
  
  %%--------------------------------------------------------------------
  