anchor.diff:      ?assertEqual(<<"123 !~">>, validate(<<"123 !~">>)),
       ?assertEqual(<<"привет"/utf8>>, validate(<<"привет"/utf8>>)),
       ?assertEqual(<<"Χαίρετε"/utf8>>, validate(<<"Χαίρετε"/utf8>>)),
  -    ?assertEqual(<<"你好"/utf8>>, validate(<<"你好"/utf8>>)).
  +    ?assertEqual(<<"你好"/utf8>>, validate(<<"你好"/utf8>>)),
  +    ?assertError({non_valid_scram_password, _},
  +                 validate(<<"boom in the last char  ́"/utf8>>)).
   
   -endif.
positive.code: 
  %% @doc Return true if the given character is inappropriate for canonical representation
  %% as defined by https://tools.ietf.org/html/rfc3454#appendix-C.7
  is_inappropriate_for_canonical_representation_char(C) ->
      16#2FF0 =< C andalso C =< 16#2FFB.
  
  %% @doc Return true if the given character is change display properties or deprecated
  %% characters as defined by https://tools.ietf.org/html/rfc3454#appendix-C.8
  is_change_display_properties_or_deprecated_char(C) ->
      C == 16#0340
          orelse C == 16#0341
  
negative.code: 
  %% @doc Return true if the given character is a tagging character as defined by
  %% https://tools.ietf.org/html/rfc3454#appendix-C.9
  -spec is_tagging_char(char()) -> boolean().
  is_tagging_char(C) ->
      C == 16#E0001 orelse
          (16#E0020 =< C andalso C =< 16#E007F).
  