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