public void TestServicesBasic() { string brainUid = System.Guid.NewGuid().ToString(); string agentUid = System.Guid.NewGuid().ToString(); string brainSource = @" function updateAgent(state) { const v = callVoosService('vec123'); state.floatsOut = [v.x, v.y, v.z]; } "; Debug.Assert(V8InUnity.Native.ResetBrain(brainUid, brainSource)); TestAgentRequest req; req.floats = new float[0]; var cbs = new Native.UpdateCallbacks(); cbs.callService = TestCallServiceCallback; var maybeResponse = V8InUnity.Native.UpdateAgent <TestAgentRequest, TestAgentResponse>(brainUid, agentUid, req, cbs); Debug.Assert(!maybeResponse.IsEmpty()); TestAgentResponse res = maybeResponse.Get(); Debug.Assert(res.floatsOut[0] == 1f); Debug.Assert(res.floatsOut[1] == 2f); Debug.Assert(res.floatsOut[2] == 3f); }
static void TestAgentUpdate() { string brainUid = System.Guid.NewGuid().ToString(); string agentUid = System.Guid.NewGuid().ToString(); string brainSource = @" function updateAgent(state) { state.floatsOut = state.floats.map(x => Math.floor(x)); state.floats = undefined; } "; Debug.Assert(V8InUnity.Native.ResetBrain(brainUid, brainSource)); TestAgentRequest req; req.floats = new float[] { 3.5f, 4.5f }; var maybeResponse = V8InUnity.Native.UpdateAgent <TestAgentRequest, TestAgentResponse>(brainUid, agentUid, req, new Native.UpdateCallbacks()); Debug.Assert(!maybeResponse.IsEmpty()); TestAgentResponse res = maybeResponse.Get(); Debug.Assert(res.floatsOut[0] == 3f); Debug.Assert(res.floatsOut[1] == 4f); }