feat: establish reproducible FreeCAD web compatibility baseline

This commit is contained in:
2026-08-10 16:11:38 -04:00
parent e5a5d74dbc
commit b962a5c3b5
733 changed files with 349081 additions and 647 deletions

View File

@@ -0,0 +1,19 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-001",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "cut",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
},
"tool": {
"type": "unknown"
}
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,19 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-002",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "fuse",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
},
"tool": {
"type": "unknown"
}
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,16 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-003",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "cut",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
}
},
"expectedError": "operation"
}

View File

@@ -0,0 +1,19 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-004",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "fuse",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
},
"tool": {
"type": "unknown"
}
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,19 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-005",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "cut",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
},
"tool": {
"type": "unknown"
}
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,16 @@
{
"schemaVersion": 1,
"id": "invalid-boolean-006",
"category": "Part",
"description": "Boolean operand rejection",
"operation": {
"type": "fuse",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
}
},
"expectedError": "operation"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-001",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 3,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-002",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -2,
"width": 4,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-003",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 5,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-004",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -4,
"width": 6,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-005",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 7,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-006",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -6,
"width": 8,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-007",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 9,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-008",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -8,
"width": 10,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-009",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 11,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-010",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -10,
"width": 12,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-011",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": 0,
"width": 13,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-box-012",
"category": "Part",
"description": "Box dimension rejection",
"operation": {
"type": "box",
"length": -12,
"width": 14,
"height": 3
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,16 @@
{
"schemaVersion": 1,
"id": "invalid-common-001",
"category": "Part",
"description": "Common operand rejection",
"operation": {
"type": "common",
"base": {
"type": "box",
"length": 1,
"width": 1,
"height": 1
}
},
"expectedError": "operation"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-001",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": -1,
"radius2": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-002",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": 0,
"radius2": -1,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-003",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": -1,
"radius2": 0,
"height": 0,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-004",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": 0,
"radius2": -1,
"height": 5,
"angle": 361
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-005",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": -1,
"radius2": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-006",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": 0,
"radius2": -1,
"height": 0,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-007",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": -1,
"radius2": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "invalid-cone-008",
"category": "Part",
"description": "Cone parameter rejection",
"operation": {
"type": "cone",
"radius1": 0,
"radius2": -1,
"height": 5,
"angle": 361
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-001",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-002",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": -2,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-003",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": 0,
"height": 0,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-004",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": -4,
"height": 5,
"angle": 361
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-005",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-006",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": -6,
"height": 0,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-007",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": 0,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-008",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": -8,
"height": 5,
"angle": 361
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-009",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": 0,
"height": 0,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"id": "invalid-cylinder-010",
"category": "Part",
"description": "Cylinder parameter rejection",
"operation": {
"type": "cylinder",
"radius": -10,
"height": 5,
"angle": 360
},
"expectedError": "parameters"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-001",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-1"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-002",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-2"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-003",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-3"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-004",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-4"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-005",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-5"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,10 @@
{
"schemaVersion": 1,
"id": "invalid-operation-006",
"category": "Part",
"description": "Unknown operation rejection",
"operation": {
"type": "unsupported-6"
},
"expectedError": "Unsupported"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-001",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": 0
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-002",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": -2
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-003",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": 0
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-004",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": -4
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-005",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": 0
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-006",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": -6
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-007",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": 0
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,11 @@
{
"schemaVersion": 1,
"id": "invalid-sphere-008",
"category": "Part",
"description": "Sphere radius rejection",
"operation": {
"type": "sphere",
"radius": -8
},
"expectedError": "positive"
}

View File

@@ -0,0 +1,211 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"driver": "scripts/freecad-golden-driver.py",
"failures": [
{
"id": "invalid-box-001",
"file": "invalid-box-001.json"
},
{
"id": "invalid-box-002",
"file": "invalid-box-002.json"
},
{
"id": "invalid-box-003",
"file": "invalid-box-003.json"
},
{
"id": "invalid-box-004",
"file": "invalid-box-004.json"
},
{
"id": "invalid-box-005",
"file": "invalid-box-005.json"
},
{
"id": "invalid-box-006",
"file": "invalid-box-006.json"
},
{
"id": "invalid-box-007",
"file": "invalid-box-007.json"
},
{
"id": "invalid-box-008",
"file": "invalid-box-008.json"
},
{
"id": "invalid-box-009",
"file": "invalid-box-009.json"
},
{
"id": "invalid-box-010",
"file": "invalid-box-010.json"
},
{
"id": "invalid-box-011",
"file": "invalid-box-011.json"
},
{
"id": "invalid-box-012",
"file": "invalid-box-012.json"
},
{
"id": "invalid-cylinder-001",
"file": "invalid-cylinder-001.json"
},
{
"id": "invalid-cylinder-002",
"file": "invalid-cylinder-002.json"
},
{
"id": "invalid-cylinder-003",
"file": "invalid-cylinder-003.json"
},
{
"id": "invalid-cylinder-004",
"file": "invalid-cylinder-004.json"
},
{
"id": "invalid-cylinder-005",
"file": "invalid-cylinder-005.json"
},
{
"id": "invalid-cylinder-006",
"file": "invalid-cylinder-006.json"
},
{
"id": "invalid-cylinder-007",
"file": "invalid-cylinder-007.json"
},
{
"id": "invalid-cylinder-008",
"file": "invalid-cylinder-008.json"
},
{
"id": "invalid-cylinder-009",
"file": "invalid-cylinder-009.json"
},
{
"id": "invalid-cylinder-010",
"file": "invalid-cylinder-010.json"
},
{
"id": "invalid-sphere-001",
"file": "invalid-sphere-001.json"
},
{
"id": "invalid-sphere-002",
"file": "invalid-sphere-002.json"
},
{
"id": "invalid-sphere-003",
"file": "invalid-sphere-003.json"
},
{
"id": "invalid-sphere-004",
"file": "invalid-sphere-004.json"
},
{
"id": "invalid-sphere-005",
"file": "invalid-sphere-005.json"
},
{
"id": "invalid-sphere-006",
"file": "invalid-sphere-006.json"
},
{
"id": "invalid-sphere-007",
"file": "invalid-sphere-007.json"
},
{
"id": "invalid-sphere-008",
"file": "invalid-sphere-008.json"
},
{
"id": "invalid-cone-001",
"file": "invalid-cone-001.json"
},
{
"id": "invalid-cone-002",
"file": "invalid-cone-002.json"
},
{
"id": "invalid-cone-003",
"file": "invalid-cone-003.json"
},
{
"id": "invalid-cone-004",
"file": "invalid-cone-004.json"
},
{
"id": "invalid-cone-005",
"file": "invalid-cone-005.json"
},
{
"id": "invalid-cone-006",
"file": "invalid-cone-006.json"
},
{
"id": "invalid-cone-007",
"file": "invalid-cone-007.json"
},
{
"id": "invalid-cone-008",
"file": "invalid-cone-008.json"
},
{
"id": "invalid-boolean-001",
"file": "invalid-boolean-001.json"
},
{
"id": "invalid-boolean-002",
"file": "invalid-boolean-002.json"
},
{
"id": "invalid-boolean-003",
"file": "invalid-boolean-003.json"
},
{
"id": "invalid-boolean-004",
"file": "invalid-boolean-004.json"
},
{
"id": "invalid-boolean-005",
"file": "invalid-boolean-005.json"
},
{
"id": "invalid-boolean-006",
"file": "invalid-boolean-006.json"
},
{
"id": "invalid-operation-001",
"file": "invalid-operation-001.json"
},
{
"id": "invalid-operation-002",
"file": "invalid-operation-002.json"
},
{
"id": "invalid-operation-003",
"file": "invalid-operation-003.json"
},
{
"id": "invalid-operation-004",
"file": "invalid-operation-004.json"
},
{
"id": "invalid-operation-005",
"file": "invalid-operation-005.json"
},
{
"id": "invalid-operation-006",
"file": "invalid-operation-006.json"
},
{
"id": "invalid-common-001",
"file": "invalid-common-001.json"
}
]
}