| 141 | } |
| 142 | |
| 143 | func TestStruct_ArrayAdd_AddAndRemoveInputNodes(t *testing.T) { |
| 144 | var n nodes.Node = &ArrayTestStructNode{ |
| 145 | Data: ArrayTestStruct{ |
| 146 | Values: []nodes.Output[float64]{ |
| 147 | nodes.NewValue(1.).Outputs()["Value"].(nodes.Output[float64]), |
| 148 | nodes.NewValue(2.).Outputs()["Value"].(nodes.Output[float64]), |
| 149 | nodes.NewValue(3.).Outputs()["Value"].(nodes.Output[float64]), |
| 150 | }, |
| 151 | }, |
| 152 | } |
| 153 | |
| 154 | output := n.Outputs() |
| 155 | require.Contains(t, output, "Sum") |
| 156 | sumOutput := output["Sum"].(nodes.Output[float64]) |
| 157 | assert.Equal(t, 6., sumOutput.Value()) |
| 158 | assert.Equal(t, 0, sumOutput.Version()) |
| 159 | |
| 160 | valueNode := nodes.NewValue(4.) |
| 161 | inputToAdd := valueNode.Outputs()["Value"].(nodes.Output[float64]) |
| 162 | |
| 163 | // Test Adding to the input port |
| 164 | n.Inputs()["Values"].(nodes.ArrayValueInputPort).Add(inputToAdd) |
| 165 | assert.Equal(t, 10., sumOutput.Value()) |
| 166 | assert.Equal(t, 1, sumOutput.Version()) |
| 167 | |
| 168 | // Change the value thats added to the input port |
| 169 | valueNode.Set(5) |
| 170 | assert.Equal(t, 11., sumOutput.Value()) |
| 171 | assert.Equal(t, 2, sumOutput.Version()) |
| 172 | |
| 173 | // Test removing from the input port |
| 174 | n.Inputs()["Values"].(nodes.ArrayValueInputPort).Remove(inputToAdd) |
| 175 | assert.Equal(t, 6., sumOutput.Value()) |
| 176 | assert.Equal(t, 3, sumOutput.Version()) |
| 177 | } |
| 178 | |
| 179 | func TestNodeInfo(t *testing.T) { |
| 180 | |