public void ExecuteTest6() { var exp = new Sub(new Number(2), new Sqrt(new Number(-9))); var expected = new Complex(2, -3); Assert.Equal(expected, exp.Execute()); }
public void ExecuteTest3() { var exp = new Sub(new Number(7), new ComplexNumber(2, 4)); var expected = new Complex(5, -4); Assert.Equal(expected, exp.Execute()); }
public void ExecuteTest4() { var exp = new Sub(new ComplexNumber(7, 3), new Number(2)); var expected = new Complex(5, 3); Assert.Equal(expected, exp.Execute()); }
internal void ExecuteSubroutine(AThread Thread, long Position) { do { if (EnableCpuTrace) { if (!SymbolTable.TryGetValue(Position, out string SubName)) { SubName = string.Empty; } CpuTrace?.Invoke(this, new ACpuTraceEventArgs(Position, SubName)); } if (!CachedSubs.TryGetValue(Position, out ATranslatedSub Sub)) { Sub = TranslateTier0(Thread.Memory, Position); } if (Sub.ShouldReJit()) { TranslateTier1(Thread.Memory, Position); } Position = Sub.Execute(Thread.ThreadState, Thread.Memory); }while (Position != 0 && Thread.ThreadState.Running); }
public void SubTwoVectorsTest() { var vector1 = new Vector(new[] { new Number(2), new Number(3) }); var vector2 = new Vector(new[] { new Number(7), new Number(1) }); var sub = new Sub(vector1, vector2); var expected = new Vector(new[] { new Number(-5), new Number(2) }); var result = sub.Execute(); Assert.Equal(expected, result); }
public void MultiOpMulSub() { // ({1, 2, 3} * 4) - {2, 3, 4} var vector1 = new Vector(new[] { new Number(1), new Number(2), new Number(3) }); var vector2 = new Vector(new[] { new Number(2), new Number(3), new Number(4) }); var mul = new Mul(vector1, new Number(4)); var sub = new Sub(mul, vector2); var expected = new Vector(new[] { new Number(2), new Number(5), new Number(8) }); var result = sub.Execute(); Assert.Equal(expected, result); }
public void Sub4MatricesTest() { var vector1 = new Vector(new IExpression[] { new Number(1), new Number(2) }); var vector2 = new Vector(new IExpression[] { new Number(1), new Number(2) }); var vector3 = new Vector(new IExpression[] { new Number(1), new Number(2) }); var vector4 = new Vector(new IExpression[] { new Number(1), new Number(2) }); var sub1 = new Sub(vector1, vector2); var sub2 = new Sub(vector3, vector4); var sub3 = new Sub(sub1, sub2); var expected = new Vector(new IExpression[] { new Number(0), new Number(0) }); Assert.Equal(expected, sub3.Execute()); }
public void ExecuteSubroutine(long Position) { do { if (CachedSubs.TryGetValue(Position, out ATranslatedSub Sub) && !Sub.NeedsReJit) { Position = Sub.Execute(Thread.Registers, Thread.Memory); } else { Position = TranslateSubroutine(Position).Execute(Thread.Registers, Thread.Memory); } }while (Position != 0 && KeepRunning); }
public void PassiveChainTest() { //Nested Adds var add3 = new Add().And(new Add().And(new Add())); Assert.AreEqual(3, add3.Execute(0)); var sub5 = new Sub().And(new Sub().And(new Sub().And(new Sub().And(new Sub())))); Assert.AreEqual(10, sub5.Execute(15)); //Continous adds to Root var sub2 = new Add().And(new Sub()).And(new Sub()).And(new Sub()); Assert.AreEqual(3, sub2.Execute(5)); var add5 = new Add(); for (int i = 0; i < 4; i++) add5.And(new Add()); Assert.AreEqual(5, add5.Execute(0)); }
public void ExecuteSubroutine(AThread Thread, long Position) { do { if (EnableCpuTrace) { if (!SymbolTable.TryGetValue(Position, out string SubName)) { SubName = string.Empty; } CpuTrace?.Invoke(this, new ACpuTraceEventArgs(Position, SubName)); } if (!CachedSubs.TryGetValue(Position, out ATranslatedSub Sub) || Sub.NeedsReJit) { Sub = TranslateSubroutine(Thread.Memory, Position); } Position = Sub.Execute(Thread.ThreadState, Thread.Memory); }while (Position != 0 && KeepRunning); }
private void ExecuteSubroutineA64(AThreadState State, AMemory Memory, long Position) { do { if (EnableCpuTrace) { CpuTrace?.Invoke(this, new ACpuTraceEventArgs(Position)); } if (!Cache.TryGetSubroutine(Position, out ATranslatedSub Sub)) { Sub = TranslateTier0(State, Memory, Position); } if (Sub.ShouldReJit()) { TranslateTier1(State, Memory, Position); } Position = Sub.Execute(State, Memory); }while (Position != 0 && State.Running); }
public void SubTwoMatricesTest() { var matrix1 = new Matrix(new[] { new Vector(new[] { new Number(6), new Number(3) }), new Vector(new[] { new Number(2), new Number(1) }) }); var matrix2 = new Matrix(new[] { new Vector(new[] { new Number(9), new Number(2) }), new Vector(new[] { new Number(4), new Number(3) }) }); var sub = new Sub(matrix1, matrix2); var expected = new Matrix(new[] { new Vector(new[] { new Number(-3), new Number(1) }), new Vector(new[] { new Number(-2), new Number(-2) }) }); var result = sub.Execute(); Assert.Equal(expected, result); }
public void ExecuteTest1() { var exp = new Sub(new Number(1), new Number(2)); Assert.Equal(-1.0, exp.Execute()); }