Typo: tangental should be tangential (#842)
* Typo: tangental should be tangential * Run executor tests in serial * Fix typo in image file names
This commit is contained in:
		@ -17481,16 +17481,16 @@
 | 
			
		||||
    "deprecated": false
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tangentalArc",
 | 
			
		||||
    "name": "tangentialArc",
 | 
			
		||||
    "summary": "Draw an arc.",
 | 
			
		||||
    "description": "",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "data",
 | 
			
		||||
        "type": "TangentalArcData",
 | 
			
		||||
        "type": "TangentialArcData",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "description": "Data to draw a tangental arc.",
 | 
			
		||||
          "description": "Data to draw a tangential arc.",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "object",
 | 
			
		||||
@ -18432,16 +18432,16 @@
 | 
			
		||||
    "deprecated": false
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tangentalArcTo",
 | 
			
		||||
    "name": "tangentialArcTo",
 | 
			
		||||
    "summary": "Draw an arc.",
 | 
			
		||||
    "description": "",
 | 
			
		||||
    "tags": [],
 | 
			
		||||
    "args": [
 | 
			
		||||
      {
 | 
			
		||||
        "name": "data",
 | 
			
		||||
        "type": "TangentalArcToData",
 | 
			
		||||
        "type": "TangentialArcToData",
 | 
			
		||||
        "schema": {
 | 
			
		||||
          "description": "Data to draw a tangental arc to a specific point.",
 | 
			
		||||
          "description": "Data to draw a tangential arc to a specific point.",
 | 
			
		||||
          "anyOf": [
 | 
			
		||||
            {
 | 
			
		||||
              "description": "A point with a tag.",
 | 
			
		||||
 | 
			
		||||
@ -52,8 +52,8 @@
 | 
			
		||||
	* [`startSketchAt`](#startSketchAt)
 | 
			
		||||
	* [`startSketchOn`](#startSketchOn)
 | 
			
		||||
	* [`tan`](#tan)
 | 
			
		||||
	* [`tangentalArc`](#tangentalArc)
 | 
			
		||||
	* [`tangentalArcTo`](#tangentalArcTo)
 | 
			
		||||
	* [`tangentialArc`](#tangentialArc)
 | 
			
		||||
	* [`tangentialArcTo`](#tangentialArcTo)
 | 
			
		||||
	* [`tau`](#tau)
 | 
			
		||||
	* [`xLine`](#xLine)
 | 
			
		||||
	* [`xLineTo`](#xLineTo)
 | 
			
		||||
@ -3520,19 +3520,19 @@ tan(num: number) -> number
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### tangentalArc
 | 
			
		||||
### tangentialArc
 | 
			
		||||
 | 
			
		||||
Draw an arc.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
tangentalArc(data: TangentalArcData, sketch_group: SketchGroup) -> SketchGroup
 | 
			
		||||
tangentialArc(data: TangentialArcData, sketch_group: SketchGroup) -> SketchGroup
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Arguments
 | 
			
		||||
 | 
			
		||||
* `data`: `TangentalArcData` - Data to draw a tangental arc.
 | 
			
		||||
* `data`: `TangentialArcData` - Data to draw a tangential arc.
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
	// Offset of the arc, in degrees.
 | 
			
		||||
@ -3684,19 +3684,19 @@ tangentalArc(data: TangentalArcData, sketch_group: SketchGroup) -> SketchGroup
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### tangentalArcTo
 | 
			
		||||
### tangentialArcTo
 | 
			
		||||
 | 
			
		||||
Draw an arc.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
tangentalArcTo(data: TangentalArcToData, sketch_group: SketchGroup) -> SketchGroup
 | 
			
		||||
tangentialArcTo(data: TangentialArcToData, sketch_group: SketchGroup) -> SketchGroup
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Arguments
 | 
			
		||||
 | 
			
		||||
* `data`: `TangentalArcToData` - Data to draw a tangental arc to a specific point.
 | 
			
		||||
* `data`: `TangentialArcToData` - Data to draw a tangential arc to a specific point.
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
	// The tag.
 | 
			
		||||
 | 
			
		||||
@ -11,14 +11,14 @@ const wallMountL = 8
 | 
			
		||||
const bracket = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([0, 0], %)
 | 
			
		||||
  |> line([0, wallMountL], %)
 | 
			
		||||
  |> tangentalArc({
 | 
			
		||||
  |> tangentialArc({
 | 
			
		||||
    radius: filletR,
 | 
			
		||||
    offset: 90
 | 
			
		||||
  }, %)
 | 
			
		||||
  |> line([-shelfMountL, 0], %)
 | 
			
		||||
  |> line([0, -thickness], %)
 | 
			
		||||
  |> line([shelfMountL, 0], %)
 | 
			
		||||
  |> tangentalArc({
 | 
			
		||||
  |> tangentialArc({
 | 
			
		||||
    radius: filletR - thickness,
 | 
			
		||||
    offset: -90
 | 
			
		||||
  }, %)
 | 
			
		||||
 | 
			
		||||
@ -1682,7 +1682,7 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
        for (i, test_program) in [
 | 
			
		||||
            r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentalArc([-5, 5], %)
 | 
			
		||||
    |> tangentialArc([-5, 5], %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#,
 | 
			
		||||
 | 
			
		||||
@ -63,8 +63,8 @@ impl StdLib {
 | 
			
		||||
            Box::new(crate::std::sketch::StartProfileAt),
 | 
			
		||||
            Box::new(crate::std::sketch::Close),
 | 
			
		||||
            Box::new(crate::std::sketch::Arc),
 | 
			
		||||
            Box::new(crate::std::sketch::TangentalArc),
 | 
			
		||||
            Box::new(crate::std::sketch::TangentalArcTo),
 | 
			
		||||
            Box::new(crate::std::sketch::TangentialArc),
 | 
			
		||||
            Box::new(crate::std::sketch::TangentialArcTo),
 | 
			
		||||
            Box::new(crate::std::sketch::BezierCurve),
 | 
			
		||||
            Box::new(crate::std::math::Cos),
 | 
			
		||||
            Box::new(crate::std::math::Sin),
 | 
			
		||||
 | 
			
		||||
@ -1080,11 +1080,11 @@ async fn inner_arc(data: ArcData, sketch_group: Box<SketchGroup>, args: Args) ->
 | 
			
		||||
    Ok(new_sketch_group)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Data to draw a tangental arc.
 | 
			
		||||
/// Data to draw a tangential arc.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, ts_rs::TS)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
#[serde(rename_all = "camelCase", untagged)]
 | 
			
		||||
pub enum TangentalArcData {
 | 
			
		||||
pub enum TangentialArcData {
 | 
			
		||||
    RadiusAndOffset {
 | 
			
		||||
        /// Radius of the arc.
 | 
			
		||||
        /// Not to be confused with Raiders of the Lost Ark.
 | 
			
		||||
@ -1103,20 +1103,20 @@ pub enum TangentalArcData {
 | 
			
		||||
    Point([f64; 2]),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Draw a tangental arc.
 | 
			
		||||
pub async fn tangental_arc(args: Args) -> Result<MemoryItem, KclError> {
 | 
			
		||||
    let (data, sketch_group): (TangentalArcData, Box<SketchGroup>) = args.get_data_and_sketch_group()?;
 | 
			
		||||
/// Draw a tangential arc.
 | 
			
		||||
pub async fn tangential_arc(args: Args) -> Result<MemoryItem, KclError> {
 | 
			
		||||
    let (data, sketch_group): (TangentialArcData, Box<SketchGroup>) = args.get_data_and_sketch_group()?;
 | 
			
		||||
 | 
			
		||||
    let new_sketch_group = inner_tangental_arc(data, sketch_group, args).await?;
 | 
			
		||||
    let new_sketch_group = inner_tangential_arc(data, sketch_group, args).await?;
 | 
			
		||||
    Ok(MemoryItem::SketchGroup(new_sketch_group))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Draw an arc.
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "tangentalArc",
 | 
			
		||||
    name = "tangentialArc",
 | 
			
		||||
}]
 | 
			
		||||
async fn inner_tangental_arc(
 | 
			
		||||
    data: TangentalArcData,
 | 
			
		||||
async fn inner_tangential_arc(
 | 
			
		||||
    data: TangentialArcData,
 | 
			
		||||
    sketch_group: Box<SketchGroup>,
 | 
			
		||||
    args: Args,
 | 
			
		||||
) -> Result<Box<SketchGroup>, KclError> {
 | 
			
		||||
@ -1125,7 +1125,7 @@ async fn inner_tangental_arc(
 | 
			
		||||
    let id = uuid::Uuid::new_v4();
 | 
			
		||||
 | 
			
		||||
    let to = match &data {
 | 
			
		||||
        TangentalArcData::RadiusAndOffset { radius, offset } => {
 | 
			
		||||
        TangentialArcData::RadiusAndOffset { radius, offset } => {
 | 
			
		||||
            // Calculate the end point from the angle and radius.
 | 
			
		||||
            let end_angle = Angle::from_degrees(*offset);
 | 
			
		||||
            let start_angle = Angle::from_degrees(0.0);
 | 
			
		||||
@ -1147,7 +1147,7 @@ async fn inner_tangental_arc(
 | 
			
		||||
            .await?;
 | 
			
		||||
            to.into()
 | 
			
		||||
        }
 | 
			
		||||
        TangentalArcData::PointWithTag { to, .. } => {
 | 
			
		||||
        TangentialArcData::PointWithTag { to, .. } => {
 | 
			
		||||
            args.send_modeling_cmd(
 | 
			
		||||
                id,
 | 
			
		||||
                ModelingCmd::ExtendPath {
 | 
			
		||||
@ -1166,7 +1166,7 @@ async fn inner_tangental_arc(
 | 
			
		||||
 | 
			
		||||
            *to
 | 
			
		||||
        }
 | 
			
		||||
        TangentalArcData::Point(to) => {
 | 
			
		||||
        TangentialArcData::Point(to) => {
 | 
			
		||||
            args.send_modeling_cmd(
 | 
			
		||||
                id,
 | 
			
		||||
                ModelingCmd::ExtendPath {
 | 
			
		||||
@ -1207,11 +1207,11 @@ async fn inner_tangental_arc(
 | 
			
		||||
    Ok(new_sketch_group)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Data to draw a tangental arc to a specific point.
 | 
			
		||||
/// Data to draw a tangential arc to a specific point.
 | 
			
		||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, ts_rs::TS)]
 | 
			
		||||
#[ts(export)]
 | 
			
		||||
#[serde(rename_all = "camelCase", untagged)]
 | 
			
		||||
pub enum TangentalArcToData {
 | 
			
		||||
pub enum TangentialArcToData {
 | 
			
		||||
    /// A point with a tag.
 | 
			
		||||
    PointWithTag {
 | 
			
		||||
        /// Where the arc should end. Must lie in the same plane as the current path pen position. Must not be colinear with current path pen position.
 | 
			
		||||
@ -1223,27 +1223,27 @@ pub enum TangentalArcToData {
 | 
			
		||||
    Point([f64; 2]),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Draw a tangental arc to a specific point.
 | 
			
		||||
pub async fn tangental_arc_to(args: Args) -> Result<MemoryItem, KclError> {
 | 
			
		||||
    let (data, sketch_group): (TangentalArcToData, Box<SketchGroup>) = args.get_data_and_sketch_group()?;
 | 
			
		||||
/// Draw a tangential arc to a specific point.
 | 
			
		||||
pub async fn tangential_arc_to(args: Args) -> Result<MemoryItem, KclError> {
 | 
			
		||||
    let (data, sketch_group): (TangentialArcToData, Box<SketchGroup>) = args.get_data_and_sketch_group()?;
 | 
			
		||||
 | 
			
		||||
    let new_sketch_group = inner_tangental_arc_to(data, sketch_group, args).await?;
 | 
			
		||||
    let new_sketch_group = inner_tangential_arc_to(data, sketch_group, args).await?;
 | 
			
		||||
    Ok(MemoryItem::SketchGroup(new_sketch_group))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Draw an arc.
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "tangentalArcTo",
 | 
			
		||||
    name = "tangentialArcTo",
 | 
			
		||||
}]
 | 
			
		||||
async fn inner_tangental_arc_to(
 | 
			
		||||
    data: TangentalArcToData,
 | 
			
		||||
async fn inner_tangential_arc_to(
 | 
			
		||||
    data: TangentialArcToData,
 | 
			
		||||
    sketch_group: Box<SketchGroup>,
 | 
			
		||||
    args: Args,
 | 
			
		||||
) -> Result<Box<SketchGroup>, KclError> {
 | 
			
		||||
    let from: Point2d = sketch_group.get_coords_from_paths()?;
 | 
			
		||||
    let to = match &data {
 | 
			
		||||
        TangentalArcToData::PointWithTag { to, .. } => to,
 | 
			
		||||
        TangentalArcToData::Point(to) => to,
 | 
			
		||||
        TangentialArcToData::PointWithTag { to, .. } => to,
 | 
			
		||||
        TangentialArcToData::Point(to) => to,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let delta = [to[0] - from.x, to[1] - from.y];
 | 
			
		||||
@ -1270,7 +1270,7 @@ async fn inner_tangental_arc_to(
 | 
			
		||||
        base: BasePath {
 | 
			
		||||
            from: from.into(),
 | 
			
		||||
            to: *to,
 | 
			
		||||
            name: if let TangentalArcToData::PointWithTag { tag, .. } = data {
 | 
			
		||||
            name: if let TangentialArcToData::PointWithTag { tag, .. } = data {
 | 
			
		||||
                tag.to_string()
 | 
			
		||||
            } else {
 | 
			
		||||
                "".to_string()
 | 
			
		||||
 | 
			
		||||
@ -173,14 +173,14 @@ const wallMountL = 8
 | 
			
		||||
 | 
			
		||||
const bracket = startSketchAt([0, 0])
 | 
			
		||||
  |> line([0, wallMountL], %)
 | 
			
		||||
  |> tangentalArc({
 | 
			
		||||
  |> tangentialArc({
 | 
			
		||||
    radius: filletR,
 | 
			
		||||
    offset: 90
 | 
			
		||||
  }, %)
 | 
			
		||||
  |> line([-shelfMountL, 0], %)
 | 
			
		||||
  |> line([0, -thickness], %)
 | 
			
		||||
  |> line([shelfMountL, 0], %)
 | 
			
		||||
  |> tangentalArc({
 | 
			
		||||
  |> tangentialArc({
 | 
			
		||||
    radius: filletR - thickness,
 | 
			
		||||
    offset: -90
 | 
			
		||||
  }, %)
 | 
			
		||||
@ -231,7 +231,7 @@ async fn serial_test_execute_kittycad_svg() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_member_expression_sketch_group() {
 | 
			
		||||
async fn serial_test_member_expression_sketch_group() {
 | 
			
		||||
    let code = r#"fn cube = (pos, scale) => {
 | 
			
		||||
  const sg = startSketchOn('XY')
 | 
			
		||||
    |> startProfileAt(pos, %)
 | 
			
		||||
@ -260,7 +260,7 @@ show(b2)"#;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_close_arc() {
 | 
			
		||||
async fn serial_test_close_arc() {
 | 
			
		||||
    let code = r#"const center = [0,0]
 | 
			
		||||
const radius = 40
 | 
			
		||||
const height = 3
 | 
			
		||||
@ -278,7 +278,7 @@ show(body)"#;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_negative_args() {
 | 
			
		||||
async fn serial_test_negative_args() {
 | 
			
		||||
    let code = r#"const width = 5
 | 
			
		||||
const height = 10
 | 
			
		||||
const length = 12
 | 
			
		||||
@ -304,46 +304,46 @@ box(-20, -5, 10)"#;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_basic_tangental_arc() {
 | 
			
		||||
async fn serial_test_basic_tangential_arc() {
 | 
			
		||||
    let code = r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentalArc({radius: 5, offset: 90}, %)
 | 
			
		||||
    |> tangentialArc({radius: 5, offset: 90}, %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#;
 | 
			
		||||
 | 
			
		||||
    let result = execute_and_snapshot(code).await.unwrap();
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangental_arc.png", &result, 0.999);
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangential_arc.png", &result, 0.999);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_basic_tangental_arc_with_point() {
 | 
			
		||||
async fn serial_test_basic_tangential_arc_with_point() {
 | 
			
		||||
    let code = r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentalArc([-5, 5], %)
 | 
			
		||||
    |> tangentialArc([-5, 5], %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#;
 | 
			
		||||
 | 
			
		||||
    let result = execute_and_snapshot(code).await.unwrap();
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangental_arc_with_point.png", &result, 0.999);
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangential_arc_with_point.png", &result, 0.999);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_basic_tangental_arc_to() {
 | 
			
		||||
async fn serial_test_basic_tangential_arc_to() {
 | 
			
		||||
    let code = r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentalArcTo([-5, 15], %)
 | 
			
		||||
    |> tangentialArcTo([-5, 15], %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#;
 | 
			
		||||
 | 
			
		||||
    let result = execute_and_snapshot(code).await.unwrap();
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangental_arc_to.png", &result, 0.999);
 | 
			
		||||
    twenty_twenty::assert_image("tests/executor/outputs/tangential_arc_to.png", &result, 0.999);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_different_planes_same_drawing() {
 | 
			
		||||
async fn serial_test_different_planes_same_drawing() {
 | 
			
		||||
    let code = r#"const width = 5
 | 
			
		||||
const height = 10
 | 
			
		||||
const length = 12
 | 
			
		||||
@ -374,7 +374,7 @@ box(-20, -5, 10, 'xy')"#;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
async fn test_lots_of_planes() {
 | 
			
		||||
async fn serial_test_lots_of_planes() {
 | 
			
		||||
    let code = r#"const sigmaAllow = 15000 // psi
 | 
			
		||||
const width = 11 // inch
 | 
			
		||||
const p = 150 // Force on shelf - lbs
 | 
			
		||||
@ -388,11 +388,11 @@ const wallMountL = 8
 | 
			
		||||
const bracket = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([0, 0], %)
 | 
			
		||||
  |> line([0, wallMountL], %)
 | 
			
		||||
  |> tangentalArc({ radius: filletR, offset: 90 }, %)
 | 
			
		||||
  |> tangentialArc({ radius: filletR, offset: 90 }, %)
 | 
			
		||||
  |> line([-shelfMountL, 0], %)
 | 
			
		||||
  |> line([0, -thickness], %)
 | 
			
		||||
  |> line([shelfMountL, 0], %)
 | 
			
		||||
  |> tangentalArc({
 | 
			
		||||
  |> tangentialArc({
 | 
			
		||||
       radius: filletR - thickness,
 | 
			
		||||
       offset: -90
 | 
			
		||||
     }, %)
 | 
			
		||||
 | 
			
		||||
| 
		 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  | 
		Reference in New Issue
	
	Block a user