public VarVal CalcExpression() { var val = new VarVal(Id, Expression.Calc(), Expression.Type); OutputVariableSource.InternalFunnyValue = val.Value; return(val); }
public static VarVal GetVarVal(this string src, int starti, out int endi) { var emptyChars = StrConst.EmptyChars; bool isBlock = false; bool isRules = false; while (emptyChars.Contains(src[starti])) { starti++; } var result = new VarVal(); if (src[starti] == '{') { isBlock = true; endi = GetBlockEnd(src, starti); var res = src.FromTo(starti + 1, endi - 1).TrimEnd(emptyChars); if (res.Length > 0 && res[res.Length - 1] == '}') { isRules = true; // rules var var lines = res.Split("\r\n").ToList(); foreach (var line in lines) { if (line.All(c => emptyChars.Contains(c))) { lines.Remove(line); break; } } res = string.Join("\r\n", StrUtil.RemStartSpace(lines.ToArray())); } else { res = res.TrimStart(emptyChars); } result.Val = res; } else { endi = src.IndexOf(';', starti); result.Val = src.FromTo(starti, endi - 1); } result.IsBlock = isBlock; result.IsRules = isRules; return(result); }
public static void AssertHas(this CalculationResult result, VarVal variable, double delta = 0) { var res = result.Results.FirstOrDefault(r => r.Name == variable.Name); Assert.IsNotNull(res, $"Variable \"{variable.Name}\" not found"); Assert.AreEqual(variable.Type, res.Type, $"Variable \"{variable.Name}\" has wrong type"); if (variable.Type == VarType.Real) { Assert.AreEqual(variable.Value.To <double>(), res.Value.To <double>(), delta, $"Var \"{variable}\" expected: {variable.Value}, but was: {res.Value}"); } else { Assert.AreEqual(variable.Value, res.Value, $"Var \"{variable}\" expected: {ToStringSmart(variable.Value)}, but was: {ToStringSmart(res.Value)}"); } }
private VarVal GetCurrentVarVal() { VarVal result = 0; if (lcomboBox.SelectedIndex == 3) { result |= VarVal.LVar; } else { result |= VarVal.LVal; } if (rcomboBox.SelectedIndex == 3) { result |= VarVal.RVar; } else { result |= VarVal.RVal; } return(result); }