From 0d6ce40b07b3ae65deb9eb681d481f120001af5b Mon Sep 17 00:00:00 2001 From: Alrik Appelfeldt <alrap417@student.liu.se> Date: Tue, 5 Mar 2024 17:02:04 +0000 Subject: [PATCH] klar testfil --- list/linked_list_test.cc | 199 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 list/linked_list_test.cc diff --git a/list/linked_list_test.cc b/list/linked_list_test.cc new file mode 100644 index 0000000..677938f --- /dev/null +++ b/list/linked_list_test.cc @@ -0,0 +1,199 @@ +#include "catch.hpp" +#include "linked_list.h" + +using namespace std; + +TEST_CASE("Constructors") +{ +SECTION("empty list") +{ + +List list_object; +CHECK(list_object.List_Is_Empty()); +} + + +} +TEST_CASE("Insert") +{ +SECTION("insert single node") +{ +List list_object; +list_object.Insert_Node(1); +CHECK(list_object.at(0) == 1); +} + +SECTION("insert multiple nodes") +{ +List list_object{4, 6, 7}; +CHECK(list_object.at(0) == 4); +CHECK(list_object.at(1) == 6); +CHECK(list_object.at(2) == 7); +} + +} + +TEST_CASE("get size") +{ +SECTION("size = 1") +{ +List list_object; +list_object.Insert_Node(4); +CHECK(list_object.get_size()==1); +} +SECTION("size = 4") +{ +List list_object; +list_object.Insert_Node(1); +list_object.Insert_Node(2); +list_object.Insert_Node(3); +list_object.Insert_Node(4); +CHECK(list_object.get_size() == 4); +} + +} + + +TEST_CASE("Remove") +{ +SECTION("remove one node") +{ + +List list_object; +list_object.Insert_Node(1); +list_object.remove(0); +CHECK(list_object.List_Is_Empty()); +} +SECTION("remove multiple nodes") +{ +List list_object; +list_object.Insert_Node(1); +list_object.Insert_Node(2); +list_object.Insert_Node(3); +list_object.Insert_Node(4); +list_object.remove(0); +list_object.remove(1); + + +CHECK(list_object.get_size() == 2); +} +} + + +TEST_CASE("sorterad lista?") +{ + +SECTION("FIRST TEST") +{ +List list_object; +list_object.Insert_Node(100); +list_object.Insert_Node(1); +list_object.Insert_Node(2); +list_object.Insert_Node(20); +list_object.Insert_Node(500); + + +CHECK(list_object.at(0) == 1); +CHECK(list_object.at(1) == 2); +CHECK(list_object.at(2) == 20); +CHECK(list_object.at(3) == 100); +CHECK(list_object.at(4) == 500); +} +SECTION("SECOND TEST") +{ + +List list_object; +list_object.Insert_Node(107); +list_object.Insert_Node(23); +list_object.Insert_Node(500); +list_object.Insert_Node(23); +list_object.Insert_Node(1); + + +CHECK(list_object.at(0) == 1); +CHECK(list_object.at(1) == 23); +CHECK(list_object.at(2) == 23); +CHECK(list_object.at(3) == 107); +CHECK(list_object.at(4) == 500); +} + +SECTION("SECOND THIRD TEST") +{ + +List list_object; +list_object.Insert_Node(-1); +list_object.Insert_Node(-23); +list_object.Insert_Node(-500); +list_object.Insert_Node(-23); +list_object.Insert_Node(1); + + +CHECK(list_object.at(0) == -500); +CHECK(list_object.at(1) == -23); +CHECK(list_object.at(2) == -23); +CHECK(list_object.at(3) == -1); +CHECK(list_object.at(4) == 1); +} +} + + + +TEST_CASE("kopierings operator") +{ + +stringstream ss; + +List list_object1{1, 2, 3, 4, 5}; +List list_object2{list_object1}; + +ss << list_object2; + +CHECK(ss.str() =="1 2 3 4 5"); + +} + +TEST_CASE ("operator =") +{ + stringstream ss; + + List list_object1{1,2,3}; + List list_object2{4,5,6}; + + list_object1 = list_object2; + ss << list_object1; + CHECK(ss.str()=="4 5 6"); +} + +TEST_CASE ("SWAP") +{ + + stringstream ss; + stringstream sk; + + List list_object1{1, 2, 3}; + List list_object2{4, 5, 6}; + + list_object1 = std::move(list_object2); + + ss << list_object1; + sk << list_object2; + + CHECK (ss.str()=="4 5 6"); + CHECK (sk.str()=="1 2 3"); + + +} + +TEST_CASE("KONSTRUKTOR SWAP") +{ + List list_object1 {1, 2, 3}; + List list_object2 {std::move(list_object1)}; + + stringstream ss; + + ss << list_object2; + + CHECK (ss.str()== "1 2 3"); + CHECK (list_object1.List_Is_Empty()); +} + -- GitLab