Testing UTF16/32测试用例(需要阴性测试用例)

Testing UTF16/32测试用例(需要阴性测试用例),testing,unicode,utf-8,utf-16,utf-32,Testing,Unicode,Utf 8,Utf 16,Utf 32,我想要/需要一个测试用例来测试/中断UTF-32和UTF-16之间的转换 对于UTF-8和UTF-16,我通常使用“中国骨”测试:0xE9 0xAA 0xA8(UTF8)和0x9AA8(UTF16) 是否有人有一个否定的测试用例会破坏UTF-16和UTF-32编写糟糕的实现?理想情况下,测试需要使用至少两个UTF-32值 杰夫不确定你的意思,这里有一些: UTF-16 具有常规单位的领导代理或另一个领导代理在\xD8\x00\x00\x00或\xD8\x00\xDB\xFF 没有前置代理的跟踪

我想要/需要一个测试用例来测试/中断UTF-32和UTF-16之间的转换

对于UTF-8和UTF-16,我通常使用“中国骨”测试:0xE9 0xAA 0xA8(UTF8)和0x9AA8(UTF16)

是否有人有一个否定的测试用例会破坏UTF-16和UTF-32编写糟糕的实现?理想情况下,测试需要使用至少两个UTF-32值


杰夫

不确定你的意思,这里有一些:

UTF-16

  • 具有常规单位的领导代理或另一个领导代理在
    \xD8\x00\x00\x00
    \xD8\x00\xDB\xFF
  • 没有前置代理的跟踪代理
    \x00\x61\xDC\00
  • 处于领先位置的跟踪代理
    \xDF\xFF\xDB\xFF
  • 作为最后一个单元的领导代理
    \xD8\x01
  • 引导代理作为最后一个单元,然后是半线索代理。python 2.7.3中存在此缺陷:
    '\xD8\x00\xDC'.decode('utf-16be')
UTF-32


  • 对于
    value<0
    value>0x10FFFF
    0xD800,单位值返回true“阴性测试用例”是什么意思?用于测试失败而不是成功的东西。对于UCS32和UCS16,我假设您指的是UCS4和UCS2(UCS32和UCS16不存在)。UCS4和UCS2都不能以任何方式失败,因为它们都不使用代理。UTF16仅使用替代项。另外,你能进一步解释一下“中国骨头”是如何破坏一个写得很差的实现的吗?我本以为这个字符在UTF16和UTF8之间的转换很简单。。。最后,
    U+
    符号作为抽象整数用于Unicode代码点(不是UTF8或UTF16或其他任何形式的代码单位)。您不应该将其用于UTF16。不管这个问题如何,我真诚地建议您不要同时使用UTF16和UCS-4,除非您正在进行一些边缘案例优化。谢谢你,帕维尔。我知道Java和Microsoft使用UTF-16,所以我有兴趣尝试测试这些平台的实现。谢谢Esailija。“不确定你的意思”-大多数人得到一个简单的“a”正确的编码。我正在尝试开发测试用例,以打破只能得到简单“a”正确答案的库。