{
  "status": "passed",
  "artifacts": [
    {
      "name": "FocusA01",
      "sha256": "ff15f670bd0851502379d1afb7e4557ec22d0abf44d1d12e2095cab3511f0489",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "输入到标签"
      ],
      "blocks": 20,
      "apkBytes": 4601859
    },
    {
      "name": "FocusA02",
      "sha256": "56eb1d87343bd26fe1ca7a362851801ac05d22622d6ab22bd1eaa8a7a5e4dbef",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒"
      ],
      "blocks": 74,
      "apkBytes": 4601859
    },
    {
      "name": "FocusA03",
      "sha256": "d08e1a2d01958b6325c951c4760c4f02c94fbb034091fab0f00811f9359e9dec",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "到期与重复计时回调"
      ],
      "blocks": 119,
      "apkBytes": 4601859
    },
    {
      "name": "FocusA04",
      "sha256": "0e4769aeebbf603301ba54ed1cf87914124837fa65324447fc27ff47e93f8327",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "运行中重复开始不重置",
        "暂停期间不扣时",
        "到期与重复计时回调"
      ],
      "blocks": 171,
      "apkBytes": 4601859
    },
    {
      "name": "FocusA05",
      "sha256": "2346d17facbad1b8914ca8d41e63db4313df7b4feb11c346a9f6e29c18114f87",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "运行中重复开始不重置",
        "暂停期间不扣时",
        "到期与重复计时回调"
      ],
      "blocks": 175,
      "apkBytes": 4605955
    },
    {
      "name": "FocusA06",
      "sha256": "4701e706113e5bfe4eafb73716b8bd49330192797f39b8d0b911686d2e9bca0e",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "运行中重复开始不重置",
        "重启读取设置、记录和暂停快照",
        "暂停期间不扣时",
        "完成记录持久化",
        "到期与重复计时回调"
      ],
      "blocks": 271,
      "apkBytes": 4605955
    },
    {
      "name": "FocusA07",
      "sha256": "5fe031a1d09332e1dc0bb6fa49b2b7f169a4d4b048b9dcb2bc9cd503253dcc76",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "运行中重复开始不重置",
        "重启读取设置、记录和暂停快照",
        "暂停期间不扣时",
        "切页不重启任务",
        "完成记录持久化",
        "到期与重复计时回调"
      ],
      "blocks": 324,
      "apkBytes": 4691971
    },
    {
      "name": "FocusA08",
      "sha256": "0bda6aebe4cfa89c3a409f5d33ee3fb97c6d4368bd1c85192e2445a8b4506242",
      "formal": "passed",
      "businessChecks": [
        "拒绝空任务",
        "非数字、非正数、上限、小数拒绝",
        "2分钟等于120秒",
        "延迟回调按实际时间计算",
        "运行中重复开始不重置",
        "重启读取设置、记录和暂停快照",
        "暂停期间不扣时",
        "切页不重启任务",
        "运行参数冻结、修改输入不改变当前任务",
        "完成记录持久化",
        "专注后休息、休息不重复完成、取消不记完成",
        "到期与重复计时回调"
      ],
      "blocks": 394,
      "apkBytes": 4691971
    },
    {
      "name": "CardsB01",
      "sha256": "ca2297f4f49a749bec9098b70954e6b48bbea1cbd02f730009d2b0e95127ee30",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情"
      ],
      "blocks": 34,
      "apkBytes": 4786179
    },
    {
      "name": "CardsB02",
      "sha256": "a01dbb9e0e7a9f6a741071583a8c2153502f7cc57e336b289ee70714a986a0ef",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情"
      ],
      "blocks": 149,
      "apkBytes": 4790275
    },
    {
      "name": "CardsB03",
      "sha256": "060e906df5083452b9f5af570df64b9ce8eb8b65dc6336aabd33d29273e1a7c0",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "取消删除保留",
        "确认删除正确对象"
      ],
      "blocks": 301,
      "apkBytes": 4794371
    },
    {
      "name": "CardsB04",
      "sha256": "cb2b1e33f3225fdfca5df7dcf63d3cace8d710d4c6185694a774d6309f658a10",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "取消删除保留",
        "确认删除正确对象",
        "实际读取嵌套asset JSON",
        "错误顶层、缺字段、坏JSON与资源不存在拒绝"
      ],
      "blocks": 398,
      "apkBytes": 4831512
    },
    {
      "name": "CardsB05",
      "sha256": "a88ecba6f57426a84b8d9df4d4d556bd769be889e5713fa25743e39e2fc92595",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "筛选后按稳定ID修改",
        "倒序保持记录映射",
        "取消删除保留",
        "确认删除正确对象",
        "实际读取嵌套asset JSON、重复导入去重",
        "错误顶层、缺字段、坏JSON与资源不存在拒绝"
      ],
      "blocks": 451,
      "apkBytes": 4831512
    },
    {
      "name": "CardsB06",
      "sha256": "a95717f57d380c0ee2fbc150d8a43481af078be9e55e9076cb67440df08b942c",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "筛选后按稳定ID修改",
        "倒序保持记录映射",
        "取消删除保留",
        "确认删除正确对象",
        "实际读取嵌套asset JSON、重复导入去重",
        "错误顶层、缺字段、坏JSON与资源不存在拒绝",
        "已删除ID不复用",
        "SQLite就绪、绑定参数和迁移只执行一次"
      ],
      "blocks": 585,
      "apkBytes": 4835608
    },
    {
      "name": "CardsB07",
      "sha256": "5fd394c5eb554e7642676d9e95fc7778d19468cdb365734a8c9208fefbc52cfd",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "筛选后按稳定ID修改",
        "倒序保持记录映射",
        "取消删除保留",
        "确认删除正确对象",
        "实际读取嵌套asset JSON、重复导入去重",
        "错误顶层、缺字段、坏JSON与资源不存在拒绝",
        "已删除ID不复用",
        "SQLite就绪、绑定参数和迁移只执行一次",
        "错题事务成功、第二步失败回滚"
      ],
      "blocks": 651,
      "apkBytes": 4999448
    },
    {
      "name": "CardsB08",
      "sha256": "8c725c6d989771296a93255c9f34b0a18d546d47aad60d69416f893d378b055f",
      "formal": "passed",
      "businessChecks": [
        "按索引读取详情",
        "空题不保存",
        "含引号逗号换行的记录保存",
        "重启完整恢复",
        "筛选后按稳定ID修改",
        "倒序保持记录映射",
        "取消删除保留",
        "确认删除正确对象",
        "实际读取嵌套asset JSON、重复导入去重",
        "错误顶层、缺字段、坏JSON与资源不存在拒绝",
        "已删除ID不复用",
        "SQLite就绪、绑定参数和迁移只执行一次",
        "错题事务成功、第二步失败回滚",
        "CSV真实文件可解析、保存后分享、JSON备份完整"
      ],
      "blocks": 701,
      "apkBytes": 5003544
    },
    {
      "name": "MemoryC01",
      "sha256": "18fe5722e04c48e3a39e4a16a069140492c2f55f9bbf8551a58ff8ffb980641a",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界"
      ],
      "blocks": 266,
      "apkBytes": 4605955
    },
    {
      "name": "MemoryC02",
      "sha256": "37744d1ef66d3fc7008182dab5177db26a39056baadf42a52e23ef9a9ef5f7f4",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张"
      ],
      "blocks": 276,
      "apkBytes": 4605955
    },
    {
      "name": "MemoryC03",
      "sha256": "8f49bddcc298d59e5358491061b7cfa4b5111291e41205a5245551a7c06ba0d1",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张"
      ],
      "blocks": 299,
      "apkBytes": 4605955
    },
    {
      "name": "MemoryC04",
      "sha256": "b0d55c4697308ab008f1c32cdb5bb1003367428c029efb9749ea5c53c14620b1",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张",
        "重复点同牌不计分",
        "完整配对、一次胜利"
      ],
      "blocks": 354,
      "apkBytes": 4605955
    },
    {
      "name": "MemoryC05",
      "sha256": "11488660f8a84fa5d290fe1e4220c0ecd5b4904425cc9ef1a41376dc8a5dcb43",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张",
        "重复点同牌不计分",
        "不匹配延时锁、禁止第三张",
        "新局停止旧延时",
        "完整配对、一次胜利"
      ],
      "blocks": 372,
      "apkBytes": 4605955
    },
    {
      "name": "MemoryC06",
      "sha256": "8225c8f497709951f4960f35851ef1a7a2d819f3863d1bc0e4bb95589a2431f8",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张",
        "重复点同牌不计分",
        "不匹配延时锁、禁止第三张",
        "新局停止旧延时",
        "完整配对、一次胜利",
        "六对难度与真实耗时"
      ],
      "blocks": 422,
      "apkBytes": 4610051
    },
    {
      "name": "MemoryC07",
      "sha256": "891900587b3dbb524c3c6a6a48f654b678394039a1d19bf33f7f5fe3b3b28f40",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张",
        "重复点同牌不计分",
        "不匹配延时锁、禁止第三张",
        "新局停止旧延时",
        "完整配对、一次胜利",
        "六对难度与真实耗时",
        "四对最佳成绩重启恢复"
      ],
      "blocks": 478,
      "apkBytes": 4610051
    },
    {
      "name": "MemoryC08",
      "sha256": "7a9c8c9eb4df791a446b3cebd2650f1fc1f377e95758f14d19b4240d9d9452c9",
      "formal": "passed",
      "businessChecks": [
        "开局8张卡片",
        "边界不越界",
        "洗牌/初始化保留每种两张",
        "重复点同牌不计分",
        "不匹配延时锁、禁止第三张",
        "新局停止旧延时",
        "完整配对、一次胜利",
        "六对难度与真实耗时",
        "四对最佳成绩重启恢复",
        "题材可替换，算法保持",
        "题材不足保留原词表并提示"
      ],
      "blocks": 502,
      "apkBytes": 4614147
    }
  ],
  "unverified": [
    "browser_ui_import",
    "companion",
    "device_run",
    "harmony_hap"
  ]
}
