anchor.diff:       ?_assertEqual(<<"<sip:p1.example.com;lr>">>,
                      format('route', address(<<>>, <<"sip:p1.example.com;lr">>, []))),
   
  +     % Server
        ?_assertEqual(<<"HomeServer v2">>, parse('server', <<"HomeServer v2">>)),
        ?_assertEqual(<<"HomeServer v2">>, format('server', <<"HomeServer v2">>)),
  +     
  +     % Subject
  +     ?_assertEqual(<<"Need more boxes">>, parse('subject', <<"Need more boxes">>)),
  +     ?_assertEqual(<<"Need more boxes">>, format('subject', <<"Need more boxes">>)),
  +     
   
        % To
        ?_assertEqual(address(<<"Bob Zert">>, <<"sip:bob@biloxi.com">>, [{'tag', <<"1928301774">>}]),
  
positive.code:                     {'from', <<"sip:alice@localhost">>}, {'to', <<"sip:bob@localhost">>},
                      {'call-id', <<"callid">>}, {'contact', <<"Alice <sip:example.com>">>},
                      {'supported', <<"100rel">>}, {'content-encoding', <<"gzip">>},
                      {'content-type', <<"application/sdp">>}],
                     parse_headers(<<"l: 5\r\nv: SIP/2.0/UDP localhost\r\n",
                                     "f: sip:alice@localhost\r\nt: sip:bob@localhost\r\n",
                                     "i: callid\r\nm: Alice <sip:example.com>\r\n",
                                     "k: 100rel\r\ne: gzip\r\n",
                                     "c: application/sdp\r\n">>)),
       % multi-line headers
       ?_assertEqual([{'subject', <<"I know you're there, pick up the phone and talk to me!">>}],
                     parse_headers(<<"Subject: I know you're there,\r\n               pick up the phone   \r\n               and talk to me!\r\n">>)),
  
negative.code:                             sip_uri:parse(<<"sip:alice@atlanta.com">>),
                              [{param, <<"value">>}]),
                      <<>>},
                     parse_address(<<"sip:alice@atlanta.com;param=value">>, fun parse_generic_param/2))
      ].
  
  -spec utility_test_() -> list().
  