#include "catch.hpp" TEST_CASE("Initiering och storlek") { SECTION("Empty") { CHECK_THROWS(Vektor(0)); } SECTION("One element") { Vektor v; CHECK(v.size() == 1); } SECTION("N elements") { Vektor v(2); CHECK(v.size() == 2); } SECTION("initializer_list") { Vektor v{2,3,4,5,4.4}; CHECK(v.size() == 5); } } TEST_CASE("Indexering") { Vektor v{2,3,4.2}; REQUIRE(v[0] == Approx(2.0)); vector vals {2,3,4.2}; for ( size_t index{}; index < v.size(); ++index ) { CHECK(v[index] == Approx(vals[index])); } } TEST_CASE("Addition") { Vektor v{2.3, 4, 5.5}; SECTION( "Vektor + skalär" ) { Vektor v2{ v+2 }; CHECK(v2[0] == Approx(4.3)); CHECK(v2[2] == Approx(7.5)); } SECTION( "skalär + Vektor" ) { Vektor v2{ 2+v }; CHECK(v2[0] == Approx(4.3)); CHECK(v2[2] == Approx(7.5)); } SECTION( "Vektor + Vektor") { Vektor v2 {4, 2.3, 6}; Vektor summa { v + v2 }; CHECK(summa[0] == Approx(6.3)); CHECK(summa[1] == Approx(6.3)); CHECK(summa[2] == Approx(11.5)); } SECTION( "Vektor + Vektor (fel storlek)" ) { Vektor v2 {2,3,5,6,8}; CHECK_THROWS( v + v2 ); } }