public void IsGreaterThan(string a, string b, bool signed, TrileanValue expected) { var value1 = new IntegerNValue(a); var value2 = new IntegerNValue(b); Assert.Equal(expected, value1.IsGreaterThan(value2, signed)); }
public void SetBit(int index, TrileanValue expected) { var value = new Integer32Value(0); value.SetBit(index, expected); Assert.Equal(expected, value.GetBit(index)); }
public void IsEqualTo(string a, string b, TrileanValue expected) { var value1 = new IntegerNValue(a); var value2 = new IntegerNValue(b); Assert.Equal(expected, value1.IsEqualTo(value2)); }
public void ReadBit(int index, TrileanValue expected) { var value = new Integer32Value( 0b00000000_00100000, 0b11111111_11110000); Assert.Equal(expected, value.GetBit(index)); }
public void NotTest(TrileanValue value, TrileanValue expected) { Trilean x = value; Trilean y = expected; Assert.Equal(y, x.Not()); Assert.Equal(y, !x); }
public void XorTest(TrileanValue a, TrileanValue b, TrileanValue expected) { Trilean x = a; Trilean y = b; Trilean z = expected; Assert.Equal(z, x.Xor(y)); Assert.Equal(z, x ^ y); }
public void AndTest(TrileanValue a, TrileanValue b, TrileanValue expected) { Trilean x = a; Trilean y = b; Trilean z = expected; Assert.Equal(z, x.And(y)); Assert.Equal(z, x & y); }
public void CompareI8sOnStack(string a, string b, TrileanValue expected) { var stack = ExecutionContext.ProgramState.Stack; stack.Push(new I8Value(a)); stack.Push(new I8Value(b)); var result = Dispatcher.Execute(ExecutionContext, new CilInstruction(CilOpCodes.Ceq)); Assert.True(result.IsSuccess); Assert.Equal(expected, ((I4Value)stack.Top).IsNonZero); }
public void NormalMethodCallShouldBeUserDefined(TrileanValue purity) { _classifier.DefaultMethodCallPurity = purity; var module = ModuleDefinition.FromFile(typeof(Math).Assembly.Location); var mathType = (TypeDefinition)module.LookupMember(typeof(Math).MetadataToken); var sinMethod = mathType.Methods.First(m => m.Name == nameof(Math.Sin)); var instruction = new CilInstruction(CilOpCodes.Call, sinMethod); Assert.Equal(purity, _classifier.IsPure(instruction)); }
public void FloatComparison(CilCode code, double a, double b, TrileanValue expected) { var stack = ExecutionContext.ProgramState.Stack; stack.Push(new FValue(a)); stack.Push(new FValue(b)); var result = Dispatcher.Execute(ExecutionContext, new CilInstruction(code.ToOpCode())); Assert.True(result.IsSuccess); Assert.Equal(expected, ((I4Value)stack.Top).IsNonZero); }
public void IsNonZero(string input, TrileanValue expected) { var value = new IntegerNValue(input); Assert.Equal(expected, value.IsNonZero); }
/// <summary> /// Creates a new trilean. /// </summary> /// <param name="value">The trilean value.</param> public Trilean(TrileanValue value) { Value = value; }