public int calculate(int logid, Work w) { var ex = new InvalidOperation(); ex.WhatOp = (int)Operation.ADD; ex.Why = "Invalid calculate"; throw ex; }
public void TestInvalidSpecialOtherOperationRegister(InvalidOperation op) { var handler = new DefaultManager(CreateNewApiConnection()); var request = GenerateRegisterRequest(op != InvalidOperation.WrongContentType ? op.ToString().ToLower() : ValidOperation.Put.ToString().ToLower()); var response = handler.Send <object>($"{RegisterEndpoint}{ResourceId.Job.ToString().ToLower()}s", JsonConvert.SerializeObject(request), HttpMethod.POST, op != InvalidOperation.WrongContentType ? ContentType : "application/json"); Assert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }
public async Task <int> calculate(int logid, Work w, CancellationToken cancellationToken) { Logger.LogInformation("Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])", logid, w.Op, w.Num1, w.Num2); int val; switch (w.Op) { case Operation.ADD: val = w.Num1 + w.Num2; break; case Operation.SUBTRACT: val = w.Num1 - w.Num2; break; case Operation.MULTIPLY: val = w.Num1 * w.Num2; break; case Operation.DIVIDE: if (w.Num2 == 0) { var io = new InvalidOperation { WhatOp = (int)w.Op, Why = "Cannot divide by 0" }; throw io; } val = w.Num1 / w.Num2; break; default: { var io = new InvalidOperation { WhatOp = (int)w.Op, Why = "Unknown operation" }; throw io; } } var entry = new SharedStruct { Key = logid, Value = val.ToString() }; _log[logid] = entry; return(await Task.FromResult(val)); }
public void Read(TProtocol iprot) { iprot.IncrementRecursionDepth(); try { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 0: if (field.Type == TType.I32) { Success = iprot.ReadI32(); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 1: if (field.Type == TType.Struct) { Ouch = new InvalidOperation(); Ouch.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); } finally { iprot.DecrementRecursionDepth(); } }
public int calculate(int logid, Work work) { Console.WriteLine("calculate({0}, [{1},{2},{3}])", logid, work.op, work.num1, work.num2); int val = 0; switch (work.op) { case Operation.ADD: val = work.num1 + work.num2; break; case Operation.SUBTRACT: val = work.num1 - work.num2; break; case Operation.MULTIPLY: val = work.num1 * work.num2; break; case Operation.DIVIDE: if (work.num2 == 0) { InvalidOperation io = new InvalidOperation(); io.what = (int)work.op; io.why = "Cannot divide by 0"; throw io; } val = work.num1 / work.num2; break; default: { InvalidOperation io = new InvalidOperation(); io.what = (int)work.op; io.why = "Unknown operation"; throw io; } } SharedStruct entry = new SharedStruct(); entry.key = logid; entry.value = val.ToString(); log[logid] = entry; return(val); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 0: if (field.Type == TType.Struct) { Success = new SearchResult(); Success.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 1: if (field.Type == TType.Struct) { Ex = new InvalidOperation(); Ex.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public int calculate(int logid, Work work) { Console.WriteLine("calculate({0}, [{1},{2},{3}])", logid, work.op, work.num1, work.num2); int val = 0; switch (work.op) { case Operation.ADD: val = work.num1 + work.num2; break; case Operation.SUBTRACT: val = work.num1 - work.num2; break; case Operation.MULTIPLY: val = work.num1 * work.num2; break; case Operation.DIVIDE: if (work.num2 == 0) { InvalidOperation io = new InvalidOperation(); io.what = (int)work.op; io.why = "Cannot divide by 0"; throw io; } val = work.num1 / work.num2; break; default: { InvalidOperation io = new InvalidOperation(); io.what = (int)work.op; io.why = "Unknown operation"; throw io; } } SharedStruct entry = new SharedStruct(); entry.key = logid; entry.value = val.ToString(); log[logid] = entry; return val; }
public async Task<int> calculateAsync(int logid, Work w, CancellationToken cancellationToken) { Logger.LogInformation($"CalculateAsync({logid}, [{w.Op},{w.Num1},{w.Num2}])"); var val = 0; switch (w.Op) { case Operation.ADD: val = w.Num1 + w.Num2; break; case Operation.SUBTRACT: val = w.Num1 - w.Num2; break; case Operation.MULTIPLY: val = w.Num1*w.Num2; break; case Operation.DIVIDE: if (w.Num2 == 0) { var io = new InvalidOperation { WhatOp = (int) w.Op, Why = "Cannot divide by 0" }; throw io; } val = w.Num1/w.Num2; break; default: { var io = new InvalidOperation { WhatOp = (int) w.Op, Why = "Unknown operation" }; throw io; } } var entry = new SharedStruct { Key = logid, Value = val.ToString() }; _log[logid] = entry; return await Task.FromResult(val); }
public void Read (TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 0: if (field.Type == TType.I32) { Success = iprot.ReadI32(); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 1: if (field.Type == TType.Struct) { Ouch = new InvalidOperation(); Ouch.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public SkryptObject EvaluateExpression(string operationName, SkryptObject left, SkryptObject right, IToken token) { object result = new InvalidOperation(); switch (operationName) { case "+": result = _engine.ExpressionInterpreter.EvaluatePlusExpression(left, right); break; case "-": result = _engine.ExpressionInterpreter.EvaluateSubtractExpression(left, right); break; case "*": result = _engine.ExpressionInterpreter.EvaluateMultiplyExpression(left, right); break; case "/": result = _engine.ExpressionInterpreter.EvaluateDivideExpression(left, right); break; case "%": result = _engine.ExpressionInterpreter.EvaluateRemainderExpression(left, right); break; case "**": result = _engine.ExpressionInterpreter.EvaluateExponentExpression(left, right); break; case "<": result = _engine.ExpressionInterpreter.EvaluateLessExpression(left, right); break; case "<=": result = _engine.ExpressionInterpreter.EvaluateLessEqualExpression(left, right); break; case ">": result = _engine.ExpressionInterpreter.EvaluateGreaterExpression(left, right); break; case ">=": result = _engine.ExpressionInterpreter.EvaluateGreaterEqualExpression(left, right); break; case "==": result = _engine.ExpressionInterpreter.EvaluateEqualExpression(left, right); break; case "!=": result = _engine.ExpressionInterpreter.EvaluateNotEqualExpression(left, right); break; case "is": result = _engine.ExpressionInterpreter.EvaluateIsExpression(left, right); break; case "&&": result = _engine.ExpressionInterpreter.EvaluateAndExpression(left, right); break; case "||": result = _engine.ExpressionInterpreter.EvaluateOrExpression(left, right); break; case "&": result = _engine.ExpressionInterpreter.EvaluateBitAndExpression(left, right); break; case "^": result = _engine.ExpressionInterpreter.EvaluateBitXOrExpression(left, right); break; case "|": result = _engine.ExpressionInterpreter.EvaluateBitOrExpression(left, right); break; case "<<": result = _engine.ExpressionInterpreter.EvaluateBitShiftLExpression(left, right); break; case ">>": result = _engine.ExpressionInterpreter.EvaluateBitShiftRExpression(left, right); break; case ">>>": result = _engine.ExpressionInterpreter.EvaluateBitShiftURExpression(left, right); break; } if (result is bool) { result = _engine.CreateBoolean((bool)result); } if (result is double) { result = _engine.CreateNumber((double)result); } if (result is int) { result = _engine.CreateNumber((int)result); } if (result is string) { result = _engine.CreateString((string)result); } if (left != null && left is SkryptInstance skryptInstance) { if (skryptInstance.HasTrait <SubtractableTrait>()) { result = EvaluateTraitOperator("Sub", left, right); } else if (skryptInstance.HasTrait <AddableTrait>()) { result = EvaluateTraitOperator("Add", left, right); } else if (skryptInstance.HasTrait <MultiplicableTrait>()) { result = EvaluateTraitOperator("Mul", left, right); } else if (skryptInstance.HasTrait <DividableTrait>()) { result = EvaluateTraitOperator("Div", left, right); } } if (result is InvalidOperation) { if (result is InvalidOperation) { var lname = left == null ? "null" : typeof(SkryptType).IsAssignableFrom(left.GetType()) ? "type" : left.Name; var rname = right == null ? "null" : typeof(SkryptType).IsAssignableFrom(right.GetType()) ? "type" : right.Name; _engine.ErrorHandler.FatalError(token, $"No such operation: {lname} {operationName} {rname}."); } } return((SkryptObject)result); }