static MathValueDelegate GetDelegate(MathGeneratedFunction function)
        {
            var i = (int)function;

            Assert.IsTrue(i >= 0 && i < (int)MathGeneratedFunction.NumMathFunctions);
            return(MathGeneratedDelegates.s_Delegates[i]);
        }
 public void TestRuntimeMathUnary(MathGeneratedFunction function, float value, float result)
 {
     m_Node = m_Node.WithFunction(function);
     m_GraphInstanceMock.Setup(x => x.ReadValue(m_Node.Inputs.SelectPort(0))).Returns(value);
     ExecuteNode();
     m_GraphInstanceMock.Verify(x => x.Write(m_Node.Result, result), Times.Once());
 }
Example #3
0
 public void TestRuntimeBinaryNumber(MathGeneratedFunction function, float xResult, float yResult, float zResult)
 {
     m_Node = m_Node.WithFunction(function);
     m_GraphInstanceMock.Setup(x => x.ReadValue(m_Node.Inputs.SelectPort(0))).Returns(new float3(1, 2, 3));
     m_GraphInstanceMock.Setup(x => x.ReadValue(m_Node.Inputs.SelectPort(1))).Returns(new float3(0, 1, 2));
     ExecuteNode();
     m_GraphInstanceMock.Verify(x => x.Write(m_Node.Result, new float3(xResult, yResult, zResult)), Times.Once());
 }
        public void TestMultiInputMath(MathGeneratedFunction function, int result)
        {
            m_Node = m_Node.WithFunction(function);

            SetupInputs(1, 2, 3, 4, 5, 6);
            ExecuteNode();
            m_GraphInstanceMock.Verify(x => x.Write(m_Node.Result, result), Times.Once());
        }
        public static MathGenericNode WithFunction(this MathGenericNode node, MathGeneratedFunction function)
        {
            var methodName        = function.GetMethodsSignature().OpType;
            var compatibleMethods = MathOperationsMetaData.MethodsByName[methodName];
            var currentMethod     = compatibleMethods.Single(o => o.EnumName == function.ToString());

            node.Function          = function;
            node.Inputs.DataCount  = currentMethod.Params.Length;
            node.GenerationVersion = MathGeneratedDelegates.GenerationVersion;
            return(node);
        }
 public static OpSignature GetMethodsSignature(this MathGeneratedFunction function)
 {
     return(SignatureForEnum[function]);
 }
 static MathValueDelegate GetDelegate(MathGeneratedFunction function)
 {
     return(MathGeneratedDelegates.s_Delegates[function]);
 }
        public static Value ApplyBinMath(this IGraphInstance graphInstance, InputDataMultiPort inputPort, MathGeneratedFunction binFunction)
        {
            var dataCount = inputPort.DataCount;

            Value[] values = new Value[dataCount];
            for (uint i = 0; i < dataCount; i++)
            {
                values[i] = graphInstance.ReadValue(inputPort.SelectPort(i));
            }
            var mathDelegate = GetDelegate(binFunction);

            return(mathDelegate(values));
        }
 public static MathGenericNode AddMath(this GraphBuilder b, MathGeneratedFunction function)
 {
     return(b.AddNode(new MathGenericNode().WithFunction(function)));
 }
 public static OpSignature GetMethodsSignature(this MathGeneratedFunction function)
 {
     return(SignatureForEnum.TryGetValue(function, out var res) ? res : default);