{
  "started": "2026-10-27T19:57:02.474Z",
  "tests": [
    {
      "name": "Alle sechs Seiten, lokale Architektur und vollständige Logs",
      "ok": true,
      "ms": 2586,
      "detail": {
        "pages": 6,
        "workersBeforeAction": 0
      }
    },
    {
      "name": "Fünf unabhängige NumPy/JS-Referenzen: Encoder, Log-MAP, Iterationen und Posterior",
      "ok": true,
      "ms": 1757,
      "detail": {
        "vectors": 5,
        "maxPosteriorError": 4.263256414560601e-14
      }
    },
    {
      "name": "WAV-Parser: exaktes Trägerformat und ungültige Imports",
      "ok": true,
      "ms": 31,
      "detail": {
        "rejected": 3,
        "samples": [
          -1,
          -0.000030517578125,
          0,
          0.000030517578125,
          0.999969482421875
        ]
      }
    },
    {
      "name": "Audio-Resampling gegen SciPy: 8/44,1/48 kHz und Stereo",
      "ok": true,
      "ms": 48,
      "detail": [
        {
          "rate": 8000,
          "channels": 1,
          "samples": 1600,
          "maxPcmError": 0
        },
        {
          "rate": 44100,
          "channels": 1,
          "samples": 1600,
          "maxPcmError": 0
        },
        {
          "rate": 48000,
          "channels": 2,
          "samples": 1600,
          "maxPcmError": 0
        }
      ]
    },
    {
      "name": "Zehn Sekunden Sprache: Codec2/WASM-Encoder gegen native Originalpakete",
      "ok": true,
      "ms": 3664,
      "detail": {
        "seconds": 10,
        "bytes": 4000,
        "differentBytes": 0,
        "ms": 367.5,
        "loadedModels": []
      }
    },
    {
      "name": "Neuraler Generator → tatsächliche PCM16-WAV → Analyzer → Turbo → Sprache",
      "ok": true,
      "ms": 12507,
      "detail": {
        "statistics": {
          "rawErrors": 2144,
          "rawBits": 64000,
          "payloadErrors": 0,
          "payloadBits": 32000,
          "failedBlocks": 0,
          "codec2BytesIdentical": true,
          "pcmIdentical": true,
          "blocks": [
            {
              "second": 1,
              "rawErrors": 199,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 2,
              "rawErrors": 197,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 3,
              "rawErrors": 186,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 4,
              "rawErrors": 242,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 5,
              "rawErrors": 219,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 6,
              "rawErrors": 247,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 7,
              "rawErrors": 223,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 8,
              "rawErrors": 229,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 9,
              "rawErrors": 204,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            },
            {
              "second": 10,
              "rawErrors": 198,
              "payloadErrors": 0,
              "iterations": 4,
              "stable": true,
              "changedBits": [
                3200,
                0,
                0,
                0
              ]
            }
          ]
        },
        "generateMs": 4656.700000017881,
        "decodeMs": 3617.300000011921,
        "loadedModels": [
          "generator",
          "analyzer"
        ]
      }
    },
    {
      "name": "Träger-WAV herunterladen und unabhängig wieder importieren",
      "ok": true,
      "ms": 5602,
      "detail": {
        "statistics": null,
        "bits": 32000,
        "seconds": 10
      }
    },
    {
      "name": "Unveränderter Python-Träger: 32.000 Nutzbits allein aus WAV wiederherstellen",
      "ok": true,
      "ms": 6876,
      "detail": {
        "errors": 0,
        "total": 32000,
        "uiStatistics": null,
        "diagnostics": [
          {
            "second": 1,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 2,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 3,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 4,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 5,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 6,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 7,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 8,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 9,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          },
          {
            "second": 10,
            "iterations": 4,
            "stable": true,
            "changedBits": [
              3200,
              0,
              0,
              0
            ]
          }
        ],
        "ms": 6540.700000017881
      }
    },
    {
      "name": "JSON/CSV und tatsächliche Empfangs-Softwerte exportieren",
      "ok": true,
      "ms": 320,
      "detail": {
        "measurements": 3,
        "logits": 64000
      }
    },
    {
      "name": "Mikrofon: lokale Audio-Callbacks funktionieren unter file://",
      "ok": true,
      "ms": 703,
      "detail": {
        "source": "Lokale Mikrofonaufnahme",
        "samples": 8192,
        "rate": 16000
      }
    },
    {
      "name": "Teilsekunde und frischer Codec-Zustand: Padding, zwei identische Encodes",
      "ok": true,
      "ms": 112,
      "detail": {
        "seconds": 1,
        "payload": 3200,
        "padding": 0.8749375,
        "same": true,
        "referenceSamples": 1001
      }
    },
    {
      "name": "Mobile Darstellung aller Seiten und Hauptkacheln",
      "ok": true,
      "ms": 2298,
      "detail": {
        "width": 390,
        "tiles": 8
      }
    },
    {
      "name": "Keine HTTP-Anfragen oder Browserfehler",
      "ok": true,
      "ms": 0,
      "detail": {
        "http": 0,
        "errors": 0
      }
    }
  ],
  "errors": [],
  "network": [],
  "browser": "155.0.8059.79",
  "finished": "2026-10-27T19:57:40.043Z",
  "passed": 13,
  "failed": 0
}