Test_Logical_NOT Test_Logical_NOT Icon

Test_Logical_NOT

Usage

PrimitiveComponents.Test_Logical_NOT()

Behavior

\[ \begin{equation} \left[ \begin{array}{c} \mathrm{connect}\left( constant_{1_{+}y(t)}, logical_{not\_1_{+}u(t)} \right) \\ \mathrm{connect}\left( constant_{3_{+}y(t)}, logical_{not\_3_{+}u(t)} \right) \\ \mathrm{connect}\left( constant_{5_{+}y(t)}, logical_{not\_5_{+}u(t)} \right) \\ \mathrm{connect}\left( constant_{2_{+}y(t)}, logical_{not\_2_{+}u(t)} \right) \\ \mathrm{connect}\left( constant_{4_{+}y(t)}, logical_{not\_4_{+}u(t)} \right) \\ \mathtt{logical\_not\_1.c}\left( t \right) = check\_with\_target\_value\left( \mathtt{logical\_not\_1.u}\left( t \right), \mathtt{logical\_not\_1.target\_value}, \mathtt{logical\_not\_1.abs\_tol} \right) \\ \mathtt{logical\_not\_1.y}\left( t \right) = ifelse\left( \mathtt{logical\_not\_1.c}\left( t \right), 1, 0 \right) \\ \mathtt{logical\_not\_2.c}\left( t \right) = check\_with\_target\_value\left( \mathtt{logical\_not\_2.u}\left( t \right), \mathtt{logical\_not\_2.target\_value}, \mathtt{logical\_not\_2.abs\_tol} \right) \\ \mathtt{logical\_not\_2.y}\left( t \right) = ifelse\left( \mathtt{logical\_not\_2.c}\left( t \right), 1, 0 \right) \\ \mathtt{logical\_not\_3.c}\left( t \right) = check\_with\_target\_value\left( \mathtt{logical\_not\_3.u}\left( t \right), \mathtt{logical\_not\_3.target\_value}, \mathtt{logical\_not\_3.abs\_tol} \right) \\ \mathtt{logical\_not\_3.y}\left( t \right) = ifelse\left( \mathtt{logical\_not\_3.c}\left( t \right), 1, 0 \right) \\ \mathtt{logical\_not\_4.c}\left( t \right) = check\_with\_target\_value\left( \mathtt{logical\_not\_4.u}\left( t \right), \mathtt{logical\_not\_4.target\_value}, \mathtt{logical\_not\_4.abs\_tol} \right) \\ \mathtt{logical\_not\_4.y}\left( t \right) = ifelse\left( \mathtt{logical\_not\_4.c}\left( t \right), 1, 0 \right) \\ \mathtt{logical\_not\_5.c}\left( t \right) = check\_with\_target\_value\left( \mathtt{logical\_not\_5.u}\left( t \right), \mathtt{logical\_not\_5.target\_value}, \mathtt{logical\_not\_5.abs\_tol} \right) \\ \mathtt{logical\_not\_5.y}\left( t \right) = ifelse\left( \mathtt{logical\_not\_5.c}\left( t \right), 1, 0 \right) \\ \mathtt{constant\_1.y}\left( t \right) = \mathtt{constant\_1.k} \\ \mathtt{constant\_2.y}\left( t \right) = \mathtt{constant\_2.k} \\ \mathtt{constant\_3.y}\left( t \right) = \mathtt{constant\_3.k} \\ \mathtt{constant\_4.y}\left( t \right) = \mathtt{constant\_4.k} \\ \mathtt{constant\_5.y}\left( t \right) = \mathtt{constant\_5.k} \\ \end{array} \right] \end{equation} \]

Source

