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,8 @@
{
"schemaVersion": 1,
"id": "invalid-ellipsoid-family-001",
"category": "Part",
"description": "Ellipsoid radius rejection",
"operation": { "type": "ellipsoid", "radius1": 0, "radius2": 4, "radius3": 0, "angle1": -90, "angle2": 90, "angle3": 360 },
"expectedError": "parameters"
}

View File

@@ -0,0 +1,8 @@
{
"schemaVersion": 1,
"id": "invalid-helix-family-001",
"category": "Part",
"description": "Helix missing pitch rejection",
"operation": { "type": "helix", "height": 6, "radius": 2, "angle": 0, "segmentLength": 0 },
"expectedError": "pitch"
}

View File

@@ -0,0 +1,8 @@
{
"schemaVersion": 1,
"id": "invalid-prism-family-001",
"category": "Part",
"description": "Prism missing height rejection",
"operation": { "type": "prism", "polygon": 6, "circumradius": 2, "firstAngle": 0, "secondAngle": 0 },
"expectedError": "height"
}

View File

@@ -0,0 +1,8 @@
{
"schemaVersion": 1,
"id": "invalid-torus-family-001",
"category": "Part",
"description": "Torus radius rejection",
"operation": { "type": "torus", "radius1": 0, "radius2": 2, "angle1": -180, "angle2": 180, "angle3": 360 },
"expectedError": "parameters"
}

View File

@@ -0,0 +1,8 @@
{
"schemaVersion": 1,
"id": "invalid-wedge-family-001",
"category": "Part",
"description": "Wedge missing Xmax rejection",
"operation": { "type": "wedge", "xmin": 0, "ymin": 0, "zmin": 0, "z2min": 0, "x2min": 0, "ymax": 10, "zmax": 10, "z2max": 8, "x2max": 8 },
"expectedError": "xmax"
}

View File

@@ -0,0 +1,12 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"driver": "scripts/freecad-golden-driver.py",
"failures": [
{ "id": "invalid-ellipsoid-family-001", "file": "invalid-ellipsoid-family-001.json" },
{ "id": "invalid-torus-family-001", "file": "invalid-torus-family-001.json" },
{ "id": "invalid-prism-family-001", "file": "invalid-prism-family-001.json" },
{ "id": "invalid-wedge-family-001", "file": "invalid-wedge-family-001.json" },
{ "id": "invalid-helix-family-001", "file": "invalid-helix-family-001.json" }
]
}

View File

@@ -0,0 +1,12 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"driver": "scripts/freecad-golden-driver.py",
"scenarios": [
{ "id": "part-ellipsoid-family-001", "file": "scenarios/part-ellipsoid-family-001.json" },
{ "id": "part-torus-family-001", "file": "scenarios/part-torus-family-001.json" },
{ "id": "part-prism-family-001", "file": "scenarios/part-prism-family-001.json" },
{ "id": "part-wedge-family-001", "file": "scenarios/part-wedge-family-001.json" },
{ "id": "part-helix-family-001", "file": "scenarios/part-helix-family-001.json" }
]
}

View File

@@ -0,0 +1,30 @@
{
"schemaVersion": 1,
"id": "part-ellipsoid-family-001",
"category": "Part",
"description": "Native Part Ellipsoid family fixture",
"operation": {
"type": "ellipsoid",
"radius1": 2,
"radius2": 4,
"radius3": 0,
"angle1": -90,
"angle2": 90,
"angle3": 360
},
"tolerance": { "linear": 0.000001, "scalar": 0.000001 },
"expected": {
"shapeType": "Solid",
"isNull": false,
"isValid": true,
"solids": 1,
"faces": 1,
"edges": 3,
"vertices": 2,
"volume": 133.9826640573845,
"boundingBox": {
"min": [-8, -6.92820323027551, -2],
"max": [4, 6.928203230275507, 2]
}
}
}

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"id": "part-helix-family-001",
"category": "Part",
"description": "Native Part Helix family fixture",
"operation": {
"type": "helix",
"pitch": 3,
"height": 6,
"radius": 2,
"angle": 0,
"segmentLength": 0
},
"tolerance": { "linear": 0.000001, "scalar": 0.000001 },
"expected": {
"shapeType": "Wire",
"isNull": false,
"isValid": true,
"solids": 0,
"faces": 0,
"edges": 1,
"vertices": 2,
"volume": 0,
"boundingBox": {
"min": [-2, -2.0188633703206333, 0],
"max": [2, 2.0188633703206342, 6]
}
}
}

View File

@@ -0,0 +1,29 @@
{
"schemaVersion": 1,
"id": "part-prism-family-001",
"category": "Part",
"description": "Native Part Prism family fixture",
"operation": {
"type": "prism",
"polygon": 6,
"circumradius": 2,
"height": 10,
"firstAngle": 10,
"secondAngle": -5
},
"tolerance": { "linear": 0.000001, "scalar": 0.000001 },
"expected": {
"shapeType": "Solid",
"isNull": false,
"isValid": true,
"solids": 1,
"faces": 8,
"edges": 18,
"vertices": 12,
"volume": 103.92304845413263,
"boundingBox": {
"min": [-2, -2.6069374428281185, 0],
"max": [3.76326980708465, 1.7320508075688776, 10]
}
}
}

View File

@@ -0,0 +1,26 @@
{
"schemaVersion": 1,
"id": "part-torus-family-001",
"category": "Part",
"description": "Native Part Torus family fixture",
"operation": {
"type": "torus",
"radius1": 10,
"radius2": 2,
"angle1": -180,
"angle2": 180,
"angle3": 270
},
"tolerance": { "linear": 0.000001, "scalar": 0.000001 },
"expected": {
"shapeType": "Solid",
"isNull": false,
"isValid": true,
"solids": 1,
"volume": 592.1762640653615,
"boundingBox": {
"min": [-12.988706403508727, -12.988706403508727, -2],
"max": [12.988706403508727, 12.988706403508727, 2]
}
}
}

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"id": "part-wedge-family-001",
"category": "Part",
"description": "Native Part Wedge family fixture",
"operation": {
"type": "wedge",
"xmin": 0,
"ymin": 0,
"zmin": 0,
"z2min": 0,
"x2min": 0,
"xmax": 10,
"ymax": 10,
"zmax": 10,
"z2max": 8,
"x2max": 8
},
"tolerance": { "linear": 0.000001, "scalar": 0.000001 },
"expected": {
"shapeType": "Solid",
"isNull": false,
"isValid": true,
"solids": 1,
"faces": 6,
"edges": 12,
"vertices": 8,
"volume": 813.3333333333334,
"boundingBox": {
"min": [0, 0, 0],
"max": [10, 10, 10]
}
}
}