{
  "id": "exp-004",
  "slug": "exp-004-occupied-floor-area",
  "algorithm": "2.0.0",
  "legacyAlgorithm": "1.0.0",
  "geometrySha256": "313c4fd15b13941f5b189a75e732cbb03aef2a9c75d65f1a1b7d581d925b7976",
  "generated": "2026-11-07",
  "generator": "tools/run_experiments.mjs",
  "verifier": "tools/verify_experiments.py",
  "kind": "simulation",
  "cases": [
    {
      "id": "two-overlap",
      "label": {
        "ko": "침대와 책상이 7×50cm 겹침",
        "en": "Bed and desk overlap by 7 × 50 cm"
      },
      "preset": "x4twoOverlap",
      "input": {
        "room": {
          "w": 220,
          "h": 260
        },
        "items": [
          {
            "type": "bedSingle",
            "x": 10,
            "y": 10,
            "w": 110,
            "h": 200
          },
          {
            "type": "desk",
            "x": 113,
            "y": 15,
            "w": 105,
            "h": 50
          }
        ],
        "fixtures": []
      },
      "actual": {
        "room": 57200,
        "itemSum": 27250,
        "itemInside": 27250,
        "itemUnion": 26900,
        "overlapCounted": 350,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 26900,
        "free": 30300
      },
      "legacy": {
        "displayedFurnitureArea": 27250
      },
      "expected": {
        "room": 57200,
        "itemSum": 27250,
        "itemInside": 27250,
        "itemUnion": 26900,
        "overlapCounted": 350,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 26900,
        "free": 30300,
        "method": "1 cm cell count"
      },
      "checks": [
        {
          "name": "room",
          "expected": 57200,
          "actual": 57200,
          "pass": true
        },
        {
          "name": "itemSum",
          "expected": 27250,
          "actual": 27250,
          "pass": true
        },
        {
          "name": "itemInside",
          "expected": 27250,
          "actual": 27250,
          "pass": true
        },
        {
          "name": "itemUnion",
          "expected": 26900,
          "actual": 26900,
          "pass": true
        },
        {
          "name": "overlapCounted",
          "expected": 350,
          "actual": 350,
          "pass": true
        },
        {
          "name": "outsidePart",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "fixtures",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "occupied",
          "expected": 26900,
          "actual": 26900,
          "pass": true
        },
        {
          "name": "free",
          "expected": 30300,
          "actual": 30300,
          "pass": true
        },
        {
          "name": "v1 shown = clipped sum",
          "expected": 27250,
          "actual": 27250,
          "pass": true
        }
      ],
      "pass": true
    },
    {
      "id": "three-overlap",
      "label": {
        "ko": "세 가구가 서로 겹침",
        "en": "Three pieces overlapping each other"
      },
      "preset": "x4threeOverlap",
      "input": {
        "room": {
          "w": 300,
          "h": 300
        },
        "items": [
          {
            "type": "table",
            "x": 0,
            "y": 0,
            "w": 100,
            "h": 100
          },
          {
            "type": "table",
            "x": 50,
            "y": 50,
            "w": 100,
            "h": 100
          },
          {
            "type": "shelf",
            "x": 75,
            "y": 0,
            "w": 50,
            "h": 200
          }
        ],
        "fixtures": []
      },
      "actual": {
        "room": 90000,
        "itemSum": 30000,
        "itemInside": 30000,
        "itemUnion": 21250,
        "overlapCounted": 8750,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 21250,
        "free": 68750
      },
      "legacy": {
        "displayedFurnitureArea": 30000
      },
      "expected": {
        "room": 90000,
        "itemSum": 30000,
        "itemInside": 30000,
        "itemUnion": 21250,
        "overlapCounted": 8750,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 21250,
        "free": 68750,
        "method": "1 cm cell count"
      },
      "checks": [
        {
          "name": "room",
          "expected": 90000,
          "actual": 90000,
          "pass": true
        },
        {
          "name": "itemSum",
          "expected": 30000,
          "actual": 30000,
          "pass": true
        },
        {
          "name": "itemInside",
          "expected": 30000,
          "actual": 30000,
          "pass": true
        },
        {
          "name": "itemUnion",
          "expected": 21250,
          "actual": 21250,
          "pass": true
        },
        {
          "name": "overlapCounted",
          "expected": 8750,
          "actual": 8750,
          "pass": true
        },
        {
          "name": "outsidePart",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "fixtures",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "occupied",
          "expected": 21250,
          "actual": 21250,
          "pass": true
        },
        {
          "name": "free",
          "expected": 68750,
          "actual": 68750,
          "pass": true
        },
        {
          "name": "v1 shown = clipped sum",
          "expected": 30000,
          "actual": 30000,
          "pass": true
        }
      ],
      "pass": true
    },
    {
      "id": "outside",
      "label": {
        "ko": "선반 일부가 방 밖",
        "en": "A shelf partly outside the room"
      },
      "preset": "x4outside",
      "input": {
        "room": {
          "w": 220,
          "h": 260
        },
        "items": [
          {
            "type": "bedSingle",
            "x": 10,
            "y": 10,
            "w": 110,
            "h": 200
          },
          {
            "type": "desk",
            "x": 113,
            "y": 15,
            "w": 105,
            "h": 50
          },
          {
            "type": "shelf",
            "x": 180,
            "y": 220,
            "w": 80,
            "h": 35
          }
        ],
        "fixtures": []
      },
      "actual": {
        "room": 57200,
        "itemSum": 30050,
        "itemInside": 28650,
        "itemUnion": 28300,
        "overlapCounted": 350,
        "outsidePart": 1400,
        "fixtures": 0,
        "occupied": 28300,
        "free": 28900
      },
      "legacy": {
        "displayedFurnitureArea": 28650
      },
      "expected": {
        "room": 57200,
        "itemSum": 30050,
        "itemInside": 28650,
        "itemUnion": 28300,
        "overlapCounted": 350,
        "outsidePart": 1400,
        "fixtures": 0,
        "occupied": 28300,
        "free": 28900,
        "method": "1 cm cell count"
      },
      "checks": [
        {
          "name": "room",
          "expected": 57200,
          "actual": 57200,
          "pass": true
        },
        {
          "name": "itemSum",
          "expected": 30050,
          "actual": 30050,
          "pass": true
        },
        {
          "name": "itemInside",
          "expected": 28650,
          "actual": 28650,
          "pass": true
        },
        {
          "name": "itemUnion",
          "expected": 28300,
          "actual": 28300,
          "pass": true
        },
        {
          "name": "overlapCounted",
          "expected": 350,
          "actual": 350,
          "pass": true
        },
        {
          "name": "outsidePart",
          "expected": 1400,
          "actual": 1400,
          "pass": true
        },
        {
          "name": "fixtures",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "occupied",
          "expected": 28300,
          "actual": 28300,
          "pass": true
        },
        {
          "name": "free",
          "expected": 28900,
          "actual": 28900,
          "pass": true
        },
        {
          "name": "v1 shown = clipped sum",
          "expected": 28650,
          "actual": 28650,
          "pass": true
        }
      ],
      "pass": true
    },
    {
      "id": "no-overlap",
      "label": {
        "ko": "겹침 없는 침실",
        "en": "Bedroom with no overlaps"
      },
      "preset": "x4noOverlap",
      "input": {
        "room": {
          "w": 300,
          "h": 350
        },
        "items": [
          {
            "type": "bedQueen",
            "x": 18,
            "y": 20,
            "w": 150,
            "h": 200
          },
          {
            "type": "desk",
            "x": 185,
            "y": 20,
            "w": 105,
            "h": 50
          },
          {
            "type": "wardrobe",
            "x": 185,
            "y": 244,
            "w": 100,
            "h": 60
          }
        ],
        "fixtures": []
      },
      "actual": {
        "room": 105000,
        "itemSum": 41250,
        "itemInside": 41250,
        "itemUnion": 41250,
        "overlapCounted": 0,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 41250,
        "free": 63750
      },
      "legacy": {
        "displayedFurnitureArea": 41250
      },
      "expected": {
        "room": 105000,
        "itemSum": 41250,
        "itemInside": 41250,
        "itemUnion": 41250,
        "overlapCounted": 0,
        "outsidePart": 0,
        "fixtures": 0,
        "occupied": 41250,
        "free": 63750,
        "method": "1 cm cell count"
      },
      "checks": [
        {
          "name": "room",
          "expected": 105000,
          "actual": 105000,
          "pass": true
        },
        {
          "name": "itemSum",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "itemInside",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "itemUnion",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "overlapCounted",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "outsidePart",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "fixtures",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "occupied",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "free",
          "expected": 63750,
          "actual": 63750,
          "pass": true
        },
        {
          "name": "v1 shown = clipped sum",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        }
      ],
      "pass": true
    },
    {
      "id": "column",
      "label": {
        "ko": "기둥과 옷장이 겹침",
        "en": "A column overlapping the wardrobe"
      },
      "preset": "x4column",
      "input": {
        "room": {
          "w": 300,
          "h": 350
        },
        "items": [
          {
            "type": "bedQueen",
            "x": 0,
            "y": 0,
            "w": 150,
            "h": 200
          },
          {
            "type": "desk",
            "x": 250,
            "y": 0,
            "w": 50,
            "h": 105
          },
          {
            "type": "wardrobe",
            "x": 200,
            "y": 290,
            "w": 100,
            "h": 60
          }
        ],
        "fixtures": [
          {
            "kind": "column",
            "x": 260,
            "y": 270,
            "w": 40,
            "h": 40
          }
        ]
      },
      "actual": {
        "room": 105000,
        "itemSum": 41250,
        "itemInside": 41250,
        "itemUnion": 41250,
        "overlapCounted": 0,
        "outsidePart": 0,
        "fixtures": 1600,
        "occupied": 42050,
        "free": 62950
      },
      "legacy": {
        "displayedFurnitureArea": 41250
      },
      "expected": {
        "room": 105000,
        "itemSum": 41250,
        "itemInside": 41250,
        "itemUnion": 41250,
        "overlapCounted": 0,
        "outsidePart": 0,
        "fixtures": 1600,
        "occupied": 42050,
        "free": 62950,
        "method": "1 cm cell count"
      },
      "checks": [
        {
          "name": "room",
          "expected": 105000,
          "actual": 105000,
          "pass": true
        },
        {
          "name": "itemSum",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "itemInside",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "itemUnion",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        },
        {
          "name": "overlapCounted",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "outsidePart",
          "expected": 0,
          "actual": 0,
          "pass": true
        },
        {
          "name": "fixtures",
          "expected": 1600,
          "actual": 1600,
          "pass": true
        },
        {
          "name": "occupied",
          "expected": 42050,
          "actual": 42050,
          "pass": true
        },
        {
          "name": "free",
          "expected": 62950,
          "actual": 62950,
          "pass": true
        },
        {
          "name": "v1 shown = clipped sum",
          "expected": 41250,
          "actual": 41250,
          "pass": true
        }
      ],
      "pass": true
    }
  ],
  "verification": {
    "cases": 5,
    "passed": 5,
    "failed": 0,
    "checks": 50
  }
}
