def test_bad_input_filter_test4(): broker = createBroker(1) mFed1, fedinfo = createMessageFederate(1, "test") filt1 = h.helicsFederateRegisterCloningFilter(mFed1, "filt1") # @test_throws h.HELICSErrorRegistrationFailure with pt.raises(h.HelicsException): filt2 = h.helicsFederateRegisterCloningFilter(mFed1, "filt1") # @test_throws h.HELICSErrorInvalidArgument with pt.raises(h.HelicsException): h.helicsFilterSetString(filt1, "unknown", "string") h.helicsFederateRegisterGlobalEndpoint(mFed1, "ept1", "") h.helicsFilterAddDeliveryEndpoint(filt1, "ept1") h.helicsFilterAddSourceTarget(filt1, "ept1") h.helicsFilterAddDestinationTarget(filt1, "ept1") h.helicsFilterRemoveTarget(filt1, "ept1") # @test_throws h.HELICSErrorInvalidArgument with pt.raises(h.HelicsException): h.helicsFilterSet(filt1, "unknown", 10.0) h.helicsFederateFinalize(mFed1) destroyFederate(mFed1, fedinfo) destroyBroker(broker)
def test_filter_test_types_clone_test_broker_dest_connections(): broker = createBroker(3) sFed, fedinfo1 = createMessageFederate(1, "source", 1.0) dFed, fedinfo2 = createMessageFederate(1, "dest", 1.0) dcFed, fedinfo3 = createMessageFederate(1, "dest_clone", 1.0) p1 = h.helicsFederateRegisterGlobalEndpoint(sFed, "src", "") p2 = h.helicsFederateRegisterGlobalEndpoint(dFed, "dest", "") p3 = h.helicsFederateRegisterGlobalEndpoint(dcFed, "cm", "") f1 = h.helicsFederateRegisterGlobalCloningFilter(dcFed, "filt1") h.helicsFilterAddDeliveryEndpoint(f1, "cm") h.helicsBrokerAddDestinationFilterToEndpoint(broker, "filt1", "dest") h.helicsBrokerAddDestinationFilterToEndpoint(broker, "", "dest") h.helicsFederateEnterExecutingModeAsync(sFed) h.helicsFederateEnterExecutingModeAsync(dcFed) h.helicsFederateEnterExecutingMode(dFed) h.helicsFederateEnterExecutingModeComplete(sFed) h.helicsFederateEnterExecutingModeComplete(dcFed) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_EXECUTION data = "".join(["a" for _ in range(0, 500)]).encode() h.helicsEndpointSendMessageRaw(p1, "dest", data) h.helicsFederateRequestTimeAsync(sFed, 1.0) h.helicsFederateRequestTimeAsync(dcFed, 1.0) h.helicsFederateRequestTime(dFed, 1.0) h.helicsFederateRequestTimeComplete(sFed) h.helicsFederateRequestTimeComplete(dcFed) assert h.helicsFederateHasMessage(dFed) is True m2 = h.helicsEndpointGetMessage(p2) assert h.helicsMessageGetSource(m2) == "src" assert h.helicsMessageGetOriginalSource(m2) == "src" assert h.helicsMessageGetDestination(m2) == "dest" assert h.helicsMessageGetRawDataSize(m2) == len(data) h.helicsFederateFinalizeAsync(sFed) h.helicsFederateFinalizeAsync(dFed) # TODO: figure out why this test fails on CI # @test_broken False # assert h.helicsFederateHasMessage(dcFed) is False # h.helicsFederateRequestTime(dcFed, 2.0) # assert h.helicsFederateHasMessage(dcFed) is True # m2 = h.helicsEndpointGetMessage(p3) # assert h.helicsMessageGetSource(m2) == "src" # assert h.helicsMessageGetOriginalSource(m2) == "src" # assert h.helicsMessageGetDestination(m2) == "cm" # assert h.helicsMessageGetOriginalDestination(m2) == "dest" # assert h.helicsMessageGetRawDataSize(m2) == len(data) # _ = h.helicsFederateHasMessage(dcFed) h.helicsFederateFinalize(dcFed) h.helicsFederateFinalizeComplete(sFed) h.helicsFederateFinalizeComplete(dFed) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_FINALIZE destroyFederate(sFed, fedinfo1) destroyFederate(dFed, fedinfo2) destroyFederate(dcFed, fedinfo3) destroyBroker(broker)
def test_filter_test_types_clone_test_dest_connections(): broker = createBroker(3) sFed, fedinfo1 = createMessageFederate(1, "source", 1.0) dFed, fedinfo2 = createMessageFederate(1, "dest", 1.0) dcFed, fedinfo3 = createMessageFederate(1, "dest_clone", 2.0) p1 = h.helicsFederateRegisterGlobalEndpoint(sFed, "src", "") _ = h.helicsFederateRegisterGlobalEndpoint(dFed, "dest", "") _ = h.helicsFederateRegisterGlobalEndpoint(dcFed, "cm", "") f1 = h.helicsFederateRegisterGlobalCloningFilter(dcFed, "filt1") h.helicsFilterAddDeliveryEndpoint(f1, "cm") cr = h.helicsFederateGetCoreObject(sFed) h.helicsCoreAddDestinationFilterToEndpoint(cr, "filt1", "dest") h.helicsCoreAddDestinationFilterToEndpoint(cr, "", "dest") h.helicsCoreFree(cr) h.helicsFederateEnterExecutingModeAsync(sFed) h.helicsFederateEnterExecutingModeAsync(dcFed) h.helicsFederateEnterExecutingMode(dFed) h.helicsFederateEnterExecutingModeComplete(sFed) h.helicsFederateEnterExecutingModeComplete(dcFed) q = h.helicsCreateQuery("", "filtered_endpoints") filteredEndpoints = h.helicsQueryExecute(q, dFed) assert "cloningdestFilter" in str(filteredEndpoints) h.helicsQueryFree(q) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_EXECUTION data = "".join(["a" for _ in range(0, 500)]).encode() h.helicsEndpointSendMessageRaw(p1, "dest", data) h.helicsFederateFinalize(sFed) # TODO: implement threading # auto dFedExec = [&]() { # h.helicsFederateRequestTime(dFed, 1.0) # m2 = h.helicsEndpointGetMessage(p2) # h.helicsFederateFinalize(dFed, "") # } # h.helics_message m3 # auto dcFedExec = [&]() { # h.helicsFederateRequestTime(dcFed, 2.0) # auto res = h.helicsFederateHasMessage(dcFed) # if (res == h.helics_False) { # std::this_thread::sleep_for(std::chrono::milliseconds(50)) # h.helicsFederateRequestTime(dcFed, 4.0) # } # m3 = h.helicsEndpointGetMessage(p3) # h.helicsFederateFinalize(dcFed) # } # auto threaddFed = std::thread(dFedExec) # auto threaddcFed = std::thread(dcFedExec) # threaddFed.join() # (m2.source, "src") # (m2.original_source, "src") # (m2.dest, "dest") # (m2.length, static_cast<int64_t>(data.size())) # threaddcFed.join() # (m3.source, "src") # (m3.original_source, "src") # (m3.dest, "cm") # (m3.original_dest, "dest") # (m3.length, static_cast<int64_t>(data.size())) # (state = h.helicsFederateGetState(sFed)) # (state == h.helics_state_finalize) destroyFederate(sFed, fedinfo1) destroyFederate(dFed, fedinfo2) destroyFederate(dcFed, fedinfo3) destroyBroker(broker)
def test_filter_test_types_clone_test_connections(): broker = createBroker(3) sFed, fedinfo1 = createMessageFederate( 1, "source", 1.0, ) dFed, fedinfo2 = createMessageFederate(1, "dest", 1.0) dcFed, fedinfo3 = createMessageFederate(1, "dest_clone", 1.0) p1 = h.helicsFederateRegisterGlobalEndpoint(sFed, "src", "") p2 = h.helicsFederateRegisterGlobalEndpoint(dFed, "dest", "") p3 = h.helicsFederateRegisterGlobalEndpoint(dcFed, "cm", "") f1 = h.helicsFederateRegisterGlobalCloningFilter(dcFed, "filt1") h.helicsFilterAddDeliveryEndpoint(f1, "cm") cr = h.helicsFederateGetCoreObject(sFed) h.helicsCoreAddSourceFilterToEndpoint(cr, "filt1", "src") h.helicsCoreAddSourceFilterToEndpoint(cr, "", "src") h.helicsFederateEnterExecutingModeAsync(sFed) h.helicsFederateEnterExecutingModeAsync(dcFed) h.helicsFederateEnterExecutingMode(dFed) h.helicsFederateEnterExecutingModeComplete(sFed) h.helicsFederateEnterExecutingModeComplete(dcFed) q = h.helicsCreateQuery("", "filtered_endpoints") filteredEndpoints = h.helicsQueryExecute(q, sFed) assert "srcFilters" in str(filteredEndpoints) assert "(cloning)" in str(filteredEndpoints) h.helicsQueryFree(q) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_EXECUTION data = "".join(["a" for _ in range(0, 500)]).encode() h.helicsEndpointSendMessageRaw(p1, "dest", data) h.helicsFederateRequestTimeAsync(sFed, 1.0) h.helicsFederateRequestTimeAsync(dcFed, 1.0) h.helicsFederateRequestTime(dFed, 1.0) h.helicsFederateRequestTimeComplete(sFed) h.helicsFederateRequestTimeComplete(dcFed) assert h.helicsFederateHasMessage(dFed) is True m2 = h.helicsEndpointGetMessage(p2) assert h.helicsMessageGetSource(m2) == "src" assert h.helicsMessageGetOriginalSource(m2) == "src" assert h.helicsMessageGetDestination(m2) == "dest" assert h.helicsMessageGetRawDataSize(m2) == len(data) assert h.helicsFederateHasMessage(dcFed) is True m2 = h.helicsEndpointGetMessage(p3) assert h.helicsMessageGetSource(m2) == "src" assert h.helicsMessageGetOriginalSource(m2) == "src" assert h.helicsMessageGetDestination(m2) == "cm" assert h.helicsMessageGetOriginalDestination(m2) == "dest" assert h.helicsMessageGetRawDataSize(m2) == len(data) h.helicsFederateFinalizeAsync(sFed) h.helicsFederateFinalizeAsync(dFed) h.helicsFederateFinalize(dcFed) h.helicsFederateFinalizeComplete(sFed) h.helicsFederateFinalizeComplete(dFed) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_FINALIZE destroyFederate(sFed, fedinfo1) destroyFederate(dFed, fedinfo2) destroyFederate(dcFed, fedinfo3) destroyBroker(broker)
def test_filter_test_types_clone_test(): broker = createBroker(3) sFed, fedinfo1 = createMessageFederate(1, "source", 1) dFed, fedinfo2 = createMessageFederate(1, "dest", 1) dcFed, fedinfo3 = createMessageFederate(1, "dest_clone", 1) p1 = h.helicsFederateRegisterGlobalEndpoint(sFed, "src", "") p2 = h.helicsFederateRegisterGlobalEndpoint(dFed, "dest", "") p3 = h.helicsFederateRegisterGlobalEndpoint(dcFed, "cm", "") f1 = h.helicsFederateRegisterCloningFilter(dcFed, "") h.helicsFilterAddDeliveryEndpoint(f1, "cm") h.helicsFilterAddSourceTarget(f1, "src") h.helicsFederateEnterExecutingModeAsync(sFed) h.helicsFederateEnterExecutingModeAsync(dcFed) h.helicsFederateEnterExecutingMode(dFed) h.helicsFederateEnterExecutingModeComplete(sFed) h.helicsFederateEnterExecutingModeComplete(dcFed) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_EXECUTION state = h.helicsFederateGetState(dcFed) assert state == h.HELICS_STATE_EXECUTION state = h.helicsFederateGetState(dFed) assert state == h.HELICS_STATE_EXECUTION data = "".join(["a" for _ in range(0, 500)]).encode() h.helicsEndpointSendMessageRaw(p1, "dest", data) h.helicsFederateRequestTimeAsync(sFed, 1.0) h.helicsFederateRequestTimeAsync(dcFed, 1.0) h.helicsFederateRequestTime(dFed, 1.0) h.helicsFederateRequestTimeComplete(sFed) h.helicsFederateRequestTimeComplete(dcFed) assert h.helicsFederateHasMessage(dFed) m2 = h.helicsEndpointGetMessage(p2) assert h.helicsMessageGetSource(m2) == "src" assert h.helicsMessageGetOriginalSource(m2) == "src" assert h.helicsMessageGetDestination(m2) == "dest" assert h.helicsMessageGetRawDataSize(m2) == len(data) assert h.helicsFederateHasMessage(dcFed) m2 = h.helicsEndpointGetMessage(p3) assert h.helicsMessageGetSource(m2) == "src" assert h.helicsMessageGetOriginalSource(m2) == "src" assert h.helicsMessageGetDestination(m2) == "cm" assert h.helicsMessageGetOriginalDestination(m2) == "dest" assert h.helicsMessageGetRawDataSize(m2) == len(data) h.helicsFederateFinalizeAsync(sFed) h.helicsFederateFinalizeAsync(dFed) h.helicsFederateFinalize(dcFed) h.helicsFederateFinalizeComplete(sFed) h.helicsFederateFinalizeComplete(dFed) state = h.helicsFederateGetState(sFed) assert state == h.HELICS_STATE_FINALIZE destroyFederate(sFed, fedinfo1) destroyFederate(dFed, fedinfo2) destroyFederate(dcFed, fedinfo3) destroyBroker(broker)