You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have been using this project and it's quite amazing!
Describe the solution you'd like
I would like to test out a combination of nodes. to do this, I need the ability to push individual messages to nodes and (sort of) invoke multiple cycles in the graph. for instance,
Push a message to one of the nodes
Assert the value in the output
Push message onto one of the other nodes
Assert the value in the output
Describe alternatives you've considered
I have been looking at the unit tests. I can see you create out ts in the test and push it to the node/graph and check the output in the end. I am able to do the same, however, do you think I can test out using the above workflow pls
I'm somewhat curious what you're using the above workflow for. Is it just so tests fail quicker if an output value is incorrect? You could always add assertions within the node itself before you return, but that will incur unnecessary overhead.
As you alluded to, you can add any intermediate node's output to the result of csp.run by using csp.add_graph_output. Then you can extract all its values from the result dictionary and unit test against those values.
ahh, sorry, should have explained better. so, I use the above to do unit testing of each node by updating each input as a separate step and also to try out different scenarios(not unit testing, strictly speaking).
consider the below pls:
Say, a node calculates sum of numbers sent across 2 streams
step 1: I would like to update just one stream
Check the graph output
step 2: I would like to update just second stream
Check the graph output
basically, control the graph cycles, if you will, to check intermediate outputs.
Activity
AdamGlustein commentedon Jun 27, 2024
I'm somewhat curious what you're using the above workflow for. Is it just so tests fail quicker if an output value is incorrect? You could always add assertions within the node itself before you return, but that will incur unnecessary overhead.
As you alluded to, you can add any intermediate node's output to the result of
csp.runby usingcsp.add_graph_output. Then you can extract all its values from the result dictionary and unit test against those values.Roh-codeur commentedon Jun 27, 2024
ahh, sorry, should have explained better. so, I use the above to do unit testing of each node by updating each input as a separate step and also to try out different scenarios(not unit testing, strictly speaking).
consider the below pls:
basically, control the graph cycles, if you will, to check intermediate outputs.
AdamGlustein commentedon Jun 27, 2024
Ok, thanks for more info. This is doable using
csp.curveif you just set the times to be in a specific order. In your example:csp.curveat time tcsp.curveat time t+1You could also avoid any modifications to N by just checking all outputs at the end of
csp.run. Does this answer your question?Roh-codeur commentedon Jun 27, 2024
ahh ok, I must be doing something wrong in my current tests then, I will give it another shot, thanks a lot mate. I will try again when I am home