Unit tests for SceneCoordinate operators
[situare] / tests / coordinates / scenecoordinate / testscenecoordinate.cpp
index 2a261f8..764f981 100644 (file)
@@ -39,6 +39,7 @@ private Q_SLOTS:
     void conversion();
     void conversion_data();
     void isNull();
+    void operators();
     void settersAndGetters();
 };
 
@@ -123,6 +124,52 @@ void TestSceneCoordinate::isNull()
     QVERIFY(!coordinate.isNull());
 }
 
+void TestSceneCoordinate::operators()
+{
+    // operator*=
+    SceneCoordinate coordinate(100, 30);
+    coordinate *= 3;
+    QCOMPARE(coordinate.x(), 300.0);
+    QCOMPARE(coordinate.y(), 90.0);
+
+    // operator+=
+    SceneCoordinate coordinate2(110, 40);
+    coordinate2 += SceneCoordinate(40, 75);
+    QCOMPARE(coordinate2.x(), 150.0);
+    QCOMPARE(coordinate2.y(), 115.0);
+
+    // operator-=
+    SceneCoordinate coordinate3(120, 50);
+    coordinate3 -= SceneCoordinate(45, 80);
+    QCOMPARE(coordinate3.x(), 75.0);
+    QCOMPARE(coordinate3.y(), -30.0);
+
+    // operator+
+    SceneCoordinate coordinate4(130, 60);
+    SceneCoordinate coordinate5(25, 10);
+    SceneCoordinate result = coordinate4 + coordinate5;
+    QCOMPARE(result.x(), 155.0);
+    QCOMPARE(result.y(), 70.0);
+    QVERIFY(&result != &coordinate4);
+    QVERIFY(&result != &coordinate5);
+
+    // operator-
+    SceneCoordinate coordinate6(140, 70);
+    SceneCoordinate coordinate7(15, 5);
+    SceneCoordinate result2 = coordinate6 - coordinate7;
+    QCOMPARE(result2.x(), 125.0);
+    QCOMPARE(result2.y(), 65.0);
+    QVERIFY(&result2 != &coordinate6);
+    QVERIFY(&result2 != &coordinate7);
+
+    // operator*
+    SceneCoordinate coordinate8(10, 20);
+    SceneCoordinate result3 = 4 * coordinate8;
+    QCOMPARE(result3.x(), 40.0);
+    QCOMPARE(result3.y(), 80.0);
+    QVERIFY(&result3 != &coordinate8);
+}
+
 void TestSceneCoordinate::settersAndGetters()
 {
     SceneCoordinate coordinate;