public async Task <ReturnCode> Run(CodeExecutor obj) { if (parameter != null) { var v = parameter.GetValue(obj); if (v != null) { if (v is Vector3 f) { if (float.IsNaN(f.x) || float.IsNaN(f.y) || float.IsNaN(f.z)) { f = Vector3.zero; } obj.transform.Translate(f); } else if (v is Vector3Int g) { if (float.IsNaN(g.x) || float.IsNaN(g.y) || float.IsNaN(g.z)) { g = Vector3Int.zero; } obj.transform.Translate(g); } } } return(ReturnCode.None); }
public async Task <ReturnCode> Run(CodeExecutor obj) { var v = parameter?.GetValue(obj); if (v != null) { if (v is Quaternion q) { obj.transform.rotation = q; } else if (v is Vector3 f) { if (float.IsNaN(f.x) || float.IsNaN(f.y) || float.IsNaN(f.z)) { f = Vector3.zero; } obj.transform.rotation = Quaternion.Euler(f); } else if (v is Vector3Int g) { if (float.IsNaN(g.x) || float.IsNaN(g.y) || float.IsNaN(g.z)) { g = Vector3Int.zero; } obj.transform.rotation = Quaternion.Euler(g); } } return(ReturnCode.None); }
public object GetValue(CodeExecutor obj2) { if (value != null) { var obj = value?.GetValue(obj2); if (obj != null) { if (obj is CodeExecutor c) { return(c.transform.rotation); } if (obj is Vector3 v) { return(Quaternion.Euler(v)); } if (obj is Vector3Int vi) { return(Quaternion.Euler(vi)); } } return(Quaternion.identity); } return(obj2.transform.rotation); }
public async Task <ReturnCode> Run(CodeExecutor obj) { var possibleList = variable?.GetValue(obj); if (possibleList is Table tbl) { var v1 = index?.GetValue(obj); if (v1 != null) { tbl[v1] = value?.GetValue(obj); } } /* * else if (variable is VariableValue varVal && possibleList is string str) * { * var ind = index?.GetValue(obj); * var val = value?.GetValue(obj); * * if (ind != null) * { * if (ind is BigInteger b) * { * * } * else if (ind is string str2) * { * string valStr = val != null ? val.ToString() : ""; * } * } * } */ return(ReturnCode.None); }
public void TestCompileVSCode() { var codeExecutor = new CodeExecutor(this); var tempFile = Path.GetTempFileName(); File.WriteAllText(tempFile, sampleVSCodeToExecute); using (var compileHelper = codeExecutor.CompileTheCode(null, tempFile, CancellationToken.None)) { var res = compileHelper.ExecuteTheCode(); if (res is string resString) { Assert.Fail(resString); } var task = res as Task; if (task.IsFaulted) { LogMessage($"Faulted task {task.Exception}"); Assert.IsTrue(task.Exception.ToString().Contains(" The SVsSolution service is unavailable.")); } } // Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("in DoSomeWorkAsync")).FirstOrDefault()); Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("Registering solution events")).FirstOrDefault()); Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("UnRegistering solution events")).FirstOrDefault()); Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("The SVsSolution service is unavailable")).FirstOrDefault()); }
public async Task DeleteObject(CodeExecutor obj) { if (obj != null) { SceneExecutor.Instance.Delete(obj); } }
public async Task <ReturnCode> Run(CodeExecutor obj) { if (obj.rigidbody != null) { if (value != null) { var val = value.GetValue(obj); if (val is Vector3 i) { obj.rigidbody.angularVelocity = i; } else if (val is Vector3Int f) { obj.rigidbody.angularVelocity = f; } } else { obj.rigidbody.angularVelocity = Vector3.zero; } } return(ReturnCode.None); }
public async Task <ReturnCode> Run(CodeExecutor obj) { if (parameter != null) { var v = parameter.GetValue(obj); if (v != null) { if (v is float f) { await Task.Delay(Mathf.FloorToInt(f * 1000)); } else if (v is int i) { await Task.Delay(i * 1000); } else if (v is BigInteger b) { await Task.Delay((int)b * 1000); } else { await Task.Delay(1); } } else { await Task.Delay(1); } } else { await Task.Delay(1); } return(ReturnCode.None); }
public override bool Execute(out ResultTuple ret, ResultTuple[] results, Plan.ParameterChooser[] parameterMap, TextWriter executionLog, TextWriter debugLog, out Exception exceptionThrown, out bool contractViolated, bool forbidNull) { contractViolated = false; Util.Assert(parameterMap.Length == 2); object receiver = results[parameterMap[0].planIndex].tuple[parameterMap[0].resultIndex]; object val = results[parameterMap[1].planIndex].tuple[parameterMap[1].resultIndex]; if (!this.coverageInfo.IsStatic) { Util.Assert(receiver != null); } if (forbidNull) { Util.Assert(val != null); } CodeExecutor.CodeToExecute call = delegate() { ffield.SetValue(receiver, val); }; executionLog.WriteLine("set field " + ffield.Name); executionLog.Flush(); if (!CodeExecutor.ExecuteReflectionCall(call, debugLog, out exceptionThrown)) { ret = null; return(false); } ret = new ResultTuple(ffield, receiver); return(true); }
public void TestCompilePragma() { var strCodeToExecute = @" // can add the fullpath to an assembly for reference like so: //Pragma: verbose=true //Pragma: GenerateInMemory=false using System; namespace DoesntMatter { public class foo {} public class SomeClass { public static string DoMain(object [] args) { var x = 1; var y = 100 / x; return ""did main "" + y.ToString() +"" ""; } } } "; var codeExecutor = new CodeExecutor(this); var tempFile = Path.GetTempFileName(); File.WriteAllText(tempFile, strCodeToExecute); var res = codeExecutor.CompileTheCode(null, tempFile, CancellationToken.None); LogMessage(res.ToString()); Assert.IsNotNull(_lstLoggedStrings.Where(s => s.Contains("Pragma GenerateInMemory = False")).FirstOrDefault()); }
public RunResultDTO SendSolution(int id, [FromBody] TaskSolutionDTO taskSolution) { using (programming_tasksEntities entities = new programming_tasksEntities()) { string username = Thread.CurrentPrincipal.Identity.Name; //get username from authentication user userResult = entities.users.First(user => user.username == username); task taskResult = entities.tasks.Find(id); if (taskResult == null) { ExceptionHandler.ThrowException(HttpStatusCode.NotFound, "Task with id " + id + " doesn't exist"); } CodeExecutor codeExecutor = new CodeExecutor(); RunResultDTO runResult = codeExecutor.RunTask(taskSolution, taskResult); entities.users_solutions.Add(new users_solutions() { user = userResult, task = taskResult, code = taskSolution.Code, status = runResult.CorrectExamples == taskResult.examples.Count, description = runResult.CorrectExamples == taskResult.examples.Count ? "Code executed successfully for all examples" : "Code failed at some example(s)", date = DateTime.Now }); entities.SaveChanges(); return(runResult); } }
public object GetValue(CodeExecutor obj) { var v1 = value1?.GetValue(obj); if (v1 == null) { return(true); } if (v1 is bool b) { return(!b); } //if (v1 is float || v1 is BigInteger || v1 is Vector3 || v1 is Vector3Int) return v1 * -1; if (v1 is Quaternion q) { return(Quaternion.Inverse(q)); } if (v1 is Vector3 v) { return(-v); } if (v1 is Vector3Int vi) { return(-vi); } return(false); }
public void TestCompileCode() { var strCodeToExecute = @" // can add the fullpath to an assembly for reference like so: ////Ref: c:\progam files \...myAsm.dll ////Ref: System.dll ////Ref: System.linq.dll ////Ref: System.core.dll ////Ref: <%= asmMemSpectBase.Location %> using System; namespace DoesntMatter { public class foo {} public class SomeClass { public static string DoMain(object [] args) { var x = 1; var y = 100 / x; return ""did main "" + y.ToString() +"" ""; } } } "; var codeExecutor = new CodeExecutor(this); var tempFile = Path.GetTempFileName(); File.WriteAllText(tempFile, strCodeToExecute); using (var compileHelper = codeExecutor.CompileTheCode(null, tempFile, CancellationToken.None)) { var res = compileHelper.ExecuteTheCode(); Assert.AreEqual("did main 100 ", res.ToString()); } }
public async Task <CodeExecutor> DelayedCreateObject(CodeExecutor original, SelectableObject selectable) { var obj = selectable.GetComponent <IObject>(); if (obj.cloneCount >= 25) { await Task.Delay(1); } if (!running) { return(null); } var exec = Instantiate(original, scene); //CreateObject(selectable, false, obj, selectable.GetComponent<CodeExecutor>()); if (obj.lastCloneTime == Time.unscaledTime) { obj.cloneCount++; } else { obj.lastCloneTime = Time.unscaledTime; obj.cloneCount = 1; } return(exec); }
public CodeQualityRater(CodeAnalyzerFactory codeAnalyzerFactory, CodeExecutor codeExecutor, CodeQualityRaterConfiguration codeQualityRaterConfiguration, ExecutableCodeFactory executableCodeFactory) { _codeAnalyzerFactory = codeAnalyzerFactory; _codeExecutor = codeExecutor; _codeQualityRaterConfiguration = codeQualityRaterConfiguration; _executableCodeFactory = executableCodeFactory; }
public object GetValue(CodeExecutor obj) { var v1 = list?.GetValue(obj); var v2 = value2?.GetValue(obj); if (v1 is Table tbl) { return(tbl[v2]); } if (v1 is string str) { var ind = -1; if (v2 is int i) { ind = i; } else if (v2 is BigInteger b) { ind = (int)b; } else if (v2 is float f) { ind = Mathf.RoundToInt(f); } return(ind < 0 || ind >= str.Length ? null : str[ind].ToString()); } return(null); }
public async Task <ReturnCode> Run(CodeExecutor obj2) { if (parameter != null) { var v = parameter?.GetValue(obj2); if (v is CodeExecutor obj) { obj2.transform.LookAt(obj.transform); } if (v is Vector3 pos) { obj2.transform.rotation = Quaternion.FromToRotation(Vector3.forward, pos - obj2.transform.position); } if (v is Vector3Int pos2) { obj2.transform.rotation = Quaternion.FromToRotation(Vector3.forward, pos2 - obj2.transform.position); } return(ReturnCode.None); } obj2.transform.rotation = Quaternion.FromToRotation(Vector3.forward, -obj2.transform.position); return(ReturnCode.None); }
public object GetValue(CodeExecutor obj) { var v1 = value1?.GetValue(obj); var v2 = value2?.GetValue(obj); switch (equalType) { case EqualType.Equals: return(Equals(v1, v2)); case EqualType.NotEquals: return(!Equals(v1, v2)); case EqualType.Greater: return(Greater(v1, v2)); case EqualType.Less: return(Less(v1, v2)); case EqualType.GreaterEqual: return(Equals(v1, v2) || Greater(v1, v2)); case EqualType.LessEqual: return(Equals(v1, v2) || Less(v1, v2)); } return(false); }
public object GetValue(CodeExecutor obj) { if (obj.Variables.TryGetValue(variableIndex, out var value)) { return(value); } return(null); }
public async Task <ReturnCode> Run(CodeExecutor obj) { if (value != null) { //value.executor.Variables[value.variableIndex].SetValue(parameter); value.SetValue(parameter, obj); } return(ReturnCode.None); }
public void SetValue(IValue newValue, CodeExecutor obj) { if (obj.Variables.ContainsKey(variableIndex)) { obj.Variables[variableIndex] = newValue?.GetValue(obj); } else { obj.Variables.Add(variableIndex, newValue?.GetValue(obj)); } }
public async Task <ReturnCode> Run(CodeExecutor obj) { var possibleList = variable?.GetValue(obj); if (possibleList is Table tbl) { tbl.Insert(index?.GetValue(obj), value?.GetValue(obj)); } return(ReturnCode.None); }
public object GetValue(CodeExecutor obj) { var v1 = value?.GetValue(obj); if (v1 != null) { if (v1 is Vector3Int vi) { switch (component) { case VectorComponent.X: return(new BigInteger(vi.x)); case VectorComponent.Y: return(new BigInteger(vi.y)); case VectorComponent.Z: return(new BigInteger(vi.z)); } } if (v1 is Vector3 v) { switch (component) { case VectorComponent.X: return(v.x); case VectorComponent.Y: return(v.y); case VectorComponent.Z: return(v.z); } } if (v1 is Quaternion q) { switch (component) { case VectorComponent.X: return(q.x); case VectorComponent.Y: return(q.y); case VectorComponent.Z: return(q.z); } } } return(0); }
public void SetValueToObject(object newValue, CodeExecutor obj) { if (obj.Variables.ContainsKey(variableIndex)) { obj.Variables[variableIndex] = newValue; } else { obj.Variables.Add(variableIndex, newValue); } }
public async Task TestCompileVB() { await Task.Yield(); var vbfile = @"C:\Users\calvinh\source\repos\PerfGraphVSIX\PerfGraphVSIX\CodeSamples\Cartoon.vb"; var codeExecutor = new CodeExecutor(this); var res = codeExecutor.CompileTheCode(null, vbfile, CancellationToken.None); LogMessage("{0}", res.ToString()); }
public async Task <ReturnCode> Run(CodeExecutor obj) { var possibleList = variable?.GetValue(obj); if (possibleList is Table tbl) { tbl.Clear(); } return(ReturnCode.None); }
public object GetValue(CodeExecutor obj) { var v1 = value1?.GetValue(obj); var v2 = value2?.GetValue(obj); if (v1 is int i) { if (v2 is int j) { return(j == 0 ? 0 : i % j); } if (v2 is BigInteger bj) { return(bj == 0 ? 0 : i % bj); } if (v2 is float f) { return(f == 0 ? 0 : i % f); } } else if (v1 is float fi) { if (v2 is int j) { return(j == 0 ? 0 : fi % j); } if (v2 is BigInteger bj) { return(bj == 0 ? 0 : fi % (float)bj); } if (v2 is float f) { return(f == 0 ? 0 : fi % f); } } else if (v1 is BigInteger bi) { if (v2 is int j) { return(j == 0 ? 0 : bi % j); } if (v2 is BigInteger bj) { return(bj == 0 ? 0 : bi % bj); } if (v2 is float f) { return(f == 0 ? 0 : (float)bi % f); } } return(0); }
public object GetValue(CodeExecutor obj) { switch (inputCode) { case MultiInputCode.Move: return(PlayInputs.MoveDirection); case MultiInputCode.Look: return(PlayInputs.CameraMovement); } return(false); }
public async Task <ReturnCode> Run(CodeExecutor obj) { var var = condition?.GetValue(obj); if (var is bool b && b || (!(var is bool) && var != null)) { var r = await scope1?.Execute(obj); if (r != ReturnCode.None) { return(r); } }
public void TestCompileCodeReturnTask() { var strCodeToExecute = @" // can add the fullpath to an assembly for reference like so: ////Ref: c:\progam files \...myAsm.dll ////Ref: System.dll ////Ref: System.linq.dll ////Ref: System.core.dll ////Ref: <%= asmMemSpectBase.Location %> using System; using System.Threading.Tasks; namespace DoesntMatter { public class foo {} public class SomeClass { async Task<string> DoWaitAsync() { await Task.Delay(100); return ""did delay""; } public static async Task<string> DoMain(object [] args) { var x = 1; var y = 100 / x; return ""did main "" + y.ToString() +"" ""; } } } "; var codeExecutor = new CodeExecutor(this); var tempFile = Path.GetTempFileName(); File.WriteAllText(tempFile, strCodeToExecute); using (var compileHelper = codeExecutor.CompileTheCode(null, tempFile, CancellationToken.None)) { var res = compileHelper.ExecuteTheCode(); if (res is Task <string> task) { task.Wait(); Assert.AreEqual("did main 100 ", task.Result); } else { Assert.Fail(); } } }