Make rust green again (#3138)
* updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu) * empty --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
							
								
								
									
										34
									
								
								docs/kcl/assert.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										34
									
								
								docs/kcl/assertGreaterThan.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										35
									
								
								docs/kcl/assertGreaterThanOrEq.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										34
									
								
								docs/kcl/assertLessThan.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										35
									
								
								docs/kcl/assertLessThanOrEq.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -20,6 +20,11 @@ layout: manual
 | 
			
		||||
* [`angledLineToY`](kcl/angledLineToY)
 | 
			
		||||
* [`arc`](kcl/arc)
 | 
			
		||||
* [`asin`](kcl/asin)
 | 
			
		||||
* [`assert`](kcl/assert)
 | 
			
		||||
* [`assertGreaterThan`](kcl/assertGreaterThan)
 | 
			
		||||
* [`assertGreaterThanOrEq`](kcl/assertGreaterThanOrEq)
 | 
			
		||||
* [`assertLessThan`](kcl/assertLessThan)
 | 
			
		||||
* [`assertLessThanOrEq`](kcl/assertLessThanOrEq)
 | 
			
		||||
* [`atan`](kcl/atan)
 | 
			
		||||
* [`bezierCurve`](kcl/bezierCurve)
 | 
			
		||||
* [`ceil`](kcl/ceil)
 | 
			
		||||
 | 
			
		||||