# This test demonstrates the behavior of the `Logical_NOT` component with several constant inputs.
#
# Five `Constant` blocks provide real-valued input signals to separate `Logical_NOT` blocks:
#   - constant_1: u = 0.0
#   - constant_2: u = 0.000001
#   - constant_3: u = 0.1
#   - constant_4: u = 3.0
#   - constant_5: u = -10
#
# The `Logical_NOT` component treats inputs as follows:
#   - Input ≈ 0 (within tolerance) → considered false → output y = 1.0 (NOT false)
#   - Input ≠ 0 → considered true → output y = 0.0 (NOT true)
#
# Expected outputs for this test:
#   - logical_not_1.y = 1.0  (input = 0.0 → false → NOT → true)
#   - logical_not_2.y = 1.0  (input ≈ 0 → false → NOT → true)
#   - logical_not_3.y = 0.0  (input = 0.1 → true → NOT → false)
#   - logical_not_4.y = 0.0  (input = 3.0 → true → NOT → false)
#   - logical_not_5.y = 0.0  (input = -10 → true → NOT → false)
component Test_Logical_NOT
  logical_not_1 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 620, "y1": 40, "x2": 720, "y2": 140, "rot": 0}
      }
    }
  }
  logical_not_2 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 640, "y1": 250, "x2": 740, "y2": 350, "rot": 0}
      }
    }
  }
  logical_not_3 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 630, "y1": 450, "x2": 730, "y2": 550, "rot": 0}
      }
    }
  }
  logical_not_4 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 620, "y1": 670, "x2": 720, "y2": 770, "rot": 0}
      }
    }
  }
  logical_not_5 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 630, "y1": 860, "x2": 730, "y2": 960, "rot": 0}
      }
    }
  }
  constant_1 = BlockComponents.Constant(k = 0.0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 270, "y1": 40, "x2": 370, "y2": 140, "rot": 0}
      }
    }
  }
  constant_2 = BlockComponents.Constant(k = 0.000001) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 270, "y1": 250, "x2": 370, "y2": 350, "rot": 0}
      }
    }
  }
  constant_3 = BlockComponents.Constant(k = 0.1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 280, "y1": 450, "x2": 380, "y2": 550, "rot": 0}
      }
    }
  }
  constant_4 = BlockComponents.Constant(k = 3.0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 280, "y1": 670, "x2": 380, "y2": 770, "rot": 0}
      }
    }
  }
  constant_5 = BlockComponents.Constant(k = -10) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 300, "y1": 860, "x2": 400, "y2": 960, "rot": 0}
      }
    }
  }
relations
  connect(logical_not_1.u, constant_1.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(logical_not_3.u, constant_3.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(logical_not_5.u, constant_5.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(constant_2.y, logical_not_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(constant_4.y, logical_not_4.u) {"Dyad": {"edges": [{"S": 1, "E": 2, "M": []}]}}
metadata {
  "Dyad": {
    "experiments": {"Test_Logical_NOT_": {"stop": 10}},
    "tests": {
      "case1": {
        "stop": 10,
        "abstol": 0.00001,
        "reltol": 0.00001,
        "expect": {
          "signals": [
            "logical_not_1.y",
            "logical_not_2.y",
            "logical_not_3.y",
            "logical_not_4.y",
            "logical_not_5.y"
          ]
        }
      }
    }
  }
}
end
Flattened Source
component Test_Logical_NOT
  logical_not_1 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 620, "y1": 40, "x2": 720, "y2": 140, "rot": 0}
      }
    }
  }
  logical_not_2 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 640, "y1": 250, "x2": 740, "y2": 350, "rot": 0}
      }
    }
  }
  logical_not_3 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 630, "y1": 450, "x2": 730, "y2": 550, "rot": 0}
      }
    }
  }
  logical_not_4 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 620, "y1": 670, "x2": 720, "y2": 770, "rot": 0}
      }
    }
  }
  logical_not_5 = PrimitiveComponents.LogicGates.Logical_NOT() {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 630, "y1": 860, "x2": 730, "y2": 960, "rot": 0}
      }
    }
  }
  constant_1 = BlockComponents.Constant(k = 0.0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 270, "y1": 40, "x2": 370, "y2": 140, "rot": 0}
      }
    }
  }
  constant_2 = BlockComponents.Constant(k = 0.000001) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 270, "y1": 250, "x2": 370, "y2": 350, "rot": 0}
      }
    }
  }
  constant_3 = BlockComponents.Constant(k = 0.1) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 280, "y1": 450, "x2": 380, "y2": 550, "rot": 0}
      }
    }
  }
  constant_4 = BlockComponents.Constant(k = 3.0) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 280, "y1": 670, "x2": 380, "y2": 770, "rot": 0}
      }
    }
  }
  constant_5 = BlockComponents.Constant(k = -10) {
    "Dyad": {
      "placement": {
        "diagram": {"iconName": "default", "x1": 300, "y1": 860, "x2": 400, "y2": 960, "rot": 0}
      }
    }
  }
relations
  connect(logical_not_1.u, constant_1.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(logical_not_3.u, constant_3.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(logical_not_5.u, constant_5.y) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(constant_2.y, logical_not_2.u) {"Dyad": {"edges": [{"S": 1, "M": [], "E": 2}]}}
  connect(constant_4.y, logical_not_4.u) {"Dyad": {"edges": [{"S": 1, "E": 2, "M": []}]}}
metadata {
  "Dyad": {
    "experiments": {"Test_Logical_NOT_": {"stop": 10}},
    "tests": {
      "case1": {
        "stop": 10,
        "abstol": 0.00001,
        "reltol": 0.00001,
        "expect": {
          "signals": [
            "logical_not_1.y",
            "logical_not_2.y",
            "logical_not_3.y",
            "logical_not_4.y",
            "logical_not_5.y"
          ]
        }
      }
    }
  }
}
end


Test Cases

Test Case case1

plt
Example block output
plt
Example block output
plt
Example block output
plt
Example block output
plt
Example block output
  • Examples
  • Experiments
  • Analyses