Added compound ex tests
authorNilsForssen <forssennils@gmail.com>
Fri, 6 Oct 2023 14:41:54 +0000 (16:41 +0200)
committerNilsForssen <forssennils@gmail.com>
Fri, 6 Oct 2023 14:41:54 +0000 (16:41 +0200)
src/operators.cc
src/test.cc

index f4e43a335cff4604b00796500e397f333b3aad04..5cdf094022c509d99c745170dd7294795acbc0e7 100644 (file)
@@ -26,7 +26,7 @@ std::string Operator::get_infix() const
 std::string Operator::get_prefix() const
 {
     std::stringstream concat{};
-    concat << symbol << " " << lhs->get_postfix() << " " << rhs->get_postfix();
+    concat << symbol << " " << lhs->get_prefix() << " " << rhs->get_prefix();
     return concat.str();
 }
 
index 434a80c8562e30882a0b9f003ee47f807add3b08..57ad9a0f725f583ee4a74083c26a6082c5347eff 100644 (file)
@@ -70,6 +70,24 @@ TEST_CASE("Noder")
         CHECK_THROWS( Exponent{my_n_double, my_double}.get_value() );
         CHECK_THROWS( Exponent{zero, my_n_double}.get_value() );
     }
+
+    SECTION("Compound Expressions")
+    {
+        Const_double my_double{2};
+        Const_double my_double_2{1.5};
+        Const_int my_int{3};
+        Const_int my_int_2{7};
+
+        Addition my_add{my_int, my_double};
+        Multiplication my_mult{my_int_2, my_double_2};
+        Exponent my_exp{my_add, my_mult};
+
+        CHECK( my_exp.get_postfix() == "3 2.000 + 7 1.500 * ^" );
+        CHECK( my_exp.get_infix() == "((3+2.000)^(7*1.500))" );
+        CHECK( my_exp.get_prefix() == "^ + 3 2.000 * 7 1.500" );
+        CHECK( my_exp.get_value() == 21836601.3427713849 );
+        
+    }
 }
 
 int main()