@@ -11,31 +11,68 @@ using namespace BI;
1111namespace BinaryOperationNodesTest
1212{
1313
14- TEST (TestAllBinaryOperationNodes )
14+ TEST (TestAdditionNode )
1515{
1616 TestUIEnvironment env;
1717 NodeUIManager uiManager (env);
1818
1919 UINodePtr val1 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 1.0 , 1.0 )), EmptyEvaluationEnv);
2020 UINodePtr val2 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 2.0 , 1.0 )), EmptyEvaluationEnv);
21- UINodePtr val3 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value3" ), Point (0 , 0 ), 3.0 , 1.0 )), EmptyEvaluationEnv);
22- UINodePtr add = uiManager.AddNode (UINodePtr (new AdditionNode (LocString (L" Addition" ), Point (0 , 0 ))), EmptyEvaluationEnv);
23- UINodePtr sub = uiManager.AddNode (UINodePtr (new SubtractionNode (LocString (L" Subtracion" ), Point (0 , 0 ))), EmptyEvaluationEnv);
24- UINodePtr mul = uiManager.AddNode (UINodePtr (new MultiplicationNode (LocString (L" Multiplication" ), Point (0 , 0 ))), EmptyEvaluationEnv);
25- UINodePtr div = uiManager.AddNode (UINodePtr (new DivisionNode (LocString (L" Division" ), Point (0 , 0 ))), EmptyEvaluationEnv);
26-
27- uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), add->GetUIInputSlot (SlotId (" a" )));
28- uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), add->GetUIInputSlot (SlotId (" b" )));
29- uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), sub->GetUIInputSlot (SlotId (" a" )));
30- uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), sub->GetUIInputSlot (SlotId (" b" )));
31- uiManager.ConnectOutputSlotToInputSlot (add->GetUIOutputSlot (SlotId (" result" )), mul->GetUIInputSlot (SlotId (" a" )));
32- uiManager.ConnectOutputSlotToInputSlot (sub->GetUIOutputSlot (SlotId (" result" )), mul->GetUIInputSlot (SlotId (" b" )));
33- uiManager.ConnectOutputSlotToInputSlot (mul->GetUIOutputSlot (SlotId (" result" )), div->GetUIInputSlot (SlotId (" a" )));
34- uiManager.ConnectOutputSlotToInputSlot (val3->GetUIOutputSlot (SlotId (" out" )), div->GetUIInputSlot (SlotId (" b" )));
35-
36- ValueConstPtr val = div->Evaluate (EmptyEvaluationEnv);
21+ UINodePtr op = uiManager.AddNode (UINodePtr (new AdditionNode (LocString (L" Addition" ), Point (0 , 0 ))), EmptyEvaluationEnv);
22+ uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" a" )));
23+ uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" b" )));
24+
25+ ValueConstPtr val = op->Evaluate (EmptyEvaluationEnv);
26+ ASSERT (IsSingleType<DoubleValue> (val));
27+ ASSERT (IsEqual (DoubleValue::Get (CreateSingleValue (val)), 3.0 ));
28+ }
29+
30+ TEST (TestSubtractionNode)
31+ {
32+ TestUIEnvironment env;
33+ NodeUIManager uiManager (env);
34+
35+ UINodePtr val1 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 1.0 , 1.0 )), EmptyEvaluationEnv);
36+ UINodePtr val2 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 2.0 , 1.0 )), EmptyEvaluationEnv);
37+ UINodePtr op = uiManager.AddNode (UINodePtr (new SubtractionNode (LocString (L" Subtraction" ), Point (0 , 0 ))), EmptyEvaluationEnv);
38+ uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" a" )));
39+ uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" b" )));
40+
41+ ValueConstPtr val = op->Evaluate (EmptyEvaluationEnv);
3742 ASSERT (IsSingleType<DoubleValue> (val));
3843 ASSERT (IsEqual (DoubleValue::Get (CreateSingleValue (val)), -1.0 ));
3944}
4045
46+ TEST (TestMultiplicationNode)
47+ {
48+ TestUIEnvironment env;
49+ NodeUIManager uiManager (env);
50+
51+ UINodePtr val1 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 1.0 , 1.0 )), EmptyEvaluationEnv);
52+ UINodePtr val2 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 2.0 , 1.0 )), EmptyEvaluationEnv);
53+ UINodePtr op = uiManager.AddNode (UINodePtr (new MultiplicationNode (LocString (L" Multiplication" ), Point (0 , 0 ))), EmptyEvaluationEnv);
54+ uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" a" )));
55+ uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" b" )));
56+
57+ ValueConstPtr val = op->Evaluate (EmptyEvaluationEnv);
58+ ASSERT (IsSingleType<DoubleValue> (val));
59+ ASSERT (IsEqual (DoubleValue::Get (CreateSingleValue (val)), 2.0 ));
60+ }
61+
62+ TEST (TestDivisionNode)
63+ {
64+ TestUIEnvironment env;
65+ NodeUIManager uiManager (env);
66+
67+ UINodePtr val1 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 1.0 , 1.0 )), EmptyEvaluationEnv);
68+ UINodePtr val2 = uiManager.AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Value1" ), Point (0 , 0 ), 2.0 , 1.0 )), EmptyEvaluationEnv);
69+ UINodePtr op = uiManager.AddNode (UINodePtr (new DivisionNode (LocString (L" Division" ), Point (0 , 0 ))), EmptyEvaluationEnv);
70+ uiManager.ConnectOutputSlotToInputSlot (val1->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" a" )));
71+ uiManager.ConnectOutputSlotToInputSlot (val2->GetUIOutputSlot (SlotId (" out" )), op->GetUIInputSlot (SlotId (" b" )));
72+
73+ ValueConstPtr val = op->Evaluate (EmptyEvaluationEnv);
74+ ASSERT (IsSingleType<DoubleValue> (val));
75+ ASSERT (IsEqual (DoubleValue::Get (CreateSingleValue (val)), 0.5 ));
76+ }
77+
4178}
0 commit comments