{
  "experiments": [
    {
      "name": "SUCC (后继函数)",
      "tests": [
        {
          "input": "3",
          "expected": "4",
          "actual": "4",
          "passed": true
        },
        {
          "input": "4",
          "expected": "5",
          "actual": "5",
          "passed": true
        },
        {
          "input": "7",
          "expected": "8",
          "actual": "8",
          "passed": true
        },
        {
          "input": "10",
          "expected": "11",
          "actual": "11",
          "passed": true
        },
        {
          "input": "15",
          "expected": "16",
          "actual": "16",
          "passed": true
        },
        {
          "input": "42",
          "expected": "43",
          "actual": "43",
          "passed": true
        },
        {
          "input": "127",
          "expected": "128",
          "actual": "128",
          "passed": true
        },
        {
          "input": "255",
          "expected": "256",
          "actual": "256",
          "passed": true
        }
      ],
      "passed": 8,
      "total": 8
    },
    {
      "name": "TRUE/FALSE (Church 布尔值)",
      "tests": [
        {
          "input": "TRUE(A='sun', B='moon')",
          "expected": "sun",
          "actual": "sun",
          "passed": true
        },
        {
          "input": "FALSE(A='sun', B='moon')",
          "expected": "moon",
          "actual": "moon",
          "passed": true
        },
        {
          "input": "TRUE(A='hello', B='world')",
          "expected": "hello",
          "actual": "hello",
          "passed": true
        },
        {
          "input": "FALSE(A='hello', B='world')",
          "expected": "world",
          "actual": "world",
          "passed": true
        },
        {
          "input": "TRUE(A='42', B='0')",
          "expected": "42",
          "actual": "42",
          "passed": true
        },
        {
          "input": "FALSE(A='42', B='0')",
          "expected": "0",
          "actual": "0",
          "passed": true
        },
        {
          "input": "TRUE(A='alpha', B='omega')",
          "expected": "alpha",
          "actual": "alpha",
          "passed": true
        },
        {
          "input": "FALSE(A='alpha', B='omega')",
          "expected": "omega",
          "actual": "omega",
          "passed": true
        }
      ],
      "passed": 8,
      "total": 8
    },
    {
      "name": "AND/OR/NOT (逻辑运算)",
      "tests": [
        {
          "input": "AND(TRUE, TRUE)",
          "expected": "TRUE",
          "actual": "TRUE",
          "passed": true
        },
        {
          "input": "AND(TRUE, FALSE)",
          "expected": "FALSE",
          "actual": "FALSE",
          "passed": true
        },
        {
          "input": "AND(FALSE, TRUE)",
          "expected": "FALSE",
          "actual": "FALSE",
          "passed": true
        },
        {
          "input": "AND(FALSE, FALSE)",
          "expected": "FALSE",
          "actual": "FALSE",
          "passed": true
        },
        {
          "input": "OR(TRUE, TRUE)",
          "expected": "TRUE",
          "actual": "TRUE",
          "passed": true
        },
        {
          "input": "OR(TRUE, FALSE)",
          "expected": "TRUE",
          "actual": "TRUE",
          "passed": true
        },
        {
          "input": "OR(FALSE, TRUE)",
          "expected": "TRUE",
          "actual": "TRUE",
          "passed": true
        },
        {
          "input": "OR(FALSE, FALSE)",
          "expected": "FALSE",
          "actual": "FALSE",
          "passed": true
        },
        {
          "input": "NOT(TRUE)",
          "expected": "FALSE",
          "actual": "FALSE",
          "passed": true
        },
        {
          "input": "NOT(FALSE)",
          "expected": "TRUE",
          "actual": "TRUE",
          "passed": true
        }
      ],
      "passed": 10,
      "total": 10
    },
    {
      "name": "IF-THEN-ELSE (条件分支)",
      "tests": [
        {
          "input": "condition=TRUE, then='accept', else='reject'",
          "expected": "accept",
          "actual": "accept",
          "passed": true
        },
        {
          "input": "condition=FALSE, then='accept', else='reject'",
          "expected": "reject",
          "actual": "reject",
          "passed": true
        },
        {
          "input": "condition=TRUE, then='100', else='-1'",
          "expected": "100",
          "actual": "100",
          "passed": true
        },
        {
          "input": "condition=FALSE, then='100', else='-1'",
          "expected": "-1",
          "actual": "-1",
          "passed": true
        }
      ],
      "passed": 4,
      "total": 4
    },
    {
      "name": "PAIR/FST/SND (有序对)",
      "tests": [
        {
          "input": "PAIR(10, 20)",
          "expected": "(10, 20)",
          "actual": "(10, 20)",
          "passed": true
        },
        {
          "input": "FST((5, 8))",
          "expected": "5",
          "actual": "5",
          "passed": true
        },
        {
          "input": "SND((5, 8))",
          "expected": "8",
          "actual": "8",
          "passed": true
        },
        {
          "input": "FST(PAIR(alpha, beta))",
          "expected": "alpha",
          "actual": "alpha",
          "passed": true
        },
        {
          "input": "SND(PAIR(alpha, beta))",
          "expected": "beta",
          "actual": "beta",
          "passed": true
        }
      ],
      "passed": 5,
      "total": 5
    },
    {
      "name": "函数组合 (DOUBLE ∘ SUCC)",
      "tests": [
        {
          "input": "DOUBLE(SUCC(0))",
          "expected": "2",
          "actual": "2",
          "passed": true
        },
        {
          "input": "DOUBLE(SUCC(1))",
          "expected": "4",
          "actual": "4",
          "passed": true
        },
        {
          "input": "DOUBLE(SUCC(3))",
          "expected": "8",
          "actual": "8",
          "passed": true
        },
        {
          "input": "DOUBLE(SUCC(5))",
          "expected": "12",
          "actual": "12",
          "passed": true
        },
        {
          "input": "DOUBLE(SUCC(10))",
          "expected": "22",
          "actual": "22",
          "passed": true
        }
      ],
      "passed": 5,
      "total": 5
    },
    {
      "name": "FACTORIAL (递归/Y 组合子)",
      "tests": [
        {
          "input": "2!",
          "expected": "2",
          "actual": "2",
          "passed": true
        },
        {
          "input": "4!",
          "expected": "24",
          "actual": "24",
          "passed": true
        },
        {
          "input": "6!",
          "expected": "720",
          "actual": "720",
          "passed": true
        },
        {
          "input": "7!",
          "expected": "5040",
          "actual": "5040",
          "passed": true
        }
      ],
      "passed": 4,
      "total": 4
    },
    {
      "name": "CHURCH 数 (f^n(x))",
      "tests": [
        {
          "input": "add1^4(0)",
          "expected": "4",
          "actual": "4",
          "passed": true
        },
        {
          "input": "add1^5(0)",
          "expected": "5",
          "actual": "5",
          "passed": true
        },
        {
          "input": "add1^7(0)",
          "expected": "7",
          "actual": "7",
          "passed": true
        },
        {
          "input": "double^1(1)",
          "expected": "2",
          "actual": "2",
          "passed": true
        },
        {
          "input": "double^2(1)",
          "expected": "4",
          "actual": "4",
          "passed": true
        },
        {
          "input": "double^3(1)",
          "expected": "8",
          "actual": "8",
          "passed": true
        },
        {
          "input": "double^5(1)",
          "expected": "32",
          "actual": "32",
          "passed": true
        }
      ],
      "passed": 7,
      "total": 7
    }
  ],
  "total_passed": 51,
  "total_tests": 51
}