rumoca 0.7.28

Modelica compiler written in RUST
Documentation
// Test fixtures for expression block balance checking
// These blocks have output connectors with binding expressions but no equation section
package ExpressionBlocks
  // Simplified connector definitions
  connector RealOutput = output Real;

  connector IntegerOutput = output Integer;

  connector BooleanOutput = output Boolean;

  // RealExpression-style block: output with binding, no equation section
  // Should be balanced: 1 equation (y = 0.0), 1 unknown (y)
  block RealExpressionLike
    RealOutput y = 0.0 "Value of Real output";
  end RealExpressionLike;

  // IntegerExpression-style block
  // Should be balanced: 1 equation (y = 0), 1 unknown (y)
  block IntegerExpressionLike
    IntegerOutput y = 0 "Value of Integer output";
  end IntegerExpressionLike;

  // BooleanExpression-style block
  // Should be balanced: 1 equation (y = false), 1 unknown (y)
  block BooleanExpressionLike
    BooleanOutput y = false "Value of Boolean output";
  end BooleanExpressionLike;

  // Expression block with non-default value
  // Should be balanced: 1 equation (y = 1.5), 1 unknown (y)
  block RealExpressionNonDefault
    RealOutput y = 1.5 "Non-default value";
  end RealExpressionNonDefault;

  // Output with explicit equation - should NOT double-count
  // Should be balanced: 1 equation (y = 1.0 from equation section), 1 unknown (y)
  block OutputWithEquation
    RealOutput y = 0.0;
  equation
    y = 1.0;
  end OutputWithEquation;

  // Output without binding - should be under-determined (partial)
  // 0 equations, 1 unknown (y), 1 external connector
  block OutputNoBind
    RealOutput y;
  end OutputNoBind;
end ExpressionBlocks;