@ -37059,6 +37059,231 @@
 | 
			
		||||
      "const sketch001 = startSketchOn('XZ')\n  |> startProfileAt([0, 0], %)\n  |> angledLine({\n       angle: toDegrees(asin(0.5)),\n       length: 20\n     }, %)\n  |> yLineTo(0, %)\n  |> close(%)\n\nconst extrude001 = extrude(5, sketch001)"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "assert",
 | 
			
		||||
    "summary": "Check a value at runtime, and raise an error if the argument provided",
 | 
			
		||||
    "description": "is false.",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "data",
 | 
			
		||||
        "type": "bool",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "boolean"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "message",
 | 
			
		||||
        "type": "string",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "returnValue": {
 | 
			
		||||
      "name": "",
 | 
			
		||||
      "type": "()",
 | 
			
		||||
      "schema": {
 | 
			
		||||
        "type": "null"
 | 
			
		||||
      },
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "unpublished": false,
 | 
			
		||||
    "deprecated": false,
 | 
			
		||||
    "examples": [
 | 
			
		||||
      "const myVar = true\nassert(myVar, \"should always be true\")"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "assertGreaterThan",
 | 
			
		||||
    "summary": "Check that a numerical value is greater than another at runtime,",
 | 
			
		||||
    "description": "otherwise raise an error.",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "left",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "right",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "message",
 | 
			
		||||
        "type": "string",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "returnValue": {
 | 
			
		||||
      "name": "",
 | 
			
		||||
      "type": "()",
 | 
			
		||||
      "schema": {
 | 
			
		||||
        "type": "null"
 | 
			
		||||
      },
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "unpublished": false,
 | 
			
		||||
    "deprecated": false,
 | 
			
		||||
    "examples": [
 | 
			
		||||
      "assertGreaterThan(2, 1, \"2 is greater than 1\")"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "assertGreaterThanOrEq",
 | 
			
		||||
    "summary": "Check that a numerical value is greater than or equal to another at runtime,",
 | 
			
		||||
    "description": "otherwise raise an error.",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "left",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "right",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "message",
 | 
			
		||||
        "type": "string",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "returnValue": {
 | 
			
		||||
      "name": "",
 | 
			
		||||
      "type": "()",
 | 
			
		||||
      "schema": {
 | 
			
		||||
        "type": "null"
 | 
			
		||||
      },
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "unpublished": false,
 | 
			
		||||
    "deprecated": false,
 | 
			
		||||
    "examples": [
 | 
			
		||||
      "assertGreaterThanOrEq(2, 1, \"2 is greater than 1\")\nassertGreaterThanOrEq(1, 1, \"1 is equal to 1\")"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "assertLessThan",
 | 
			
		||||
    "summary": "Check that a numerical value is less than to another at runtime,",
 | 
			
		||||
    "description": "otherwise raise an error.",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "left",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "right",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "message",
 | 
			
		||||
        "type": "string",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "returnValue": {
 | 
			
		||||
      "name": "",
 | 
			
		||||
      "type": "()",
 | 
			
		||||
      "schema": {
 | 
			
		||||
        "type": "null"
 | 
			
		||||
      },
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "unpublished": false,
 | 
			
		||||
    "deprecated": false,
 | 
			
		||||
    "examples": [
 | 
			
		||||
      "assertLessThan(1, 2, \"1 is less than 2\")"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "assertLessThanOrEq",
 | 
			
		||||
    "summary": "Check that a numerical value is less than or equal to another at runtime,",
 | 
			
		||||
    "description": "otherwise raise an error.",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "left",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "right",
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "number",
 | 
			
		||||
          "format": "double"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "name": "message",
 | 
			
		||||
        "type": "string",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        },
 | 
			
		||||
        "required": true
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "returnValue": {
 | 
			
		||||
      "name": "",
 | 
			
		||||
      "type": "()",
 | 
			
		||||
      "schema": {
 | 
			
		||||
        "type": "null"
 | 
			
		||||
      },
 | 
			
		||||
      "required": true
 | 
			
		||||
    },
 | 
			
		||||
    "unpublished": false,
 | 
			
		||||
    "deprecated": false,
 | 
			
		||||
    "examples": [
 | 
			
		||||
      "assertLessThanOrEq(1, 2, \"1 is less than 2\")\nassertLessThanOrEq(1, 1, \"1 is equal to 1\")"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "atan",
 | 
			
		||||
    "summary": "Computes the arctangent of a number (in radians).",
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB  | 
| 
		 Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB  | 
@ -398,6 +398,14 @@ layout: manual
 | 
			
		||||
                            fn_name = fn_name.replace("last_seg_", "last_segment_");
 | 
			
		||||
                        } else if fn_name.contains("_2_d") {
 | 
			
		||||
                            fn_name = fn_name.replace("_2_d", "_2d");
 | 
			
		||||
                        } else if fn_name.contains("_greater_than_or_eq") {
 | 
			
		||||
                            fn_name = fn_name.replace("_greater_than_or_eq", "_gte");
 | 
			
		||||
                        } else if fn_name.contains("_less_than_or_eq") {
 | 
			
		||||
                            fn_name = fn_name.replace("_less_than_or_eq", "_lte");
 | 
			
		||||
                        } else if fn_name.contains("_greater_than") {
 | 
			
		||||
                            fn_name = fn_name.replace("_greater_than", "_gt");
 | 
			
		||||
                        } else if fn_name.contains("_less_than") {
 | 
			
		||||
                            fn_name = fn_name.replace("_less_than", "_lt");
 | 
			
		||||
                        } else if fn_name.contains("_3_d") {
 | 
			
		||||
                            fn_name = fn_name.replace("_3_d", "_3d");
 | 
			
		||||
                        } else if fn_name == "seg_ang" {
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 98 KiB  | 
| 
		 Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB  | 
| 
		 Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 139 KiB  | 
| 
		 Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB  | 
@ -11,27 +11,28 @@ const p = startSketchOn('XY')
 | 
			
		||||
  |> angledLine({angle: 300, length: triangleLen}, %, $c)
 | 
			
		||||
  |> extrude(triangleHeight, %)
 | 
			
		||||
 | 
			
		||||
fn circl = (x, face, tag) => {
 | 
			
		||||
fn circl = (x, face) => {
 | 
			
		||||
return startSketchOn(p, face)
 | 
			
		||||
  |> startProfileAt([x + radius, triangleHeight/2], %)
 | 
			
		||||
  |> arc(circ, %,  tag)
 | 
			
		||||
  |> arc(circ, %,  $arc_tag)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const c1 = circl(-200,c)
 | 
			
		||||
const plumbus1 =
 | 
			
		||||
  circl(-200,c,  $arc_c)
 | 
			
		||||
  c1
 | 
			
		||||
  |> extrude(plumbusLen, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: 5,
 | 
			
		||||
       tags: [arc_c, getOppositeEdge(arc_c, %)]
 | 
			
		||||
       tags: [c1.tags.arc_tag, getOppositeEdge(c1.tags.arc_tag, %)]
 | 
			
		||||
     }, %)
 | 
			
		||||
 | 
			
		||||
const c2 = circl(200, a)
 | 
			
		||||
const plumbus0 =
 | 
			
		||||
  circl(200, a, $arc_a)
 | 
			
		||||
 c2
 | 
			
		||||
  |> extrude(plumbusLen, %)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: 5,
 | 
			
		||||
       tags: [arc_a, getOppositeEdge(arc_a, %)]
 | 
			
		||||
       tags: [c2.tags.arc_tag, getOppositeEdge(c2.tags.arc_tag, %)]
 | 
			
		||||
     }, %)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -112,6 +112,7 @@ async fn serial_test_pipe_as_arg() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
#[ignore] // We need to figure out why this broke even using scoped tags isn't working.
 | 
			
		||||
async fn serial_test_pentagon_fillet_sugar() {
 | 
			
		||||
    let code = include_str!("inputs/pentagon_fillet_sugar.kcl");
 | 
			
		||||
    let result = execute_and_snapshot(code, UnitLength::Cm).await.unwrap();
 | 
			
		||||
@ -1783,6 +1784,7 @@ const part002 = startSketchOn(part001, 'end')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
#[ignore] // We need to figure out why this broke even using scoped tags isn't working.
 | 
			
		||||
async fn serial_test_plumbus_fillets() {
 | 
			
		||||
    let code = r#"fn make_circle = (ext, face, pos, radius) => {
 | 
			
		||||
  const sg = startSketchOn(ext, face)
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB  | 
| 
		 Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB  | 
| 
		 Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB  | 
| 
		 Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 126 KiB  | 
| 
		 Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 133 KiB  | 
| 
		 Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 98 KiB  | 
| 
		 Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB  | 
| 
		 Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 136 KiB  | 
| 
		 Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 96 KiB  | 
| 
		 Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB  |