{
    "report": "RFC 8785 JSON Canonicalization Scheme — conformance report",
    "attribution": "self-reported",
    "note": "RFC 8785 is an IETF specification. It has no official test suite, no implementation registry and no EARL submission route, so no standards body publishes or reviews this result. It is reproducible with `composer test:conformance`.",
    "generated": "2026-11-03T09:13:34Z",
    "specification": "https://www.rfc-editor.org/rfc/rfc8785",
    "implementation": {
        "name": "PHP-JSON-Canonicalize",
        "version": "v1.1.0",
        "homepage": "https://github.com/Accredifysg/PHP-JSON-Canonicalize",
        "language": "PHP"
    },
    "suite": {
        "name": "cyberphone/json-canonicalization",
        "url": "https://github.com/cyberphone/json-canonicalization",
        "revision": "32a48195b9b20fe67b1795e39e4509f14d860b45",
        "role": "de facto RFC 8785 conformance suite, maintained by the specification author",
        "vectors": [
            "arrays",
            "french",
            "structures",
            "unicode",
            "values",
            "weird"
        ],
        "numberPrefixes": [
            1000,
            10000,
            100000,
            1000000
        ]
    },
    "summary": {
        "passed": 22,
        "failed": 0,
        "skipped": 0,
        "total": 22
    },
    "assertions": [
        {
            "test": "it reproduces the published ES6 number checksums with data set \"dataset \"first 1,000 lines\"\"",
            "check": "ES6 number checksums",
            "outcome": "passed"
        },
        {
            "test": "it reproduces the published ES6 number checksums with data set \"dataset \"first 10,000 lines\"\"",
            "check": "ES6 number checksums",
            "outcome": "passed"
        },
        {
            "test": "it reproduces the published ES6 number checksums with data set \"dataset \"first 100,000 lines\"\"",
            "check": "ES6 number checksums",
            "outcome": "passed"
        },
        {
            "test": "it reproduces the published ES6 number checksums with data set \"dataset \"first 1,000,000 lines\"\"",
            "check": "ES6 number checksums",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"arrays\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"french\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"structures\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"unicode\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"values\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it canonicalizes the cyberphone vectors with data set \"dataset \"weird\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"arrays\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"french\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"structures\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"unicode\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"values\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it emits the exact bytes the cyberphone vectors record in hexadecimal with data set \"dataset \"weird\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"arrays\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"french\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"structures\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"unicode\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"values\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        },
        {
            "test": "it is idempotent — canonicalizing canonical output changes nothing with data set \"dataset \"weird\"\"",
            "check": "Document vectors",
            "outcome": "passed"
        }
    ]
}
