@@ -77,3 +77,35 @@ TEST_F(VariableBlocksTest, SetVariableTo)
7777 ASSERT_EQ (var1->value (), " test" );
7878 ASSERT_EQ (var2->value (), 123 );
7979}
80+
81+ TEST_F (VariableBlocksTest, ChangeVariableBy)
82+ {
83+ auto target = std::make_shared<Sprite>();
84+ auto var1 = std::make_shared<Variable>(" " , " " , 835.21 );
85+ target->addVariable (var1);
86+ auto var2 = std::make_shared<Variable>(" " , " " , " Hello world" );
87+ target->addVariable (var2);
88+ ScriptBuilder builder (m_extension.get (), m_engine, target);
89+
90+ builder.addBlock (" data_changevariableby" );
91+ builder.addEntityField (" VARIABLE" , var1);
92+ builder.addValueInput (" VALUE" , " 5.12" );
93+
94+ builder.addBlock (" data_changevariableby" );
95+ builder.addEntityField (" VARIABLE" , var2);
96+ builder.addValueInput (" VALUE" , -2.5 );
97+
98+ builder.build ();
99+
100+ builder.run ();
101+ ASSERT_EQ (var1->value (), 840.33 );
102+ ASSERT_EQ (var2->value (), -2.5 );
103+
104+ builder.run ();
105+ ASSERT_EQ (var1->value (), 845.45 );
106+ ASSERT_EQ (var2->value (), -5 );
107+
108+ builder.run ();
109+ ASSERT_EQ (var1->value (), 850.57 );
110+ ASSERT_EQ (var2->value (), -7.5 );
111+ }
0 commit comments