From a3dadf8af0fe2a9d7ad58684a94e17c738eec585 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sun, 12 Sep 2010 22:35:17 -0600 Subject: [PATCH] added BYU CS240 Linked-List and Binary Search Tree assignments --- .../BST.cpp | 256 ++++ linked-list-and-binary-search-tree-c++/BST.h | 122 ++ .../LinkedList.cpp | 272 ++++ .../LinkedList.h | 118 ++ .../Makefile | 14 + .../README.md | 12 + linked-list-and-binary-search-tree-c++/colexp | 3 + .../collections.html | 153 +++ .../collections_files/style.css | 522 ++++++++ .../main.cpp | 17 + .../passoff/Makefile | 65 + .../passoff/coll.supp | 661 +++++++++ .../passoff/test_bst.cpp | 368 +++++ .../passoff/test_ll.cpp | 407 ++++++ .../passoff/test_runner.cpp | 111 ++ .../passoff/tut/readme | 509 +++++++ .../passoff/tut/tut.hpp | 1180 +++++++++++++++++ .../passoff/tut/tut_reporter.hpp | 226 ++++ .../passoff/tut/tut_restartable.hpp | 394 ++++++ .../test_runner | Bin 0 -> 1301356 bytes 20 files changed, 5410 insertions(+) create mode 100755 linked-list-and-binary-search-tree-c++/BST.cpp create mode 100755 linked-list-and-binary-search-tree-c++/BST.h create mode 100755 linked-list-and-binary-search-tree-c++/LinkedList.cpp create mode 100755 linked-list-and-binary-search-tree-c++/LinkedList.h create mode 100644 linked-list-and-binary-search-tree-c++/Makefile create mode 100644 linked-list-and-binary-search-tree-c++/README.md create mode 100755 linked-list-and-binary-search-tree-c++/colexp create mode 100755 linked-list-and-binary-search-tree-c++/collections.html create mode 100755 linked-list-and-binary-search-tree-c++/collections_files/style.css create mode 100755 linked-list-and-binary-search-tree-c++/main.cpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/Makefile create mode 100755 linked-list-and-binary-search-tree-c++/passoff/coll.supp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/test_bst.cpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/test_ll.cpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/test_runner.cpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/tut/readme create mode 100755 linked-list-and-binary-search-tree-c++/passoff/tut/tut.hpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/tut/tut_reporter.hpp create mode 100755 linked-list-and-binary-search-tree-c++/passoff/tut/tut_restartable.hpp create mode 100755 linked-list-and-binary-search-tree-c++/test_runner diff --git a/linked-list-and-binary-search-tree-c++/BST.cpp b/linked-list-and-binary-search-tree-c++/BST.cpp new file mode 100755 index 0000000..111bb5c --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/BST.cpp @@ -0,0 +1,256 @@ +#include "BST.h" + +//! BSTNode implements a binary search tree node + + //! Constructor + BSTNode::BSTNode(const std::string & v) : + value(v), left(NULL), right(NULL) + { + // Sounds good to me + return; + } + + //! Copy Constructor DEEP COPY and does not free memory + BSTNode::BSTNode(const BSTNode & other): + value(other.value), left(NULL), right(NULL) + { + // Recurse me! Yay! + value = other.value; + if (other.left) + left = new BSTNode(*(other.left)); + if (other.right) + right = new BSTNode(*(other.right)); + return; + } + + //! Delete Destructor frees memory + BSTNode::~BSTNode() + { + Clear(); + return; + } + + void BSTNode::Clear() + { + if (left) { + delete left; + left = NULL; + } + if (right) { + delete right; + right = NULL; + } + return; + } + + void BSTNode::Copy(const BSTNode & other) + { + // Recurse me! Yay! + value = other.value; + if (other.left) + left = new BSTNode(*(other.left)); + if (other.right) + right = new BSTNode(*(other.right)); + return; + } + + //! Insert string into tree with sort by comparison + BSTNode * BSTNode::Insert(const std::string & v) + { + if (NULL == &v || Find(v)) + return NULL; + + // Greater to the right + if (0 < value.compare(v)) + if (NULL == right) + return right = new BSTNode(v); + else + return right->Insert(v); + // Lesser to the left + else if (0 > value.compare(v)) + if (NULL == left) + return left = new BSTNode(v); + else + return left->Insert(v); + // Same??? Can't happen + else + return NULL; + } + + //! Find string in tree with sort by comparison + BSTNode * BSTNode::Find(const std::string & v) + { + // Equal means this + if (0 == value.compare(v)) + return this; + + // Greater to the right + else if (0 < value.compare(v) && NULL != right) + return right->Find(v); + + // Lesser to the left + else if (0 > value.compare(v) && NULL != left) + return left->Find(v); + + // Nothing matches + return NULL; + } + + //! Read-only public methods for use by clients of the BST class + const std::string & BSTNode::GetValue() + { + return value; + } + + BSTNode * BSTNode::GetLeft()const + { + return left; + } + + BSTNode * BSTNode::GetRight()const + { + return right; + } + + //! Assignment operator makes a DEEP COPY and does not free memory + BSTNode & BSTNode::operator=(const BSTNode & other) + { + if (this == &other) + return *this; + + Clear(); + Copy(other); + + return *this; + } + + +//! BST implements a binary search tree + + //! No-arg constructor. Initializes an empty BST + BST::BST() : + root(NULL), size(0) + { + // Empty as can be + return; + } + + + //! Copy constructor. Makes a complete copy of its argument + BST::BST(const BST & other) + { + Copy(other); + return; + } + + //! Copy method. Makes a complete copy of its argument + void BST::Copy(const BST & other) + { + if (this == &other) + return; + + size = other.GetSize(); + if(other.root) + root = (new BSTNode(*(other.root))); + else + root=NULL; + + return; + } + + //! Destructor + BST::~BST() + { + Clear(); + return; + } + + + //! Assignment operator. Makes a complete copy of its argument + //! @return Reference to oneself + BST & BST::operator=(const BST & other) + { + if (this == &other) + return *this; + + Clear(); + Copy(other); + return *this; + } + + + //! @return a pointer to the root node of the tree, or NULL if the tree is empty. + //! @note This is useful for BST clients that need to traverse the tree.) + BSTNode * BST::GetRoot()const + { + return root; + } + + + //! @return true if the BST is empty, or false if the BST is not empty + bool BST::IsEmpty() const + { + return (NULL == root); + } + + + //! Removes all values from the BST + void BST::Clear() + { + size = 0; + if (root) + delete root; + root = NULL; + return; + } + + + //! @return the number of values in the BST + int BST::GetSize() const + { + return size; + } + + + //! Inserts value v into the BST + //! + //! @param v The new value being inserted + //! + //! @return a pointer to the newly inserted node, or NULL if v was already + //! in the tree (i.e., NULL is used to indicate a duplicate insertion) + BSTNode * BST::Insert(const std::string & v) + { + if (Find(v)) + return NULL; + + ++size; + if (root) + return root->Insert(v); + else + return root = new BSTNode(v); + } + + + //! Searches the tree for value v + //! + //! @param v The new value being searched for + //! + //! @return a pointer to the node containing v, or NULL if v is not in the tree + BSTNode * BST::Find(const std::string & v) const + { + if (NULL == root) + return NULL; + else + return root->Find(v); + } + + + //! @NOTE: YOU ARE NOT REQUIRED TO IMPLEMENT THE Remove METHOD BELOW + //! (BUT YOU CAN IF YOU WANT TO) + //! + //! Removes value v from the tree + //! + //! @param v The value being removed from the tree + //! + //! @return true if v was removed from the tree, or false if v was not in the tree + //bool Remove(const std::string & v); diff --git a/linked-list-and-binary-search-tree-c++/BST.h b/linked-list-and-binary-search-tree-c++/BST.h new file mode 100755 index 0000000..4bba7eb --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/BST.h @@ -0,0 +1,122 @@ +#ifndef CS240_BST_H +#define CS240_BST_H + +#include + + +//! BSTNode implements a binary search tree node +class BSTNode { + friend class BST; //!< BST can access private members of BSTNode + +public: + + //! Constructor + BSTNode(const std::string &); + + //! Copy Constructor SHALLOW COPY and does not free memory + BSTNode(const BSTNode &); + + //! Delete Destructor calls Clear + ~BSTNode(); + + //! Clear recursively deletes nodes + void Clear(); + + //! Copy recursively copies a node + void Copy(const BSTNode &); + + //! Insert sorts on string comparison + BSTNode * Insert(const std::string &); + + //! Find does string comparison to find if node exists + BSTNode * Find(const std::string &); + + //! Read-only public methods for use by clients of the BST class + const std::string & GetValue(); + + BSTNode * GetLeft() const; + BSTNode * GetRight() const; + + //! Assignment operator makes a SHALLOW COPY and does not free memory + //!Feel free to change this function(IE, to a deep copy). + BSTNode & operator=(const BSTNode &); + +private: + std::string value; //!< value stored in the node + BSTNode * left; //!< pointer to the node's left child + BSTNode * right; //!< pointer to the node's right child +}; + + +//! BST implements a binary search tree +class BST { + +public: + + //! No-arg constructor. Initializes an empty BST + BST(); + + + //! Copy constructor. Makes a complete copy of its argument + BST(const BST &); + + + //! Destructor + ~BST(); + + //! Copy makes DEEP Copy + void Copy(const BST &); + + //! Assignment operator. Makes a complete copy of its argument + //! @return Reference to oneself + BST& operator =(const BST &); + + + //! @return a pointer to the root node of the tree, or NULL if the tree is empty. + //! @note This is useful for BST clients that need to traverse the tree.) + BSTNode * GetRoot()const; + + //! @return true if the BST is empty, or false if the BST is not empty + bool IsEmpty() const; + + //! Removes all values from the BST + void Clear(); + + //! @return the number of values in the BST + int GetSize() const; + + + //! Inserts value v into the BST + //! + //! @param v The new value being inserted + //! + //! @return a pointer to the newly inserted node, or NULL if v was already + //! in the tree (i.e., NULL is used to indicate a duplicate insertion) + BSTNode * Insert(const std::string &); + + + //! Searches the tree for value v + //! + //! @param v The new value being searched for + //! + //! @return a pointer to the node containing v, or NULL if v is not in the tree + BSTNode * Find(const std::string &) const; + + + //! @NOTE: YOU ARE NOT REQUIRED TO IMPLEMENT THE Remove METHOD BELOW + //! (BUT YOU CAN IF YOU WANT TO) + //! + //! Removes value v from the tree + //! + //! @param v The value being removed from the tree + //! + //! @return true if v was removed from the tree, or false if v was not in the tree + //bool Remove(const std::string & v); + +private: + BSTNode * root; + int size; +}; + + +#endif diff --git a/linked-list-and-binary-search-tree-c++/LinkedList.cpp b/linked-list-and-binary-search-tree-c++/LinkedList.cpp new file mode 100755 index 0000000..1422314 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/LinkedList.cpp @@ -0,0 +1,272 @@ +#include "LinkedList.h" + +//! LLNode implements a doubly-linked list node + //! Constructor + LLNode::LLNode(const std::string & v, LLNode * p, LLNode * n) : + value(v), prev(p), next(n) + { + // Good enough + return; + } + + //! Copy Constructor SHALLOW COPY and does not free memory + //!Feel free to change this function(IE, to a deep copy). + LLNode::LLNode(const LLNode & other) + { + if (this == &other) + return; + + // It makes sense (in my mind) for this to be shallow and disconnected + value = other.value; + prev = NULL; //other.prev; + next = NULL; //other.next; + } + + //! Read-only public methods for use by clients of the LinkedList class + const std::string & LLNode::GetValue() const + { + return value; + } + + + LLNode * LLNode::GetPrevious() const + { + return prev; + } + + + LLNode * LLNode::GetNext() const + { + return next; + } + + //! Assignment operator makes a SHALLOW COPY and does not free memory + //!Feel free to change this function(IE, to a deep copy). + LLNode & LLNode::operator=(const LLNode & other) + { + if(this != &other) + { + value = other.value; + prev = other.prev; + next = other.next; + } + return *this; + } + + + + + + + + + +//! LinkedList implements a doubly-linked list + + //! No-arg constructor. Initializes an empty linked list + LinkedList::LinkedList() + { + length = 0; + head = NULL; + return; + } + + + //! Copy constructor. Makes a complete copy of its argument + LinkedList::LinkedList(const LinkedList & other) + { + Copy(other); + return; + } + + //! Copy make a DEEP copy. Makes a complete copy of its argument + void LinkedList::Copy(const LinkedList & other) + { + if (this == &other) + return; + if (NULL == other.head) { + head = NULL; + return; + } + + LLNode * tmpCopy = NULL; + LLNode * oHead = NULL; + + length = other.GetSize(); + oHead = other.head; + + head = new LLNode(*oHead); + oHead = oHead->next; + tmpCopy = head; + while (oHead != NULL) { + tmpCopy->next = new LLNode(*oHead); + tmpCopy->next->prev = tmpCopy; + tmpCopy = tmpCopy->next; + oHead = oHead->next; + } + } + + //! Destructor + LinkedList::~LinkedList() + { + Clear(); + } + + //! Assignment operator. Makes a complete copy of its argument + //! @return A reference to oneself + LinkedList& LinkedList::operator =(const LinkedList & other) + { + if (this == &other) + return *this; + + Clear(); + Copy(other); + return *this; + } + + + //! @return true if the list is empty, or false if the list is not empty + bool LinkedList::IsEmpty() const + { + return (0 == length); + } + + + //! Removes all values from the list + void LinkedList::Clear() { + LLNode * tmpCopy = NULL; + if (NULL == head) + return; + + ///* + while (NULL != head) { + tmpCopy = head; + head = head->next; + delete tmpCopy; + }//*/ + + length = 0; + head = NULL; + return; + } + + + //! @return the number of values in the list + int LinkedList::GetSize() const + { + return length; + } + + + + //! @return a pointer to the first node in the list, or NULL if the list is empty + LLNode * LinkedList::GetFirst()const + { + return head; + } + + + + //! @returns a pointer to the last node in the list, or NULL if the list is empty + LLNode * LinkedList::GetLast()const + { + if (IsEmpty()) + return NULL; + + LLNode * tail; + tail = head; + while (NULL != tail->next) { + tail = tail->next; + } + return tail; + } + + + //! Inserts value v into the list after node n + //! + //! @param v The new value being inserted + //! @param n A node that is already in the list after which the new node should + //! be inserted. + //! If n is NULL, the new node should be inserted at the beginning of the list. + //! + //! @return a pointer to the newly inserted node + LLNode * LinkedList::Insert(const std::string & v, LLNode * n) + { + if (NULL == &v || Find(v, NULL)) + return NULL; + + ++length; + + LLNode * tmpCopy; + + if (NULL == n) { + tmpCopy = new LLNode(v, NULL, NULL); + if (NULL != head) + head->prev = tmpCopy; + tmpCopy->next = head; + return head = tmpCopy; + } + + tmpCopy = new LLNode(v, n, n->next); + if (NULL != n->next) + n->next->prev = tmpCopy; + tmpCopy->prev = n; + tmpCopy->next = n->next; + n->next = tmpCopy; + + return tmpCopy; + } + + + //! Searches for the first occurrence of value v that appears in the list + //! after node n + //! + //! @param v The value being searched for + //! @param n The node in the list after which the search should begin. + //! If n is NULL, the list should be searched from the beginning. + //! + //! @return a pointer to the node containing v, or NULL if v is not found + LLNode * LinkedList::Find(const std::string & v, LLNode * n) const + { + LLNode * result; + if (NULL != n) + result = n->next; + else + result = head; + + while (NULL != result) { + if (0 == result->value.compare(v)) + return result; + result = result->next; + } + + return result; + } + + + //! Removes node n from the list + //! + //! @param n The node being removed from the list + void LinkedList::Remove(LLNode * n) + { + if (NULL == n) + return; + + --length; + + if (NULL != n->prev) + n->prev->next = n->next; + else { + head = n->next; // Could be NULL + if (NULL != head) + head->prev = NULL; + } + if (NULL != n->next) + n->next->prev = n->prev; + + delete n; + n = NULL; + + return; + } + diff --git a/linked-list-and-binary-search-tree-c++/LinkedList.h b/linked-list-and-binary-search-tree-c++/LinkedList.h new file mode 100755 index 0000000..0008ba2 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/LinkedList.h @@ -0,0 +1,118 @@ +#ifndef CS240_LINKED_LIST_H +#define CS240_LINKED_LIST_H + +#include + +//! LLNode implements a doubly-linked list node +class LLNode { + friend class LinkedList; //!< LinkedList can access private members of LLNode +public: + + //! Constructor + LLNode(const std::string &, LLNode *, LLNode *); + + //! Copy Constructor SHALLOW COPY and does not free memory + //!Feel free to change this function(IE, to a deep copy). + LLNode(const LLNode &); + + //! Read-only public methods for use by clients of the LinkedList class + const std::string & GetValue() const; + + + LLNode * GetPrevious() const; + + + LLNode * GetNext() const; + + //! Assignment operator makes a SHALLOW COPY and does not free memory + //!Feel free to change this function(IE, to a deep copy). + LLNode & operator=(const LLNode &); + +private: + std::string value; //!< value stored in the node + LLNode * prev; //!< pointer to previous node in the list + LLNode * next; //!< pointer to next node in the list +}; + + +//! LinkedList implements a doubly-linked list +class LinkedList +{ +public: + + //! No-arg constructor. Initializes an empty linked list + LinkedList(); + + + //! Copy constructor. Makes a complete copy of its argument + LinkedList(const LinkedList & other); + + + //! Destructor + ~LinkedList(); + + //! Copy make a DEEP copy. Makes a complete copy of its argument + void Copy(const LinkedList &); + + //! Assignment operator. Makes a complete copy of its argument + //! @return A reference to oneself + LinkedList& operator =(const LinkedList & other); + + + //! @return true if the list is empty, or false if the list is not empty + bool IsEmpty() const; + + + //! Removes all values from the list + void Clear(); + + + //! @return the number of values in the list + int GetSize() const; + + + + //! @return a pointer to the first node in the list, or NULL if the list is empty + LLNode * GetFirst() const; + + + + //! @returns a pointer to the last node in the list, or NULL if the list is empty + LLNode * GetLast() const; + + + //! Inserts value v into the list after node n + //! + //! @param v The new value being inserted + //! @param n A node that is already in the list after which the new node should + //! be inserted. + //! If n is NULL, the new node should be inserted at the beginning of the list. + //! + //! @return a pointer to the newly inserted node + LLNode * Insert(const std::string & v, LLNode * n); + + + //! Searches for the first occurrence of value v that appears in the list + //! after node n + //! + //! @param v The value being searched for + //! @param n The node in the list after which the search should begin. + //! If n is NULL, the list should be searched from the beginning. + //! + //! @return a pointer to the node containing v, or NULL if v is not found + LLNode * Find(const std::string & v, LLNode * n) const; + + + //! Removes node n from the list + //! + //! @param n The node being removed from the list + void Remove(LLNode * n); + +private: + int length; + LLNode * head; +}; + + +#endif + diff --git a/linked-list-and-binary-search-tree-c++/Makefile b/linked-list-and-binary-search-tree-c++/Makefile new file mode 100644 index 0000000..c20d1a2 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/Makefile @@ -0,0 +1,14 @@ +all: test + +bst: obj/BST.o +obj/BST.o: BST.h BST.cpp + g++ -c -o obj/BST.o BST.cpp + +ll: obj/LinkedList.o LinkedList.h LinkedList.cpp + g++ -c -o obj/LinkedList.o LinkedList.cpp + +test: bst ll colexp passoff + ./colexp part2 + +clean: + rm *.o obj/*.o -rf diff --git a/linked-list-and-binary-search-tree-c++/README.md b/linked-list-and-binary-search-tree-c++/README.md new file mode 100644 index 0000000..de59211 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/README.md @@ -0,0 +1,12 @@ +About +==== + +I wrote `LinkedList.cpp` and `BST.cpp`. Parts of the `*.h` were provided by BYU as the documentation for the project. + +The test program was created by BYU, but I don't see a copyright so I assume I'm safe to include it. + +Build on Ubuntu 10.04 +==== + + sudo apt-get install libboost-all-dev valgrind + make diff --git a/linked-list-and-binary-search-tree-c++/colexp b/linked-list-and-binary-search-tree-c++/colexp new file mode 100755 index 0000000..13a4890 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/colexp @@ -0,0 +1,3 @@ +#!/usr/bin/env sh +echo "Running the Collections Test Passoff" +make -f ./passoff/Makefile $@ diff --git a/linked-list-and-binary-search-tree-c++/collections.html b/linked-list-and-binary-search-tree-c++/collections.html new file mode 100755 index 0000000..8e5c890 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/collections.html @@ -0,0 +1,153 @@ + + + + + + Collections Part I and II + + + + + +
+

Computer Science 240 :: Advanced Programming

+
+ +
+
+

Collections

+
+
+ +

NOTE: This project is divided into two parts (Part I and + Part II). For the Programming Exam you only need to complete + Part I. Part II will be completed after the Programming + Exam.

+ +

Overview

+ +

Most non-trivial programs use data structures to store and + access information. Common examples are lists, stacks, queues, + trees, etc. Data structures are also called "collections" + because they are used to manage groups (or collections) of + objects. For this assignment you will write two collection + classes in C++. You will write a class named + LinkedList that implements a doubly-linked list and a + class named BST that implements a binary search tree. + Unlike the previous projects, you will not be asked to deliver + a complete running program. Rather, the deliverables for this + project are just the LinkedList and BST + classes. To pass off your project, we will take your classes + and compile and link them with a test program that will + exercise your code and verify that it works. It is your + responsibility to test your code and make sure that it works + before passing off.

+ +

Project Files

+ +

Header files for the LinkedList and BST + classes are provided at the following links:

+ +

LinkedList.h

+ +

BST.h

+ +

Your task is to implement all of the methods on the + LinkedList and + BST classes + according to the comments in the header files. You should place + your LinkedList + and BST + implementations in files named LinkedList.cpp and + BST.cpp, + respectively. You should not modify the public interfaces of + the classes. If you do, the test program that will be used to + pass off your code will not compile. You may (and probably + should) modify the .h files to add private + method and variable declarations, but your method bodies should + go in the .cpp + files.

+ +

The test program will assume that your files are named + LinkedList.h, + LinkedList.cpp, + BST.h, and + BST.cpp Since + Linux file names are case sensitive, capitalization does + matter.

+ +

Restrictions

+ +

For this project you are allowed to use the C++ + string class defined in the <string> header file + (in fact, you must use it to make your code work).

+ +

You are not allowed to use the classes and functions + from the Standard Template Library (vector, list, map, set, + etc.). Specifically, the following header files may not be + used:

+ +
    +
  • <algorithm>
  • + +
  • <deque>
  • + +
  • <list>
  • + +
  • <map>
  • + +
  • <queue>
  • + +
  • <set>
  • + +
  • <stack>
  • + +
  • <vector>
  • +
+ +

Part I

+ +

Implement all of the methods on the LinkedList and BST classes.

+ +

For Part I your code will not be tested for memory + management errors. That will come in Part II.

+ +

Part II

+ +

Ensure that your code does not contain any memory management + errors, as described in the Memory Management Errors + section of the Project I specification. The TAs will use + valgrind to + check your code for memory-related errors when you pass off. + You should run valgrind on your code and + fix any reported bugs before attempting to pass off.

+ +

Not all memory errors are your fault and there are cases of false positives. We offer a file to suppress these for you.

+
+ \ No newline at end of file diff --git a/linked-list-and-binary-search-tree-c++/collections_files/style.css b/linked-list-and-binary-search-tree-c++/collections_files/style.css new file mode 100755 index 0000000..8343b9d --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/collections_files/style.css @@ -0,0 +1,522 @@ +@charset "iso-8859-1"; +body { + margin: 2ex; + color: #000; + font-family: tahoma, verdana, sans, arial, helvetica, sans-serif; + background: #e8e8e8; + max-width: 120ex; +} +.box { + font-size: 90%; + background: #7f97b0 url(../images/hr.png) repeat-x; + margin-left: 26ex; + + color: white; + border-color: black; + border-style: solid; + border-width: 1px 1px 1px 1px; + height: 5ex; +} +.box h1 { + font-weight: normal; + font-size: 150%; + float: left; + margin: 0px 1ex; + padding: .5ex 0ex 0ex 0ex; + letter-spacing: 1px; +} +.box div { + font-weight: normal; + font-size: 108%; + height: 3.5ex; + text-align: right; + padding: 1.2ex 1ex 0ex 0ex; + white-space: nowrap; +} +.hr_1 { + font-size: 90%; + background: url(../images/hr_3.png) #446 repeat-x; + color: inherit; + margin-left: 26ex; + margin-top: -1px; + height: 2ex; + border-color: #000; + border-width: 1px 1px 1px 1px; + border-style: solid; +} +.nav div.hr_2 { + border-top-width: 0; + font-size: 90%; + background: url(../images/hr_3.png) #446 repeat-x; + color: inherit; + margin: 0ex 0ex 2ex; + height: 2ex; +} + +.menu { + background: #fff url(../images/back.png) repeat-y; + color: inherit; + left: 2ex; + padding-bottom: 0.5ex; + width: 22ex; + border: black 1px solid; + position: absolute; + top: 6.6ex; +} + +[class="menu"]{ + position: fixed; +} + +.nav { + margin: 0; + text-align: center; +} + +.nav span { + display: none +} + +.nav div { + font-weight: bold; + font-size: 90%; + background: url(../images/hr_2.png) #7f97b0 repeat-x; + margin: 0ex 0px 0.5ex; + color: #fff; + text-align: center; + border-style: solid; + border-color: #000; + border-width: 0px 0px 1px; +} + +.nav a { + padding-right: 5px; + display: block; + padding-left: 5px; + font-size: 80%; + text-align: left; + text-decoration: none; + color: #000; + background: transparent; +} + +.menu .nav a:link, .menu .nav a:visited { + padding-right: 5px; + display: block; + padding-left: 5px; + font-size: 80%; + text-align: left; + text-decoration: none; + color: #339; + background: transparent; +} + +.nav dt { + font-weight: bold; + padding-right: 5px; + display: block; + padding-left: 5px; + font-size: 80%; + text-align: left; + text-decoration: none; + color: #339; + background: transparent; +} + +.nav dd { + margin-left: 0px; + padding-left: 0px; +} + +.nav dl { + margin-top: 0px; + margin-bottom: 0.5ex; +} + +.menu .nav a:hover { + background: url(../images/menuhover.png) repeat-y; + text-decoration: none; + color: #339; +} + +.nav dd a:before { + content: " "; +} + +.nav dl.links dd a:before { + content: ""; +} + +.nav a.indent { + margin-left: 0; +} + +.nav a.indent:before { + content: " "; +} + +.nav span.menuspace { + display: block; + border-width: 0; + height: .4em; +} + +.nav a.selected { + background: url(../images/menuhover.png) repeat-y; + color: #000; +} + +.main { + font-size: 90%; + min-height: 61ex; + background: #fff; + color: inherit; + margin: 0ex 0ex 0ex 26ex; + border-color: black; + border-style: solid; + padding: 1ex 2ex 0ex; + border-width: 0px 1px 1px 1px; +} + +/*.main ul li a:before { + content: " "; +}*/ + +.main ul li p a:before { + content: ""; +} + +img { + border-width: 0; + vertical-align: bottom; +} + +img.screenshot { + margin: 0.5em 0em 0.5em 0em; +} + +img.down { + width: 18px; + height: 18px; +} + +div.logo { + float: right; + margin: 15px 0px 0px 10px; +} + +div.screenshot-right, div.screenshot-left { + border: 1px solid #caccd3; + background: #f2f2f8; + color: black; + padding: 3px; + text-align: center; +} + +div.screenshot-right { + float: right; + margin: 0px 0px 0px 10px; +} + +div.screenshot-left { + float: left; + margin: 0px 10px 5px 0px; +} + +div.right { + float: right; + margin: 0px 0px 0px 10px; +} + +div.center { + text-align: center; +} + + +p.justify { + text-align: justify; +} + +div.screenshot-left p, div.screenshot-right p { + margin-top: 2px; + margin-bottom: 0px; + font-size: 80%; + text-align: center; +} + +div.logo { + margin-top: -2em; +} + +a:link, a:visited, a:active { + color: #833; + /*text-decoration: none;*/ + background: transparent; +} + +a:hover { + color: #c00; + background: transparent; + text-decoration: underline; +} + +a.blue { + color: #00f; + background: transparent; + text-decoration: underline; +} + +hr { + border: 0px; + border-top: 2px solid #ccccff; + height: 0; + clear: both; +} + +h2.headline { + font-size: 130%; + margin-bottom: 0.25em; + color: #009; + background: transparent; +} + +p { + line-height: 1.3em; + margin-bottom: 1em; + margin-top: 0em; +} + +p a, ul.disc a { + font-weight: bold; +} + +h2 { + font-weight: normal; + font-size: 150%; + color: #7c98a6; + background: transparent; +} + +h3 { + font-weight: normal; + font-size: 110%; + margin-bottom: 0.5em; + border-bottom: 1px solid #cccccc; + color: #009; + background: transparent; + text-align: left; +} + +.clear { + clear: both; +} + +h4 { + font-size: 100%; + margin-bottom: 1ex; + color: #337; + background: transparent; + text-align: left; +} + +h5 { + margin-bottom: 0.25em; +} + +div.indent { + margin-left: 3ex; +} + +ol { + margin-left: 0px; + padding-left: 25px; +} + +ul { + padding-left: 25px; + margin-left: 0px; + + font-size: inherit; +} + +ul.disc { + list-style-type: disc; +} + +.strike { + text-decoration: line-through; +} + +div.rightside { + background: #f7f6fb; + color: inherit; + float: right; + padding: 1ex; + margin-top: 3ex; + width: 30%; + border: #9999cc 1px solid; + font-size: 90%; +} + +div.rightside h3 { + margin-top: 0; +} + +div.rightside:first-child p { + margin-bottom: 0; + text-align: justify; +} + +table { + background-color: #666699; + border: gray 0px solid; + border-spacing: 1px; + color: inherit; + margin-bottom: 1em; +} + +td { + padding-right: 12px; + padding-left: 6px; + font-size: 90%; + background-color: #fff; + vertical-align: top; + color: #000; +} + +th { + font-weight: bold; + background-color: #666; + text-align: left; + color: #fff; +} + +.code, kbd, pre, tt, var { + font-family: "courier new", "courier", monospace; +} + +.keyword { + font-style: italic; + color: #009; +} + +em { + font-weight: bold; + font-style: normal; + color: #C00; +} + +pre, .code { + background: #f5f8fb; + font-weight: bold; + color: black; + border: 1px dashed #e5e8eb; + text-align: left; + padding: 0.5ex; + display: block; + margin: 1em 0em 1em 0em; +} + +fieldset { + font-size: 90%; + border: 1px solid gray; +} + +fieldset.left { + width: 47%; +} + +fieldset.right { + float: right; + width: 47%; +} + +abbr, span.credits { + border-bottom: 1px dashed #6666cc; + cursor: help; +} + +li.newsection { + margin-top: 1ex; + +} + +div.downloadinfo { + margin-bottom: 1em; + background: #f7f6fb; + color: inherit; + float: right; + padding: 1ex; + width: 37%; + border: #9999cc 1px solid; +} + +div.downloadinfo p { + text-align: justify; + margin-top: 0ex; + margin-bottom: 0.6ex; +} + +div.news { + border-left: 0.8ex #e2e1e6 solid; + border-bottom: 1px #d6d5da solid; + border-top: 1px #e2e1e6 solid; + border-right: 1px #d2d1d6 solid; + + padding-left: 1ex; + padding-right: 1ex; + margin-bottom: 1ex; + margin-top: 2ex; + padding-top: 0px; + padding-bottom: 2ex; + background: #ffffff; + color: inherit; +} + +div.news h4 { + margin-top: 1ex; +} + +div.news div.category1 { + float: right; + font-size: 80%; + background: #f8f7fc; + color: #666699; + + margin-top: -1ex; + padding: 0px 2px 1px 2px; + border-width: 1px; + border-style: solid; + border-color: #eeedf2; +} + +div.news p.info { + float:left; + border-top: 1px solid #e2e1e6; + font-size: 80%; + width: 42ex; + color: #333366; + background: transparent; + margin-top: -1ex; + padding-top: 0px; +} + +div.news p.info a:link, div.news p.info a:visited { + color: #333366; + background: transparent; + font-weight: normal; +} + +p.newsarchive { + text-align: right; font-size: 80%; margin-top: -1ex; padding-top: 0px; +} + +div.downloadicon { + background: transparent url("../images/download.png") no-repeat top right; + min-height: 200px; +} + +div.optionsicon { + background: transparent url("../images/options.png") no-repeat top right; + min-height: 200px; +} diff --git a/linked-list-and-binary-search-tree-c++/main.cpp b/linked-list-and-binary-search-tree-c++/main.cpp new file mode 100755 index 0000000..5158c8c --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/main.cpp @@ -0,0 +1,17 @@ +#include "BST.h" +#include +#include +#include +#include +#include + +int main(int argc, char * argv[]) { + std::string str; + str.append("AJ"); + std::cout << "okay" << std::endl; + BST * bst = new BST(); + bst->Insert(str); + std::cout << bst->GetRoot()->GetValue() << std::endl; + BST * bstCopy = new BST(*bst); + std::cout << bstCopy->GetRoot()->GetValue() << std::endl; +} diff --git a/linked-list-and-binary-search-tree-c++/passoff/Makefile b/linked-list-and-binary-search-tree-c++/passoff/Makefile new file mode 100755 index 0000000..6096b36 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/Makefile @@ -0,0 +1,65 @@ +SUPPRESIONS=./passoff/coll.supp +PASSOFF_DIR=./passoff +STUDENT_DIR = . + +CC = g++ +CFLAGS = -I./ -Wall -Winit-self -Wmissing-include-dirs -Wextra -Wfloat-equal -c -ggdb +LFLAGS = -o +LIB = -lboost_program_options -lboost_filesystem -lboost_iostreams + +TESTR_BIN = $(STUDENT_DIR)/test_runner +TESTR_SRC = $(PASSOFF_DIR)/test_runner.cpp $(PASSOFF_DIR)/test_ll.cpp $(PASSOFF_DIR)/test_bst.cpp +TESTR_OBJ = $(foreach obj, $(TESTR_SRC:.cpp=.o), $(addprefix $(STUDENT_DIR)/,$(shell basename $(obj)))) + +STUDENT_SRC = $(STUDENT_DIR)/LinkedList.cpp $(STUDENT_DIR)/BST.cpp +STUDENT_OBJ = $(STUDENT_SRC:.cpp=.o) + +all: help + +help: + @ echo -e "Accepted Targets" + @ echo -e "\tpart1 - Test with no memory check, auto-cleans" + @ echo -e "\tpart2 - Test with memory check, auto-cleans" + @ echo -e "" + @ echo -e "\tnomem - Test with no memory check" + @ echo -e "\tmem - Test with memory check" + @ echo -e "\tdebug - Run the test with gdb" + @ echo -e "\t$(TESTR_BIN) - Compile the executable" + @ echo -e "\tclean - Clean the build" + +part1: nomem clean + +part2: mem clean + +mem: $(TESTR_BIN) + - time valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --suppressions=$(SUPPRESIONS) $(TESTR_BIN) + + +nomem: $(TESTR_BIN) + - time $(TESTR_BIN) + +debug: $(TESTR_BIN) + gdb $(TESTR_BIN) + + +clean: + rm -f $(TESTR_BIN) + rm -f $(STUDENT_OBJ) + rm -f $(TESTR_OBJ) + +$(TESTR_BIN): $(TESTR_OBJ) $(STUDENT_OBJ) + $(CC) $(TESTR_OBJ) $(STUDENT_OBJ) $(LIB) $(LFLAGS) $(TESTR_BIN) + +#Makefile Debugging +#Target to print any variable, can be added to the dependencies of any other target +#Userfule flags for make, -d, -p, -n +print-%: ; @$(error $* is $($*) ($(value $*)) (from $(origin $*))) + +#Support +%.o: $(PASSOFF_DIR)/%.cpp + $(CC) $(CFLAGS) $< $(LFLAGS) $@ + +%.o: %.cpp + $(CC) $(CFLAGS) $< $(LFLAGS) $@ + +# DO NOT DELETE THIS LINE -- diff --git a/linked-list-and-binary-search-tree-c++/passoff/coll.supp b/linked-list-and-binary-search-tree-c++/passoff/coll.supp new file mode 100755 index 0000000..c2e5972 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/coll.supp @@ -0,0 +1,661 @@ +{ + Dynamic Linker Bug + Memcheck:Cond + fun:_dl_relocate_object + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib/ld-2.6.so +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag + fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z12CompareListsRK10LinkedListRSt4listISsSaISsEE + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag + fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_Z14TestLinkedListb + fun:main +} +{ + + Memcheck:Cond + fun:_ZNKSs7compareERKSs + fun:_ZSteqIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:strlen + fun:_ZNSsC1EPKcRKSaIcE + fun:_Z11generateKeyv + fun:_Z7TestBSTb + fun:main +} +{ + + Memcheck:Cond + fun:bcmp + fun:_ZNSt11char_traitsIcE7compareEPKcS2_j + fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_ + fun:_ZStneIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_ + fun:_ZN3tut12_GLOBAL__N_113ensure_equalsISsSsEEvPKcRKT0_RKT_ + fun:_ZN7BSTTest7initBSTER3BST + fun:_ZN3tut11test_objectI7BSTTestE4testILi2EEEvv + fun:_ZN3tut10test_groupI7BSTTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs + fun:_ZN3tut10test_groupI7BSTTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE + fun:_ZN3tut10test_groupI7BSTTestLi50EE8run_nextEv + fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE + fun:_ZNK3tut11test_runner9run_testsEv +} +{ + + Memcheck:Cond + fun:bcmp + fun:_ZNSt11char_traitsIcE7compareEPKcS2_j + fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_ + fun:_ZNK10LinkedList4FindERKSsP6LLNode + fun:_ZN3tut11test_objectI14LinkedListTestE4testILi8EEEvv + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv + fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE + fun:_ZNK3tut11test_runner9run_testsEv + fun:_Z3runRKSsi + fun:main +} +{ + + Memcheck:Cond + fun:bcmp + fun:_ZNSt11char_traitsIcE7compareEPKcS2_j + fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_ + fun:_ZSt6__findISt14_List_iteratorISsESsET_S2_S2_RKT0_St18input_iterator_tag + fun:_ZSt4findISt14_List_iteratorISsESsET_S2_S2_RKT0_ + fun:_ZN3tut11test_objectI14LinkedListTestE4testILi9EEEvv + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv + fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE + fun:_ZNK3tut11test_runner9run_testsEv + fun:_Z3runRKSsi +} +{ + + Memcheck:Cond + fun:bcmp + fun:_ZNSt11char_traitsIcE7compareEPKcS2_j + fun:_ZSteqIcEN9__gnu_cxx11__enable_ifIXsrSt9__is_charIT_E7__valueEbE6__typeERKSbIS3_St11char_traitsIS3_ESaIS3_EESC_ + fun:_ZN3tut11test_objectI14LinkedListTestE4testILi9EEEvv + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE13run_test_seh_EMNS_11test_objectIS1_EEFvvERNS2_11safe_holderIS4_EERSs + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE9run_test_ERKSt17_Rb_tree_iteratorISt4pairIKiMNS_11test_objectIS1_EEFvvEEERNS2_11safe_holderIS7_EE + fun:_ZN3tut10test_groupI14LinkedListTestLi50EE8run_nextEv + fun:_ZNK3tut11test_runner23run_all_tests_in_group_ESt23_Rb_tree_const_iteratorISt4pairIKSsPNS_10group_baseEEE + fun:_ZNK3tut11test_runner9run_testsEv + fun:_Z3runRKSsi + fun:main +} diff --git a/linked-list-and-binary-search-tree-c++/passoff/test_bst.cpp b/linked-list-and-binary-search-tree-c++/passoff/test_bst.cpp new file mode 100755 index 0000000..4a2024b --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/test_bst.cpp @@ -0,0 +1,368 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "tut/tut.hpp" +#include "BST.h" + +#define NULL_NODE (static_cast(NULL)) + +using namespace std; + +bool gDoRemove = false; +extern std::string gCurrentTest; + +string generateKey(); +void CheckSubTreeOrder(BSTNode * bNode, bool isLeftLess); +void CheckBSTOrder(BST & bst); +void CompareSubTrees(BSTNode* subTree1, BSTNode* subTree2); +void CompareTrees(BST & bst1, BST & bst2); + +struct BSTTest +{ +public: + BSTTest() : BSTTestSize(6379) + { + } + + void initBST(BST& bst) + { + for(int i = 0; i < BSTTestSize; ++i) + { + string key = generateKey(); + if(chosen.find(key) != chosen.end()) + { + --i; + } + else + { + chosen.insert(key); + BSTNode * curNode = bst.Insert(key); + tut::ensure("Insert() - Return NULL when the value was not in the tree", curNode != NULL); + tut::ensure_equals("Insert() - Returned a value which was different from the one entered", curNode->GetValue(), key); + tut::ensure_equals("Insert() - The size of the BST is not the size of the elements inserted", bst.GetSize(), (int)chosen.size()); + + curNode = bst.Insert(key); + tut::ensure_equals("Instert() - Did not return NULL when the value was in the tree", curNode, NULL_NODE); + tut::ensure_equals("Insert() - Size incremented on duplicate insertion", bst.GetSize(), (int)chosen.size()); + } + } + } + + std::string generateKey() + { + char key[9]; + int digit = '9'-'0'+1; + int upCase = 'Z'-'A'+digit+1; + int top = 'z'-'a'+upCase+1; + for(int i = 0; i < 9; i++){ + int val = rand()%top; + if(val < digit){ + key[i] = val + '0'; + } + else if(val < upCase){ + key[i] = val - digit + 'A'; + } + else{ + key[i] = val - upCase + 'a'; + } + }//end for i + string result(key); + return result; + } + + const int BSTTestSize; + set chosen; +}; + + +void CheckSubTreeOrder(BSTNode * bNode, bool isLeftLess){ + if(bNode != NULL){ + string val = bNode->GetValue(); + BSTNode * lNode = bNode->GetLeft(); + BSTNode * rNode = bNode->GetRight(); + if(isLeftLess){ + if(lNode != NULL){ + tut::ensure("The left node had a greater value when it should have been less", lNode->GetValue() <= val); + CheckSubTreeOrder(lNode, isLeftLess); + } + if(rNode != NULL){ + tut::ensure("The right node had a lesser value when it should have been less", rNode->GetValue() >= val); + CheckSubTreeOrder(rNode, isLeftLess); + } + } + else{ + if(lNode != NULL){ + tut::ensure("The left node had a lesser value when it should have been less", lNode->GetValue() >= val); + CheckSubTreeOrder(lNode, isLeftLess); + } + if(rNode != NULL){ + tut::ensure("The right node had a greater value when it should have been less", rNode->GetValue() <= val); + CheckSubTreeOrder(rNode, isLeftLess); + } + } + } +} + +void CheckBSTOrder(BST & bst){ + BSTNode * bNode = bst.GetRoot(); + if(bNode != NULL){ + bool isLeftLess = true; + BSTNode * left = bNode->GetLeft(); + if(left != NULL){ + if(left->GetValue() > bNode->GetValue()){ + isLeftLess = false; + } + } + else{ + BSTNode * right = bNode->GetRight(); + if(right != NULL){ + if(right->GetValue() < bNode->GetValue()){ + isLeftLess = false; + } + } + } + CheckSubTreeOrder(bNode->GetLeft(), isLeftLess); + CheckSubTreeOrder(bNode->GetRight(), isLeftLess); + } +} + +void CompareSubTrees(BSTNode* subTree1, BSTNode* subTree2){ + tut::ensure_not("SubTrees are not equal", (subTree1 && !subTree2) || (subTree2 && !subTree1)); + if(subTree1 != NULL){ + tut::ensure_not("Nodes point to the same memory", subTree1 == subTree2 || subTree1 == subTree2); + tut::ensure_equals("Node values are not equal", subTree1->GetValue(), subTree2->GetValue()); + CompareSubTrees(subTree1->GetLeft(),subTree2->GetLeft()); + CompareSubTrees(subTree1->GetRight(),subTree2->GetRight()); + } +} + +void CompareTrees(BST & bst1, BST & bst2){ + tut::ensure_equals("Sizes of the two trees are not equal", bst1.GetSize(), bst2.GetSize()); + CompareSubTrees(bst1.GetRoot(), bst2.GetRoot()); +} + +namespace tut +{ + namespace + { + typedef tut::test_group tGroup; + typedef tGroup::object tObject; + tGroup group("BST"); + } + + template<> + template<> + void tObject::test<1> () + { + set_test_name("Default Constructor"); + gCurrentTest = get_test_name(); + BST bst; + + // Root should be NULL + tut::ensure_equals("Default Constructor - Root is not NULL", bst.GetRoot(), NULL_NODE); + + // Size should be 0 + tut::ensure_equals("Default Constructor - Size is not 0", bst.GetSize(), 0); + tut::ensure("Default Constructor - Says it's not empty", bst.IsEmpty()); + } + + template<> + template<> + void tObject::test<2> () + { + set_test_name("Insert"); + gCurrentTest = get_test_name(); + BST bst; + initBST(bst); + + CheckBSTOrder(bst); + } + + template<> + template<> + void tObject::test<3> () + { + set_test_name("GetSize"); + gCurrentTest = get_test_name(); + BST bst; + initBST(bst); + tut::ensure_equals("GetSize() - The size of the BST is not the size of the elements inserted", bst.GetSize(), static_cast(chosen.size())); + } + + template<> + template<> + void tObject::test<4> () + { + set_test_name("Find"); + gCurrentTest = get_test_name(); + BST bst; + initBST(bst); + + set::iterator iter; + for(iter = chosen.begin(); iter != chosen.end(); iter++){ + BSTNode * curNode = bst.Find(*iter); + tut::ensure("Find() - Node not found when it should have been", curNode != NULL); + tut::ensure_equals("Find() - Returned a node with the wrong value", curNode->GetValue(), *iter); + } + + for(int i = 0; i < BSTTestSize; i++){ + string key = generateKey(); + if(chosen.find(key) == chosen.end()){ + BSTNode * curNode = bst.Find(key); + tut::ensure("Find() - Returned a node when the value was not in the tree", curNode == NULL); + } + else{ + --i; + } + } + } + + template<> + template<> + void tObject::test<5> () + { + set_test_name("Copy Constructor"); + gCurrentTest = get_test_name(); + BST bst; + BST emptyCopyBst(bst); + initBST(bst); + + BST fullCopyBst(bst); + CompareTrees(bst,fullCopyBst); + } + + template<> + template<> + void tObject::test<6> () + { + set_test_name("Assignment Operator"); + gCurrentTest = get_test_name(); + BST bst; + + //Assign empty to empty + BST emptyBst; + emptyBst = bst; + CompareTrees(bst,emptyBst); + + //Return type check + tut::ensure ("Assignment Operator: Testing return value", &emptyBst == &(emptyBst = bst)); + + //Assign empty to full + initBST(bst); + BST fullBst; + fullBst = bst; + CompareTrees(bst,fullBst); + + //Assign to self + fullBst = fullBst; + + //Assign full to empty + BST& nowEmpty = fullBst; + nowEmpty = emptyBst; + CompareTrees(emptyBst, nowEmpty); + } + + template<> + template<> + void tObject::test<7> () + { + set_test_name("Clear"); + gCurrentTest = get_test_name(); + BST bst; + initBST(bst); + + BST bst2(bst); + + BST bst3; + bst3 = bst; + + bst.Clear(); + CompareTrees(bst3, bst2); + bst3.Clear(); + + BSTNode* curNode = bst.GetRoot(); + tut::ensure_equals("GetRoot() - Returned a node after the tree was cleared", curNode, NULL_NODE); + } + + template<> + template<> + void tObject::test<8> () + { + set_test_name ("IsEmpty"); + gCurrentTest = get_test_name(); + BST bst; + initBST(bst); + + BST bst2(bst); + bst = bst2; + BST bst3; + bst3 = bst; + bst.Clear(); + bst3.Clear(); + + tut::ensure_not("IsEmpty() - The Tree is not empty", bst2.IsEmpty()); + bst = bst2; //for the remove stage + bst2.Clear(); + tut::ensure("IsEmpty() - The Tree is Empty", bst2.IsEmpty()); + tut::ensure_equals("GetSize() - The Tree returned a non 0 size after it was cleared", bst2.GetSize(), 0); + } + +#if TEST_BST_REMOVE + template<> + template<> + void tObject::test<9> () + { + set_test_name ("Remove"); + gCurrentTest = get_test_name(); + if(!gDoRemove) + return; + + set::iterator iter; + BSTNode * curNode; + + BST bst; + initBST(bst); + + BST bst2(bst); + bst = bst2; + BST bst3; + bst3 = bst; + bst.Clear(); + bst3.Clear(); + + bst = bst2; + bst2.Clear(); + + for(int i = 0; i < BSTTestSize; i++){ + string key = generateKey(); + if(chosen.find(key) == chosen.end()){ + ensure_not("Remove() - Returned true when the value was not in the tree", bst.Remove(key)); + } + else{ + --i; + } + } + + BSTNode * root = bst.GetRoot(); + chosen.erase(root->GetValue()); + bst.Remove(root->GetValue()); + root = NULL; + + vector randomv(chosen.begin(), chosen.end()); + random_shuffle(randomv.begin(), randomv.end()); + + for(vector::iterator vIter = randomv.begin(); vIter != randomv.end(); vIter++){ + ensure("Remove() - Returned false whe nthe value was in the tree", bst.Remove(*vIter)); + ensure_not("Remove() - Returned true when the value was not in the tree", bst.Remove(*vIter)); + + } + ensure_equals("Remove() - Size of tree is not 0 after removing all values", bst.GetSize(), 0); + ensure_equals("GetRoot() - Did not return NULL after removing all values", bst.GetRoot(), NULL_NODE); + } +#endif +} diff --git a/linked-list-and-binary-search-tree-c++/passoff/test_ll.cpp b/linked-list-and-binary-search-tree-c++/passoff/test_ll.cpp new file mode 100755 index 0000000..2d21c90 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/test_ll.cpp @@ -0,0 +1,407 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "tut/tut.hpp" +#include "LinkedList.h" + +#define NULL_NODE (static_cast(NULL)) + +using namespace std; + +bool gDoSmall = true; +extern std::string gCurrentTest; + +string generateKey(); +void CompareLists(const LinkedList & aList, list & master); + +struct LinkedListTest +{ +public: + LinkedListTest() : LLTestSize((gDoSmall) ? 2827 : 8239) + { + for(int i = 0; i < LLTestSize; ++i) + { + string key = generateKey(); + if(chosen.find(key) != chosen.end()) + { + --i; + } + else + { + master.push_back(key); + chosen.insert(key); + } + } + } + + void initList (LinkedList& aList) + { + list::iterator iter; + for(iter = master.begin(); iter != master.end(); ++iter) + { + LLNode* curNode = aList.Insert(*iter, NULL); + tut::ensure ("Insert() - The returned node is NULL", curNode != NULL_NODE); + tut::ensure_equals ("Insert() - The returned node had the wrong value", curNode->GetValue(), *iter); + } + } + + void sortedInitList (LinkedList& aList) + { + aList.Clear(); + int count = 0; + + list::iterator iter; + for(iter = master.begin(); iter != master.end(); ++iter) + { + LLNode* curNode = aList.GetLast(); + while(curNode != NULL && 0 < curNode->GetValue().compare(*iter)) + { + curNode = curNode->GetPrevious(); + } + aList.Insert(*iter, curNode); + + tut::ensure_equals("Insert() - Size != number of elements inserted", aList.GetSize(), ++count); + } + } + + string generateKey() + { + static const int kKeyLength = 9; + char key[kKeyLength]; + for (int i = 0; i < kKeyLength; ++i) + key[i] = '\0'; + + int digit = '9'-'0'+1; + int upCase = 'Z'-'A'+digit+1; + int top = 'z'-'a'+upCase+1; + for(int i = 0; i < kKeyLength; ++i) + { + int val = rand()%top; + if(val < digit) + { + key[i] = val + '0'; + } + else if(val < upCase) + { + key[i] = val - digit + 'A'; + } + else + { + key[i] = val - upCase + 'a'; + } + } + string result(key); + return result; + } + + const int LLTestSize; + + set chosen; + list master; +}; + +void CompareLists(const LinkedList & aList, list & master){ + const LLNode * curNode = aList.GetFirst(); + + list::iterator iter; + for(iter = master.begin(); iter != master.end() && curNode != NULL; iter++, curNode = curNode->GetNext()) + { + tut::ensure_equals("GetValue() - The values are not the order which they should be", curNode->GetValue(), *iter); + } + + tut::ensure_equals("GetNext() - The list is longer than it should be", curNode, NULL_NODE); + tut::ensure("GetNext() - The list is shorter than it should be", iter == master.end()); +} + +namespace tut +{ + namespace + { + typedef tut::test_group tGroup; + typedef tGroup::object tObject; + tGroup group("LinkedList"); + } + + template<> + template<> + void tObject::test<1> () + { + set_test_name ("Default Constructor"); + gCurrentTest = get_test_name(); + + LinkedList aList; + tut::ensure_equals("Default Constructor - List size != 0", aList.GetSize(), 0); + tut::ensure_equals("Default Constructor - first != NULL", aList.GetFirst(), NULL_NODE); + tut::ensure_equals("Default Constructor - last != NULL", aList.GetLast(), NULL_NODE); + } + + template<> + template<> + void tObject::test<2> () + { + set_test_name ("Clear"); + gCurrentTest = get_test_name(); + + LinkedList aList; + aList.Clear(); + + aList.Insert("To Remove", NULL); + aList.Clear(); + + tut::ensure_equals("Clear() - size != 0", aList.GetSize(), 0); + tut::ensure_equals("Clear() - first != NULL", aList.GetFirst(), NULL_NODE); + tut::ensure_equals("Clear() - last != NULL", aList.GetLast(), NULL_NODE); + } + + template<> + template<> + void tObject::test<3> () + { + set_test_name ("Basic Insert Tests"); + gCurrentTest = get_test_name(); + + LinkedList aList; + initList(aList); + master.reverse(); + + tut::ensure_equals("Insert() - List size != number of strings inserted", aList.GetSize(), static_cast(master.size())); + + tut::ensure("GetLast() - List was empty", aList.GetLast() != NULL); + tut::ensure_equals("GetLast() - Returned the wrong value", aList.GetLast()->GetValue(), master.back()); + tut::ensure_equals("GetLast() - The returned node had a next", aList.GetLast()->GetNext(), NULL_NODE); + + tut::ensure("GetFirst() - List was empty", aList.GetFirst() != NULL); + tut::ensure_equals("GetFirst() - Returned the wrong value", aList.GetFirst()->GetValue(), master.front()); + tut::ensure_equals("GetFirst() - The returned node had a next", aList.GetFirst()->GetPrevious(), NULL_NODE); + } + + template<> + template<> + void tObject::test<4> () + { + set_test_name ("Insert"); + gCurrentTest = get_test_name(); + + master.reverse(); + + LinkedList aList; + aList.Clear(); + + int count = 0; + list::iterator iter; + for(iter = master.begin(); iter != master.end(); iter++) + { + LLNode* curNode = aList.GetLast(); + while(curNode != NULL && curNode->GetValue().compare(*iter) > 0) + { + curNode = curNode->GetPrevious(); + } + aList.Insert(*iter, curNode); + + ensure_equals("Size != number of elements inserted", aList.GetSize(), ++count); + } + + sortedInitList(aList); + list sorted(master.begin(), master.end()); + sorted.sort(); + + tut::ensure_equals("Insert() - Size != Number of strings inserted", aList.GetSize(), static_cast(sorted.size())); + + CompareLists(aList, sorted); + } + + template<> + template<> + void tObject::test<5> () + { + set_test_name ("Copy Constructor"); + gCurrentTest = get_test_name(); + + LinkedList aList; + LinkedList emptyCopy(aList); + + initList(aList); + master.reverse(); + sortedInitList(aList); + + list sorted(master.begin(), master.end()); + sorted.sort(); + + LinkedList fullCopyList(aList); + + tut::ensure_equals("Copy Constructor - Size != size of original list", aList.GetSize(), fullCopyList.GetSize()); + + aList.Clear(); + CompareLists(fullCopyList, sorted); + } + + template<> + template<> + void tObject::test<6> () + { + set_test_name ("Assignment Operator"); + gCurrentTest = get_test_name(); + + LinkedList aList; + + //Assign an empty to an empty + LinkedList emptyList; + emptyList = aList; + + //Return type check + tut::ensure ("Assignment Operator: Testing return value", &emptyList == &(emptyList = aList)); + + //Assign full to an empty + initList(aList); + master.reverse(); + sortedInitList(aList); + + list sorted(master.begin(), master.end()); + sorted.sort(); + + LinkedList fullList; + fullList = aList; + tut::ensure_equals("Assignment Operator - Size != size of original list when going from empty to full", fullList.GetSize(), aList.GetSize()); + + aList.Clear(); + CompareLists(fullList, sorted); + + //Self assignment + fullList = fullList; + tut::ensure_equals("Assignment Operator - Size != size of original list on self assignment", fullList.GetSize(), sorted.size()); + CompareLists(fullList, sorted); + + //Assign full to empty + LinkedList& nowEmpty = fullList; + nowEmpty = aList; + tut::ensure_equals("Assignment Operator - Size != size of original list when going from full to empty", nowEmpty.GetSize(), aList.GetSize()); + } + + template<> + template<> + void tObject::test<7> () + { + set_test_name ("IsEmpty"); + gCurrentTest = get_test_name(); + + LinkedList aList; + initList(aList); + master.reverse(); + sortedInitList(aList); + + list sorted(master.begin(), master.end()); + sorted.sort(); + + LinkedList cList; + cList = aList; + + tut::ensure_equals("Assignment Operator - Size != size of original list", cList.GetSize(), aList.GetSize()); + + aList.Clear(); + + CompareLists(cList, sorted); + + tut::ensure_not("IsEmpty() - returned true when list was not empty", cList.IsEmpty()); + tut::ensure("IsEmpty() - returned false when list was empty", aList.IsEmpty()); + } + + template<> + template<> + void tObject::test<8> () + { + set_test_name ("Find"); + gCurrentTest = get_test_name(); + + LinkedList aList; + initList(aList); + master.reverse(); + + list sorted(master.begin(), master.end()); + sorted.sort(); + + list::iterator iter; + for(iter = master.begin(); iter != master.end(); iter++){ + LLNode* curNode = aList.Find(*iter, NULL); + + tut::ensure("Find() - Find returned NULL when it shouldn't have", curNode != NULL); + tut::ensure_equals("Find() - Find returned the wrong value", curNode->GetValue(), *iter); + }//end for iter + + LLNode* curNode = NULL; + curNode = aList.Find(master.back(), aList.GetLast()); + + tut::ensure_equals("Find() - Find is starting its search on the node given, not the node after the one given", curNode, NULL_NODE); + + curNode = aList.GetFirst(); + int attempt = -1; + while(curNode != NULL){ + tut::ensure_equals("Find() - Find is returning a value when it should be returning NULL", aList.Find(curNode->GetValue(), curNode), NULL_NODE); + curNode = curNode->GetNext(); + tut::ensure("GetNext() - Infinite loop hit", attempt++ <= LLTestSize); + } + + iter = master.begin(); + iter++; + curNode = aList.Find(*iter, NULL); + tut::ensure("Find() - Returned NULL when it should not have", curNode != NULL); + curNode = aList.Find(master.front(), curNode); + tut::ensure_equals("Find() - Did not return NULL when the item was in the list, but before the search point", curNode, NULL_NODE); + + string key = generateKey(); + while(chosen.find(key) != chosen.end()){ + key = generateKey(); + } + curNode = aList.Find(key, NULL); + tut::ensure_equals("Find() - Find is returning a value when the value is not in the list", curNode, NULL_NODE); + } + + template<> + template<> + void tObject::test<9> () + { + set_test_name ("Remove"); + gCurrentTest = get_test_name(); + + LinkedList aList; + initList(aList); + + master.reverse(); + list sorted(master.begin(), master.end()); + sorted.sort(); + + for(int i = 0; i < LLTestSize/2; i++) + { + ensure_not("Internal Error", master.empty()); + master.pop_back(); + aList.Remove(aList.GetLast()); + ensure_equals("GetSize() Did not return the correct size after a remove", aList.GetSize(), static_cast(master.size())); + } + + for(set::iterator setIter = chosen.begin(); setIter != chosen.end(); ++setIter) + { + LLNode* curNode = aList.Find(*setIter, NULL); + list::iterator iter = find(master.begin(), master.end(), *setIter); + ensure("Find() - Returned a value which was removed", iter != master.end() || curNode == NULL); + ensure("Find() - Returned NULL when the value was in the list", iter == master.end() || curNode != NULL); + ensure("Find() - Find returned the wrong value", curNode == NULL || curNode->GetValue() == *setIter); + } + + master.sort(); + list::iterator iter; + for(iter = master.begin(); iter != master.end(); ++iter) + { + aList.Remove(aList.Find(*iter,0)); + } + + ensure_equals("Remove() - List did not return a size of 0 when the list was empty", aList.GetSize(), 0); + ensure("Remove() - List should be empty", aList.IsEmpty()); + ensure_equals("Remove() - List should have no first node", aList.GetFirst(), NULL_NODE); + ensure_equals("Remove() - List should have no last node", aList.GetLast(), NULL_NODE); + } +} + diff --git a/linked-list-and-binary-search-tree-c++/passoff/test_runner.cpp b/linked-list-and-binary-search-tree-c++/passoff/test_runner.cpp new file mode 100755 index 0000000..8f3ebe4 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/test_runner.cpp @@ -0,0 +1,111 @@ +#include +#include +#include +#include "tut/tut.hpp" +#include "tut/tut_reporter.hpp" + +///@file +///All tests are auto-included through linking thanks to the TUT Unit Test frame-work +///@see tut + +namespace tut +{ + test_runner_singleton gRunner; +} + +namespace +{ + const std::string gTestGroupDefault = "all"; + const int gTestDefault = -1; +} + +std::string gCurrentTest = ""; + + +void segfault_handler(int num) +{ + std::cout << "Died during the test \"" << gCurrentTest << "\"" << std::endl; + exit(-1); +} + + +namespace po = boost::program_options; + +void print_tests () +{ + std::cout << "CS 240 Collections Pass Off" << std::endl; + std::cout << std::endl << "Tests: " << std::endl; + + tut::groupnames names = tut::runner.get().list_groups(); + tut::groupnames::iterator nameItr = names.begin(); + for (; nameItr != names.end(); ++nameItr) + std::cout << "\t\"" << *nameItr << "\"" << std::endl; +} + +bool run (const std::string &testGroup, int test) +{ + std::cout << "CS 240 Collections Pass Off" << std::endl; + tut::reporter reportPresenter; + tut::runner.get().set_callback(&reportPresenter); + + if (testGroup == gTestGroupDefault) + tut::runner.get().run_tests (); + else if (test == gTestDefault) + tut::runner.get().run_tests (testGroup); + else + tut::runner.get().run_test (testGroup, test); + + std::cout << std::endl << "Finished" << std::endl; + + return true; +} + + +int main(int argc, char* argv[]) +{ + bool success = true; + + try + { + std::string testGroup; + int test; + + po::options_description optionList ("Allowed options"); + optionList.add_options() + ("test,t", po::value(&testGroup)->default_value(gTestGroupDefault), "Selects which test group to run") + ("number,n", po::value(&test)->default_value(gTestDefault), "Select a test within a group") + ("list-tests,l", "List available tests") + ("disable-seg,d", "Disable the seg-fault handler to make debugging easier") + ("help,h", "Prints this message") + ; + + po::positional_options_description positionalOptions; + positionalOptions.add("test", -1); + + po::variables_map parsedOptions; + po::store (po::command_line_parser (argc, argv).options(optionList).positional(positionalOptions).run(), parsedOptions); + po::notify (parsedOptions); + + if (parsedOptions.count("disable-seg") == 0) + std::signal(SIGSEGV, segfault_handler); + + if (0 < parsedOptions.count("help")) + { + std::cout << "CS 240 Collections Pass Off" << std::endl; + std::cout << optionList << std::endl; + } + else if (0 < parsedOptions.count("list-tests")) + print_tests(); + else + success = run(testGroup, test); + + } + catch (std::exception &e) + { + std::cerr << e.what() << std::endl; + std::cerr << "Abborting" << std::endl; + success = false;; + } + + return success? boost::exit_success : boost::exit_failure; +} diff --git a/linked-list-and-binary-search-tree-c++/passoff/tut/readme b/linked-list-and-binary-search-tree-c++/passoff/tut/readme new file mode 100755 index 0000000..2d28735 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/tut/readme @@ -0,0 +1,509 @@ +Documentation TUT How-To minimum steps to make TUT work for you + +What is TUT + +TUT is a pure C++ unit test framework. Its name - TUT - stands for +Template Unit Tests. + +Features + +TUT provides all features required for unit testing: + + * Similar tests can be grouped together into test groups. Each + test group has its unique name and is located in a separate + compilation unit. One group can contain almost unlimited number + of tests (actually, the limit is the compiler template + recursion depth). + * User can run all the tests (regression), or just some selected + groups or even some tests in these groups. + * TUT provides special template functions to check the condition + validity at run-time and to force test failure if required. + Since C++ doesn't provide a facility for obtaining stack trace + of the throwed exception and TUT avoids macros, those functions + accept string marker to allow users easely determine the source + of exception. + * TUT contains callback that can be implemented by the calling code + to integrate with an IDE, for example. Callbacks tell listener + when a new test run started, when test runner switches to the + next tests group, when a test was completed (and what result it + has), and when test run was finished. The callbacks allow users + to produce their own visualization format for test process and results. + * Being a template library, it doesn't need compilation; just + include the header into the test modules. + +TUT tests organization + +Test application + +C++ produces executable code, so tests have to be compiled into a single +binary called test application. The application can be built in automated +mode to perform nightly tests. They also can be built manually when a +developer hunts for bugs. + +The test application contains tests, organized into test groups. + +Test groups + +The functionality of a tested application can be divided into a few separate +function blocks (e.g. User Rights, Export, Processing, ...). It is natural +to group together tests for each block. TUT invokes this test group. Each +test group has a unique human-readable name and normally is located in a +separate file. + +Tests + +Each single test usually checks only one specific element of functionality. +For example, for a container a test could check whether size() call +returns zero after the successful call to the clear() method. + +Writing simple test + +Preamble + +You are going to create a new class for your application. You decided to +write tests for the class to be sure it works while you are developing or, +possibly, enhancing it. Let's consider your class is shared pointer: +std::auto_ptr-alike type that shares the same object among instances. + +Prior to test writing, you should decide what to test. Maximalist's +approach requires to write so many tests that altering any single +line of your production code will break at least one of them. +Minimalist's approach allows one to write tests only for the most +general or the most complex use cases. The truth lies somewhere in +between, but only you, developer, know where. You should prepare +common successful and unsuccessful scenarios, and the scenarios for +testing any other functionality you believe might be broken in some way. + +For our shared_ptr we obviosly should test constructors, assignment operators, referencing and passing ownership. + +Skeleton + +If you don't have any implemented class to test yet, it would be good to +implement it as a set of stubs for a first time. Thus you'll get an +interface, and be able to write your tests. Yes, that's correct: you +should write your tests before writing code! First of all, writing tests +often helps to understand oddities in the current interface, and fix it. +Secondly, with the stubs all your tests will fail, so you'll be sure +they do their job. + +Creating Test Group + +Since we're writing unit tests, it would be a good idea to group the +tests for our class in one place to be able to run them separately. +It's also natural in C++ to place all the grouped tests into one +compilation unit (i.e. source file). So, to begin, we should create +a new file. Let's call it test_shared_ptr.cpp. (Final variant of the +test group can be found in examples/shared_ptr subdirectory of the +distribution package) + +// test_shared_ptr.cpp +#include + +namespace tut +{ +}; + + +As you see, you need to include TUT header file (as expected) and +use namespace tut for tests. You may also use anonymous namespace if +your compiler allows it (you will need to instantiate methods from +tut namespace and some compilers refuse to place such instantiations +into the anonymous namespace). + +A test group in TUT framework is described by the special template +test_group. The template parameter T is a type that will hold all +test-specific data during the test execution. Actually, the data +stored in T are member data of the test. Test object is inherited +from T, so any test can refer to the data in T as its member data. + +For simple test groups (where all data are stored in test local +variables) type T is an empty struct. + +#include + +namespace tut +{ + struct shared_ptr_data + { + }; +} + +But when tests have complex or repeating creation phase, you may put +data members into the T and provide constructor (and, if required, +destructor) for it. For each test, a new instance of T will be +created. To prepare your test for execution TUT will use default +constructor. Similarly, after the test has been finished, TUT +calls the destructor to clean up T. I.e.: + +#include + +namespace tut +{ + struct complex_data + { + connection* con; + complex_data(){ con = db_pool.get_connection(); } + ~complex_data(){ db_pool.release_connection(con); } + }; + + // each test from now will have con data member initialized + // by constructor: + ... + con->commit(); + ... + + +What will happen if the constructor throws an exception? TUT will treat +it as if test itself failed with exception, so this test will +not be executed. You'll see an exception mark near the test, and +if the constructor throwed something printable, a certain message will appear. + +Exception in destructor is threated a bit different. Reaching destruction +phase means that the test is passed, so TUT marks test with warning +status meaning that test itself was OK, but something bad has happend +after the test. + +Well, all we have written so far is just a type declaration. To work +with a group we have to have an object, so we must create the test group +object. Since we need only one test group object for each unit, we can +(and should, actually) make this object static. To prevent name clash with +other test group objects in the namespace tut, we should provide a +descriptive name, or, alternatively, we may put it into the anonymous +namespace. The former is more correct, but a descriptive name usually works +well too, unless you're too terse in giving names to objects. + +#include + +namespace tut +{ + struct shared_ptr_data + { + + }; + + typedef test_group tg; + tg shared_ptr_group("shared_ptr"); +}; + +As you see, any test group accepts a single parameter - its human-readable +name. This name is used to identify the group when a programmer wants to +execute all tests or a single test within the group. So this name shall +also be descriptive enough to avoid clashes. Since we're writing tests +for a specific unit, it's enough to name it after the unit name. + +Test group constructor will be called at unspecified moment at the test +application startup. The constructor performs self-registration; it calls +tut::runner and asks it to store the test group object name and location. +Any other test group in the system undergoes the same processing, i.e. +each test group object registers itself. Thus, test runner can iterate +all test groups or execute any test group by its name. + +Newly created group has no tests associated with it. To be more precise, +it has predefined set of dummy tests. By default, there are 50 tests in a +group, including dummy ones. To create a test group with higher volume +(e.g. when tests are generated by a script and their number is higher) +we must provide a higher border of test group size when it is instantiated: + +#include + +namespace tut +{ + struct huge_test_data + { + }; + + // test group with maximum 500 tests + typedef test_group testgroup; + testgroup huge_test_testgroup("huge group"); +}; + + +Note also, that your compiler will possibly need a command-line switch +or pragma to enlarge recursive instantiation depth. For g++, for +example, you should specify at least --ftemplate-depth-501 to increase +the depth. For more information see your compiler documentation. + +Creating Tests + +Now it's time to fill our test group with content. + +In TUT, all tests have unique numbers inside the test group. Some +people believe that textual names better describe failed tests in +reports. I agree; but in reality C++ templates work good with numbers +because they are compile-time constants and refuse to do the same +with strings, since strings are in fact addresses of character +buffers, i.e. run-time data. + +As I mentioned above, our test group already has a few dummy tests; +and we can replace any of them with something real just by writing +our own version: + +#include + +namespace tut +{ + struct shared_ptr_data{}; + + typedef test_group testgroup; + typedef testgroup::object testobject; + testgroup shared_ptr_testgroup("shared_ptr"); + + template<> + template<> + void testobject::test<1>() + { + // do nothing test + } +}; + + +So far this test does nothing, but it's enough to illustrate the concept. + +All tests in the group belong to the type test_group::object. This +class is directly inherited from our test data structure. In our case, it is + +class object : public shared_ptr_data { ... } + +This allows to access members of the data structure directly, since at +the same time they are members of the object type. We also typedef the +type with testobject for brevity. + +We mark our test with number 1. Previously, test group had a dummy test +with the same number, but now, since we've defined our own version, it +replaces the dummy test as more specialized one. It's how C++ template +ordering works. + +The test we've written always succeeds. Successful test returns with no +exceptions. Unsuccessful one either throws an exception, or fails at +fail() or ensure() methods (which anyway just throw the exception when failed). + +First real test + +Well, now we know enough to write the first real working test. This test +will create shared_ptr instances and check their state. We will define a +small structure (keepee) to use it as shared_ptr stored object type. + +#include +#include + +namespace tut +{ + struct shared_ptr_data + { + struct keepee{ int data; }; + }; + + typedef test_group testgroup; + typedef testgroup::object testobject; + testgroup shared_ptr_testgroup("shared_ptr"); + + /** + * Checks default constructor. + */ + template<> + template<> + void testobject::test<1>() + { + shared_ptr def; + ensure("null",def.get() == 0); + } +}; + + +That's all! The first line creates shared_ptr. If constructor throws +an exception, test will fail (exceptions, including '...', are catched +by the TUT framework). If the first line succeeds, we must check +whether the kept object is null one. To do this, we use test object +member function ensure(), which throws std::logic_error with a given +message if its second argument is not true. Finally, if destructor of +shared_ptr fails with exception, TUT also will report this test as failed. + +It's equally easy to write a test for the scenario where we expect to get +an exception: let's consider our class should throw an exception if it +has no stored object, and the operator -> is called. + +/** + * Checks operator -> throws instead of returning null. + */ +template<> +template<> +void testobject::test<2>() +{ + try + { + shared_ptr sp; + sp->data = 0; + fail("exception expected"); + } + catch( const std::runtime_error& ex ) + { + // ok + } +} + + +Here we expect the std::runtime_error. If operator doesn't throw it, +we'll force the test to fail using another member function: fail(). It +just throws std::logic_error with a given message. If operator throws +anything else, our test will fail too, since we intercept only +std::runtime_error, and any other exception means the test has failed. + +NB: our second test has number 2 in its name; it can, actually, be any +in range 1..Max; the only requirement is not to write tests with the +same numbers. If you did, compiler will force you to fix them anyway. + +And finally, one more test to demonstrate how to use the +ensure_equals template member function: + +/** + * Checks keepee counting. + */ +template<> +template<> +void testobject::test<3>() +{ + shared_ptr sp1(new keepee()); + shared_ptr sp2(sp1); + ensure_equals("second copy at sp1",sp1.count(),2); + ensure_equals("second copy at sp2",sp2.count(),2); +} + + +The test checks if the shared_ptr correctly counts references during +copy construction. What's interesting here is the template member +ensure_equals. It has an additional functionality comparing with similar +call ensure("second_copy",sp1.count()==2); it uses operator == to check +the equality of the two passed parameters and, what's more important, it +uses std::stream to format the passed parameters into a human-readable +message (smth like: "second copy: expected 2, got 1"). It means that +ensure_equals cannot be used with the types that don't have operator <<; +but for those having the operator it provides much more informational message. + +In contrast to JUnit assertEquals, where the expected value goes before +the actual one, ensure_equals() accepts the expected after the actual +value. I believe it's more natural to read ensure_equals("msg", count, 5) +as "ensure that count equals to 5" rather than JUnit's +"assert that 5 is the value of the count". + +Running tests + +Tests are already written, but an attempt to run them will be unsuccessful. +We need a few other bits to complete the test application. + +First of all, we need a main() method, simply because it must be in all +applications. Secondly, we need a test runner singleton. Remember I said +each test group should register itself in singleton? So, we need that +singleton. And, finally, we need a kind of a callback handler to visualize +our test results. + +The design of TUT doesn't strictly set a way the tests are visualized; +instead, it provides an opportunity to get the test results by means of +callbacks. Moreover it allows user to output the results in any format he +prefers. Of course, there is a "reference implementation" in the +example/subdirectory of the project. + +Test runner singleton is defined in tut.h, so all we need to activate it +is to declare an object of the type tut::test_runner_singleton in the main +module with a special name tut::runner. + +Now, with the test_runner we can run tests. Singleton has method get() +returning a reference to an instance of the test_runner class, which in +turn has methods run_tests() to run all tests in all groups, +run_tests(const std::string& groupname) to run all tests in a given group +and run_test(const std::string& grp,int n) to run one test in the specified group. + +// main.cpp +#include + +namespace tut +{ + test_runner_singleton runner; +} + +int main() +{ + // run all tests in all groups + runner.get().run_tests(); + + // run all tests in group "shared_ptr" + runner.get().run_tests("shared_ptr"); + + // run test number 5 in group "shared_ptr" + runner.get().run_test("shared_ptr",5); + + return 0; +} + +It's up to user to handle command-line arguments or GUI messages and map those +arguments/messages to actual calls to test runner. Again, as you see, TUT +doesn't restrict user here. + +But, the last question is still unanswered: how do we get our test results? +The answer lies inside tut::callback interface. User shall create its subclass, +and write up to three simple methods. He also can omit any method since they +have default no-op implementation. Each corresponding method is called in the +following cases: + + * a new test run started; + * test finished; + * test run finished. + +Here is a minimal implementation: + +class visualizator : public tut::callback +{ +public: + void run_started(){ } + + void test_completed(const tut::test_result& tr) + { + // ... show test result here ... + } + + void run_completed(){ } +}; + +The most important is the test_completed() method; its parameter has type +test_result, and contains everything about the finished test, from its group +name and number to the exception message, if any. Member result is an enum +that contains status of the test: ok, fail or ex. Take a look at the +examples/basic/main.cpp for more complete visualizator. + +Visualizator should be passed to the test_runner before run. Knowing that, +we are ready to write the final version of our main module: + +// main.cpp +#include + +namespace tut +{ + test_runner_singleton runner; +} + +class callback : public tut::callback +{ +public: + void run_started(){ std::cout << "\nbegin"; } + + void test_completed(const tut::test_result& tr) + { + std::cout << tr.test_pos << "=" << tr.result << std::flush; + } + + void run_completed(){ std::cout << "\nend"; } +}; + +int main() +{ + callback clbk; + runner.get().set_callback(&clbk); + + // run all tests in all groups + runner.get().run_tests(); + return 0; +} + +That's it. You are now ready to link and run our test application. Do it as often as possible; +once a day is a definite must. I hope, TUT will help you to make your application more +robust and relieve your testing pain. Feel free to send your questions, suggestions and +critical opinions to me; I'll do my best to address them asap. diff --git a/linked-list-and-binary-search-tree-c++/passoff/tut/tut.hpp b/linked-list-and-binary-search-tree-c++/passoff/tut/tut.hpp new file mode 100755 index 0000000..cb0a06a --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/tut/tut.hpp @@ -0,0 +1,1180 @@ +#ifndef TUT_H_GUARD +#define TUT_H_GUARD + +#include +#include +#include +#include +#include +#include + +#if defined(TUT_USE_SEH) +#include +#include +#endif + +/** + * Template Unit Tests Framework for C++. + * http://tut.dozen.ru + * + * @author Vladimir Dyuzhev, Vladimir.Dyuzhev@gmail.com + */ +namespace tut +{ + +/** + * The base for all TUT exceptions. + */ +struct tut_error : public std::exception +{ + tut_error(const std::string& msg) + : err_msg(msg) + { + } + + ~tut_error() throw() + { + } + + const char* what() const throw() + { + return err_msg.c_str(); + } + +private: + + std::string err_msg; +}; + +/** + * Exception to be throwed when attempted to execute + * missed test by number. + */ +struct no_such_test : public tut_error +{ + no_such_test() + : tut_error("no such test") + { + } + + ~no_such_test() throw() + { + } +}; + +/** + * No such test and passed test number is higher than + * any test number in current group. Used in one-by-one + * test running when upper bound is not known. + */ +struct beyond_last_test : public no_such_test +{ + beyond_last_test() + { + } + + ~beyond_last_test() throw() + { + } +}; + +/** + * Group not found exception. + */ +struct no_such_group : public tut_error +{ + no_such_group(const std::string& grp) + : tut_error(grp) + { + } + + ~no_such_group() throw() + { + } +}; + +/** + * Internal exception to be throwed when + * no more tests left in group or journal. + */ +struct no_more_tests +{ + no_more_tests() + { + } + + ~no_more_tests() throw() + { + } +}; + +/** + * Internal exception to be throwed when + * test constructor has failed. + */ +struct bad_ctor : public tut_error +{ + bad_ctor(const std::string& msg) + : tut_error(msg) + { + } + + ~bad_ctor() throw() + { + } +}; + +/** + * Exception to be throwed when ensure() fails or fail() called. + */ +struct failure : public tut_error +{ + failure(const std::string& msg) + : tut_error(msg) + { + } + + ~failure() throw() + { + } +}; + +/** + * Exception to be throwed when test desctructor throwed an exception. + */ +struct warning : public tut_error +{ + warning(const std::string& msg) + : tut_error(msg) + { + } + + ~warning() throw() + { + } +}; + +/** + * Exception to be throwed when test issued SEH (Win32) + */ +struct seh : public tut_error +{ + seh(const std::string& msg) + : tut_error(msg) + { + } + + ~seh() throw() + { + } +}; + +/** + * Return type of runned test/test group. + * + * For test: contains result of test and, possible, message + * for failure or exception. + */ +struct test_result +{ + /** + * Test group name. + */ + std::string group; + + /** + * Test number in group. + */ + int test; + + /** + * Test name (optional) + */ + std::string name; + + /** + * ok - test finished successfully + * fail - test failed with ensure() or fail() methods + * ex - test throwed an exceptions + * warn - test finished successfully, but test destructor throwed + * term - test forced test application to terminate abnormally + */ + enum result_type + { + ok, + fail, + ex, + warn, + term, + ex_ctor + }; + + result_type result; + + /** + * Exception message for failed test. + */ + std::string message; + std::string exception_typeid; + + /** + * Default constructor. + */ + test_result() + : test(0), + result(ok) + { + } + + /** + * Constructor. + */ + test_result(const std::string& grp, int pos, + const std::string& test_name, result_type res) + : group(grp), + test(pos), + name(test_name), + result(res) + { + } + + /** + * Constructor with exception. + */ + test_result(const std::string& grp,int pos, + const std::string& test_name, result_type res, + const std::exception& ex) + : group(grp), + test(pos), + name(test_name), + result(res), + message(ex.what()), + exception_typeid(typeid(ex).name()) + { + } +}; + +/** + * Interface. + * Test group operations. + */ +struct group_base +{ + virtual ~group_base() + { + } + + // execute tests iteratively + virtual void rewind() = 0; + virtual test_result run_next() = 0; + + // execute one test + virtual test_result run_test(int n) = 0; +}; + +/** + * Test runner callback interface. + * Can be implemented by caller to update + * tests results in real-time. User can implement + * any of callback methods, and leave unused + * in default implementation. + */ +struct callback +{ + /** + * Virtual destructor is a must for subclassed types. + */ + virtual ~callback() + { + } + + /** + * Called when new test run started. + */ + virtual void run_started() + { + } + + /** + * Called when a group started + * @param name Name of the group + */ + virtual void group_started(const std::string& /*name*/) + { + } + + /** + * Called when a test finished. + * @param tr Test results. + */ + virtual void test_completed(const test_result& /*tr*/) + { + } + + /** + * Called when a group is completed + * @param name Name of the group + */ + virtual void group_completed(const std::string& /*name*/) + { + } + + /** + * Called when all tests in run completed. + */ + virtual void run_completed() + { + } +}; + +/** + * Typedef for runner::list_groups() + */ +typedef std::vector groupnames; + +/** + * Test runner. + */ +class test_runner +{ + +public: + + /** + * Constructor + */ + test_runner() + : callback_(&default_callback_) + { + } + + /** + * Stores another group for getting by name. + */ + void register_group(const std::string& name, group_base* gr) + { + if (gr == 0) + { + throw tut_error("group shall be non-null"); + } + + // TODO: inline variable + groups::iterator found = groups_.find(name); + if (found != groups_.end()) + { + std::string msg("attempt to add already existent group " + name); + // this exception terminates application so we use cerr also + // TODO: should this message appear in stream? + std::cerr << msg << std::endl; + throw tut_error(msg); + } + + groups_[name] = gr; + } + + /** + * Stores callback object. + */ + void set_callback(callback* cb) + { + callback_ = cb == 0 ? &default_callback_ : cb; + } + + /** + * Returns callback object. + */ + callback& get_callback() const + { + return *callback_; + } + + /** + * Returns list of known test groups. + */ + const groupnames list_groups() const + { + groupnames ret; + const_iterator i = groups_.begin(); + const_iterator e = groups_.end(); + while (i != e) + { + ret.push_back(i->first); + ++i; + } + return ret; + } + + /** + * Runs all tests in all groups. + * @param callback Callback object if exists; null otherwise + */ + void run_tests() const + { + callback_->run_started(); + + const_iterator i = groups_.begin(); + const_iterator e = groups_.end(); + while (i != e) + { + callback_->group_started(i->first); + try + { + run_all_tests_in_group_(i); + } + catch (const no_more_tests&) + { + callback_->group_completed(i->first); + } + + ++i; + } + + callback_->run_completed(); + } + + /** + * Runs all tests in specified group. + */ + void run_tests(const std::string& group_name) const + { + callback_->run_started(); + + const_iterator i = groups_.find(group_name); + if (i == groups_.end()) + { + callback_->run_completed(); + throw no_such_group(group_name); + } + + callback_->group_started(group_name); + try + { + run_all_tests_in_group_(i); + } + catch (const no_more_tests&) + { + // ok + } + + callback_->group_completed(group_name); + callback_->run_completed(); + } + + /** + * Runs one test in specified group. + */ + test_result run_test(const std::string& group_name, int n) const + { + callback_->run_started(); + + const_iterator i = groups_.find(group_name); + if (i == groups_.end()) + { + callback_->run_completed(); + throw no_such_group(group_name); + } + + callback_->group_started(group_name); + try + { + test_result tr = i->second->run_test(n); + callback_->test_completed(tr); + callback_->group_completed(group_name); + callback_->run_completed(); + return tr; + } + catch (const beyond_last_test&) + { + callback_->group_completed(group_name); + callback_->run_completed(); + throw; + } + catch (const no_such_test&) + { + callback_->group_completed(group_name); + callback_->run_completed(); + throw; + } + } + +protected: + + typedef std::map groups; + typedef groups::iterator iterator; + typedef groups::const_iterator const_iterator; + groups groups_; + + callback default_callback_; + callback* callback_; + + +private: + + void run_all_tests_in_group_(const_iterator i) const + { + i->second->rewind(); + for ( ;; ) + { + test_result tr = i->second->run_next(); + callback_->test_completed(tr); + + if (tr.result == test_result::ex_ctor) + { + throw no_more_tests(); + } + } + } +}; + +/** + * Singleton for test_runner implementation. + * Instance with name runner_singleton shall be implemented + * by user. + */ +class test_runner_singleton +{ +public: + + static test_runner& get() + { + static test_runner tr; + return tr; + } +}; + +extern test_runner_singleton runner; + +/** + * Test object. Contains data test run upon and default test method + * implementation. Inherited from Data to allow tests to + * access test data as members. + */ +template +class test_object : public Data +{ +public: + + /** + * Default constructor + */ + test_object() + { + } + + void set_test_name(const std::string& current_test_name) + { + current_test_name_ = current_test_name; + } + + const std::string& get_test_name() const + { + return current_test_name_; + } + + /** + * Default do-nothing test. + */ + template + void test() + { + called_method_was_a_dummy_test_ = true; + } + + /** + * The flag is set to true by default (dummy) test. + * Used to detect usused test numbers and avoid unnecessary + * test object creation which may be time-consuming depending + * on operations described in Data::Data() and Data::~Data(). + * TODO: replace with throwing special exception from default test. + */ + bool called_method_was_a_dummy_test_; + +private: + + std::string current_test_name_; +}; + +namespace +{ + +/** + * Tests provided condition. + * Throws if false. + */ +void ensure(bool cond) +{ + if (!cond) + { + // TODO: default ctor? + throw failure(""); + } +} + +/** + * Tests provided condition. + * Throws if true. + */ +void ensure_not(bool cond) +{ + ensure(!cond); +} + +/** + * Tests provided condition. + * Throws if false. + */ +template +void ensure(const T msg, bool cond) +{ + if (!cond) + { + throw failure(msg); + } +} + +/** + * Tests provided condition. + * Throws if true. + */ +template +void ensure_not(const T msg, bool cond) +{ + ensure(msg, !cond); +} + +/** + * Tests two objects for being equal. + * Throws if false. + * + * NB: both T and Q must have operator << defined somewhere, or + * client code will not compile at all! + */ +template +void ensure_equals(const char* msg, const Q& actual, const T& expected) +{ + if (expected != actual) + { + std::stringstream ss; + ss << (msg ? msg : "") + << (msg ? ":" : "") + << " expected '" + << expected + << "' actual '" + << actual + << '\''; + throw failure(ss.str().c_str()); + } +} + +template +void ensure_equals(const Q& actual, const T& expected) +{ + ensure_equals<>(0, actual, expected); +} + +/** + * Tests two objects for being at most in given distance one from another. + * Borders are excluded. + * Throws if false. + * + * NB: T must have operator << defined somewhere, or + * client code will not compile at all! Also, T shall have + * operators + and -, and be comparable. + */ +template +void ensure_distance(const char* msg, const T& actual, const T& expected, + const T& distance) +{ + if (expected-distance >= actual || expected+distance <= actual) + { + std::stringstream ss; + ss << (msg ? msg : "") + << (msg? ":" : "") + << " expected (" + << expected-distance + << " - " + << expected+distance + << ") actual '" + << actual + << '\''; + throw failure(ss.str().c_str()); + } +} + +template +void ensure_distance(const T& actual, const T& expected, const T& distance) +{ + ensure_distance<>(0, actual, expected, distance); +} + +/** + * Unconditionally fails with message. + */ +void fail(const char* msg = "") +{ + throw failure(msg); +} + +} // end of namespace + +/** + * Walks through test tree and stores address of each + * test method in group. Instantiation stops at 0. + */ +template +struct tests_registerer +{ + static void reg(Group& group) + { + group.reg(n, &Test::template test); + tests_registerer::reg(group); + } +}; + +template +struct tests_registerer +{ + static void reg(Group&) + { + } +}; + +/** + * Test group; used to recreate test object instance for + * each new test since we have to have reinitialized + * Data base class. + */ +template +class test_group : public group_base +{ + const char* name_; + + typedef void (test_object::*testmethod)(); + typedef std::map tests; + typedef typename tests::iterator tests_iterator; + typedef typename tests::const_iterator tests_const_iterator; + typedef typename tests::const_reverse_iterator + tests_const_reverse_iterator; + typedef typename tests::size_type size_type; + + tests tests_; + tests_iterator current_test_; + + /** + * Exception-in-destructor-safe smart-pointer class. + */ + template + class safe_holder + { + T* p_; + bool permit_throw_in_dtor; + + safe_holder(const safe_holder&); + safe_holder& operator=(const safe_holder&); + + public: + safe_holder() + : p_(0), + permit_throw_in_dtor(false) + { + } + + ~safe_holder() + { + release(); + } + + T* operator->() const + { + return p_; + } + + T* get() const + { + return p_; + } + + /** + * Tell ptr it can throw from destructor. Right way is to + * use std::uncaught_exception(), but some compilers lack + * correct implementation of the function. + */ + void permit_throw() + { + permit_throw_in_dtor = true; + } + + /** + * Specially treats exceptions in test object destructor; + * if test itself failed, exceptions in destructor + * are ignored; if test was successful and destructor failed, + * warning exception throwed. + */ + void release() + { + try + { + if (delete_obj() == false) + { + throw warning("destructor of test object raised" + " an SEH exception"); + } + } + catch (const std::exception& ex) + { + if (permit_throw_in_dtor) + { + std::string msg = "destructor of test object raised" + " exception: "; + msg += ex.what(); + throw warning(msg); + } + } + catch( ... ) + { + if (permit_throw_in_dtor) + { + throw warning("destructor of test object raised an" + " exception"); + } + } + } + + /** + * Re-init holder to get brand new object. + */ + void reset() + { + release(); + permit_throw_in_dtor = false; + p_ = new T(); + } + + bool delete_obj() + { +#if defined(TUT_USE_SEH) + __try + { +#endif + T* p = p_; + p_ = 0; + delete p; +#if defined(TUT_USE_SEH) + } + __except(handle_seh_(::GetExceptionCode())) + { + if (permit_throw_in_dtor) + { + return false; + } + } +#endif + return true; + } + }; + +public: + + typedef test_object object; + + /** + * Creates and registers test group with specified name. + */ + test_group(const char* name) + : name_(name) + { + // register itself + runner.get().register_group(name_,this); + + // register all tests + tests_registerer::reg(*this); + } + + /** + * This constructor is used in self-test run only. + */ + test_group(const char* name, test_runner& another_runner) + : name_(name) + { + // register itself + another_runner.register_group(name_, this); + + // register all tests + tests_registerer, test_group, + MaxTestsInGroup>::reg(*this); + }; + + /** + * Registers test method under given number. + */ + void reg(int n, testmethod tm) + { + tests_[n] = tm; + } + + /** + * Reset test position before first test. + */ + void rewind() + { + current_test_ = tests_.begin(); + } + + /** + * Runs next test. + */ + test_result run_next() + { + if (current_test_ == tests_.end()) + { + throw no_more_tests(); + } + + // find next user-specialized test + safe_holder obj; + while (current_test_ != tests_.end()) + { + try + { + return run_test_(current_test_++, obj); + } + catch (const no_such_test&) + { + continue; + } + } + + throw no_more_tests(); + } + + /** + * Runs one test by position. + */ + test_result run_test(int n) + { + // beyond tests is special case to discover upper limit + if (tests_.rbegin() == tests_.rend()) + { + throw beyond_last_test(); + } + + if (tests_.rbegin()->first < n) + { + throw beyond_last_test(); + } + + // withing scope; check if given test exists + tests_iterator ti = tests_.find(n); + if (ti == tests_.end()) + { + throw no_such_test(); + } + + safe_holder obj; + return run_test_(ti, obj); + } + +private: + + /** + * VC allows only one exception handling type per function, + * so I have to split the method. + * + * TODO: refactoring needed! + */ + test_result run_test_(const tests_iterator& ti, safe_holder& obj) + { + std::string current_test_name; + try + { + if (run_test_seh_(ti->second,obj, current_test_name) == false) + { + throw seh("seh"); + } + } + catch (const no_such_test&) + { + throw; + } + catch (const warning& ex) + { + // test ok, but destructor failed + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_,ti->first, current_test_name, + test_result::warn, ex); + return tr; + } + catch (const failure& ex) + { + // test failed because of ensure() or similar method + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_,ti->first, current_test_name, + test_result::fail, ex); + return tr; + } + catch (const seh& ex) + { + // test failed with sigsegv, divide by zero, etc + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_, ti->first, current_test_name, + test_result::term, ex); + return tr; + } + catch (const bad_ctor& ex) + { + // test failed because test ctor failed; stop the whole group + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_, ti->first, current_test_name, + test_result::ex_ctor, ex); + return tr; + } + catch (const std::exception& ex) + { + // test failed with std::exception + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_, ti->first, current_test_name, + test_result::ex, ex); + return tr; + } + catch (...) + { + // test failed with unknown exception + if (obj.get()) + { + current_test_name = obj->get_test_name(); + } + test_result tr(name_, ti->first, current_test_name, + test_result::ex); + return tr; + } + + // test passed + test_result tr(name_,ti->first, current_test_name, test_result::ok); + return tr; + } + + /** + * Runs one under SEH if platform supports it. + */ + bool run_test_seh_(testmethod tm, safe_holder& obj, + std::string& current_test_name) + { +#if defined(TUT_USE_SEH) + __try + { +#endif + if (obj.get() == 0) + { + reset_holder_(obj); + } + + obj->called_method_was_a_dummy_test_ = false; + +#if defined(TUT_USE_SEH) + + __try + { +#endif + (obj.get()->*tm)(); +#if defined(TUT_USE_SEH) + } + __except(handle_seh_(::GetExceptionCode())) + { + // throw seh("SEH"); + current_test_name = obj->get_test_name(); + return false; + } +#endif + + if (obj->called_method_was_a_dummy_test_) + { + // do not call obj.release(); reuse object + throw no_such_test(); + } + + current_test_name = obj->get_test_name(); + obj.permit_throw(); + obj.release(); +#if defined(TUT_USE_SEH) + } + __except(handle_seh_(::GetExceptionCode())) + { + return false; + } +#endif + return true; + } + + void reset_holder_(safe_holder& obj) + { + try + { + obj.reset(); + } + catch (const std::exception& ex) + { + throw bad_ctor(ex.what()); + } + catch (...) + { + throw bad_ctor("test constructor has generated an exception;" + " group execution is terminated"); + } + } +}; + +#if defined(TUT_USE_SEH) +/** + * Decides should we execute handler or ignore SE. + */ +inline int handle_seh_(DWORD excode) +{ + switch(excode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_BREAKPOINT: + case EXCEPTION_SINGLE_STEP: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_FLT_DENORMAL_OPERAND: + case EXCEPTION_FLT_DIVIDE_BY_ZERO: + case EXCEPTION_FLT_INEXACT_RESULT: + case EXCEPTION_FLT_INVALID_OPERATION: + case EXCEPTION_FLT_OVERFLOW: + case EXCEPTION_FLT_STACK_CHECK: + case EXCEPTION_FLT_UNDERFLOW: + case EXCEPTION_INT_DIVIDE_BY_ZERO: + case EXCEPTION_INT_OVERFLOW: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_INVALID_DISPOSITION: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_INVALID_HANDLE: + return EXCEPTION_EXECUTE_HANDLER; + }; + + return EXCEPTION_CONTINUE_SEARCH; +} +#endif +} + +#endif + diff --git a/linked-list-and-binary-search-tree-c++/passoff/tut/tut_reporter.hpp b/linked-list-and-binary-search-tree-c++/passoff/tut/tut_reporter.hpp new file mode 100755 index 0000000..9c7f5d5 --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/tut/tut_reporter.hpp @@ -0,0 +1,226 @@ +#ifndef TUT_REPORTER +#define TUT_REPORTER + +#include "tut.hpp" + +/** + * Template Unit Tests Framework for C++. + * http://tut.dozen.ru + * + * @author Vladimir Dyuzhev, Vladimir.Dyuzhev@gmail.com + */ +namespace +{ + +std::ostream& operator<<(std::ostream& os, const tut::test_result& tr) +{ + switch(tr.result) + { + case tut::test_result::ok: + os << "\t" << tr.test << " " << tr.name << "...ok" << std::endl; + break; + case tut::test_result::fail: + os << "\t" << tr.test << " " << tr.name<< "...failed" << std::endl; + break; + case tut::test_result::ex_ctor: + os << "\t" << tr.test << " " << tr.name<< "...exception in setup" << std::endl; + break; + case tut::test_result::ex: + os << "\t" << tr.test << " " << tr.name<< "...exception" << std::endl; + break; + case tut::test_result::warn: + os << "\t" << tr.test << " " << tr.name<< "...warning" << std::endl; + break; + case tut::test_result::term: + os << "\t" << tr.test << " " << tr.name<< "...terminated" << std::endl; + break; + } + + return os; +} + +} // end of namespace + +namespace tut +{ + +/** + * Default TUT callback handler. + */ +class reporter : public tut::callback +{ + std::string current_group; + typedef std::vector not_passed_list; + not_passed_list not_passed; + std::ostream& os; + +public: + + int ok_count; + int exceptions_count; + int failures_count; + int terminations_count; + int warnings_count; + + reporter() + : os(std::cout) + { + init(); + } + + reporter(std::ostream& out) + : os(out) + { + init(); + } + + void run_started() + { + init(); + } + + void test_completed(const tut::test_result& tr) + { + if (tr.group != current_group) + { + os << std::endl << tr.group << ": " << std::endl; + current_group = tr.group; + } + + os << tr << std::flush; + if (tr.result == tut::test_result::ok) + { + ok_count++; + } + else if (tr.result == tut::test_result::ex) + { + exceptions_count++; + } + else if (tr.result == tut::test_result::ex_ctor) + { + exceptions_count++; + } + else if (tr.result == tut::test_result::fail) + { + failures_count++; + } + else if (tr.result == tut::test_result::warn) + { + warnings_count++; + } + else + { + terminations_count++; + } + + if (tr.result != tut::test_result::ok) + { + not_passed.push_back(tr); + } + } + + void run_completed() + { + os << std::endl; + + if (not_passed.size() > 0) + { + not_passed_list::const_iterator i = not_passed.begin(); + while (i != not_passed.end()) + { + tut::test_result tr = *i; + + os << std::endl; + + os << "---> " << "group: " << tr.group + << ", test: test<" << tr.test << ">" + << (!tr.name.empty() ? (std::string(" : ") + tr.name) : std::string()) + << std::endl; + + os << " problem: "; + switch(tr.result) + { + case test_result::fail: + os << "assertion failed" << std::endl; + break; + case test_result::ex: + case test_result::ex_ctor: + os << "unexpected exception" << std::endl; + if( tr.exception_typeid != "" ) + { + os << " exception typeid: " + << tr.exception_typeid << std::endl; + } + break; + case test_result::term: + os << "would be terminated" << std::endl; + break; + case test_result::warn: + os << "test passed, but cleanup code (destructor) raised" + " an exception" << std::endl; + break; + default: + break; + } + + if (!tr.message.empty()) + { + if (tr.result == test_result::fail) + { + os << " failed assertion: \"" << tr.message << "\"" + << std::endl; + } + else + { + os << " message: \"" << tr.message << "\"" + << std::endl; + } + } + + ++i; + } + } + + os << std::endl; + + os << "tests summary:" << std::endl; + if (terminations_count > 0) + { + os << " terminations:" << terminations_count << std::endl; + } + if (exceptions_count > 0) + { + os << " exceptions:" << exceptions_count << std::endl; + } + if (failures_count > 0) + { + os << " failures:" << failures_count << std::endl; + } + if (warnings_count > 0) + { + os << " warnings:" << warnings_count << std::endl; + } + os << " ok:" << ok_count << std::endl; + } + + bool all_ok() const + { + return not_passed.empty(); + } + +private: + + void init() + { + ok_count = 0; + exceptions_count = 0; + failures_count = 0; + terminations_count = 0; + warnings_count = 0; + not_passed.clear(); + } +}; + +} + +#endif diff --git a/linked-list-and-binary-search-tree-c++/passoff/tut/tut_restartable.hpp b/linked-list-and-binary-search-tree-c++/passoff/tut/tut_restartable.hpp new file mode 100755 index 0000000..b30bb1e --- /dev/null +++ b/linked-list-and-binary-search-tree-c++/passoff/tut/tut_restartable.hpp @@ -0,0 +1,394 @@ +#ifndef TUT_RESTARTABLE_H_GUARD +#define TUT_RESTARTABLE_H_GUARD + +#include "tut.hpp" +#include +#include +#include + +/** + * Template Unit Tests Framework for C++. + * http://tut.dozen.ru + * + * Optional restartable wrapper for test_runner. Allows to restart test runs + * finished due to abnormal test application termination (such as segmentation + * fault or math error). + * + * @author Vladimir Dyuzhev, Vladimir.Dyuzhev@gmail.com + */ + +namespace tut +{ + +namespace util +{ + +/** + * Escapes non-alphabetical characters in string. + */ +std::string escape(const std::string& orig) +{ + std::string rc; + std::string::const_iterator i,e; + i = orig.begin(); + e = orig.end(); + + while (i != e) + { + if ((*i >= 'a' && *i <= 'z') || + (*i >= 'A' && *i <= 'Z') || + (*i >= '0' && *i <= '9') ) + { + rc += *i; + } + else + { + rc += '\\'; + rc += ('a'+(((unsigned int)*i) >> 4)); + rc += ('a'+(((unsigned int)*i) & 0xF)); + } + + ++i; + } + return rc; +} + +/** + * Un-escapes string. + */ +std::string unescape(const std::string& orig) +{ + std::string rc; + std::string::const_iterator i,e; + i = orig.begin(); + e = orig.end(); + + while (i != e) + { + if (*i != '\\') + { + rc += *i; + } + else + { + ++i; + if (i == e) + { + throw std::invalid_argument("unexpected end of string"); + } + unsigned int c1 = *i; + ++i; + if (i == e) + { + throw std::invalid_argument("unexpected end of string"); + } + unsigned int c2 = *i; + rc += (((c1 - 'a') << 4) + (c2 - 'a')); + } + + ++i; + } + return rc; +} + +/** + * Serialize test_result avoiding interfering with operator <<. + */ +void serialize(std::ostream& os, const tut::test_result& tr) +{ + os << escape(tr.group) << std::endl; + os << tr.test << ' '; + switch(tr.result) + { + case test_result::ok: + os << 0; + break; + case test_result::fail: + os << 1; + break; + case test_result::ex: + os << 2; + break; + case test_result::warn: + os << 3; + break; + case test_result::term: + os << 4; + break; + default: + throw std::logic_error("operator << : bad result_type"); + } + os << ' ' << escape(tr.message) << std::endl; +} + +/** + * deserialization for test_result + */ +void deserialize(std::istream& is, tut::test_result& tr) +{ + std::getline(is,tr.group); + if (is.eof()) + { + throw tut::no_more_tests(); + } + tr.group = unescape(tr.group); + + tr.test = -1; + is >> tr.test; + if (tr.test < 0) + { + throw std::logic_error("operator >> : bad test number"); + } + + int n = -1; + is >> n; + switch(n) + { + case 0: + tr.result = test_result::ok; + break; + case 1: + tr.result = test_result::fail; + break; + case 2: + tr.result = test_result::ex; + break; + case 3: + tr.result = test_result::warn; + break; + case 4: + tr.result = test_result::term; + break; + default: + throw std::logic_error("operator >> : bad result_type"); + } + + is.ignore(1); // space + std::getline(is,tr.message); + tr.message = unescape(tr.message); + if (!is.good()) + { + throw std::logic_error("malformed test result"); + } +} +}; + +/** + * Restartable test runner wrapper. + */ +class restartable_wrapper +{ + test_runner& runner_; + callback* callback_; + + std::string dir_; + std::string log_; // log file: last test being executed + std::string jrn_; // journal file: results of all executed tests + +public: + /** + * Default constructor. + * @param dir Directory where to search/put log and journal files + */ + restartable_wrapper(const std::string& dir = ".") + : runner_(runner.get()), + callback_(0), + dir_(dir) + { + // dozen: it works, but it would be better to use system path separator + jrn_ = dir_ + '/' + "journal.tut"; + log_ = dir_ + '/' + "log.tut"; + } + + /** + * Stores another group for getting by name. + */ + void register_group(const std::string& name, group_base* gr) + { + runner_.register_group(name,gr); + } + + /** + * Stores callback object. + */ + void set_callback(callback* cb) + { + callback_ = cb; + } + + /** + * Returns callback object. + */ + callback& get_callback() const + { + return runner_.get_callback(); + } + + /** + * Returns list of known test groups. + */ + groupnames list_groups() const + { + return runner_.list_groups(); + } + + /** + * Runs all tests in all groups. + */ + void run_tests() const + { + // where last run was failed + std::string fail_group; + int fail_test; + read_log_(fail_group,fail_test); + bool fail_group_reached = (fail_group == ""); + + // iterate over groups + tut::groupnames gn = list_groups(); + tut::groupnames::const_iterator gni,gne; + gni = gn.begin(); + gne = gn.end(); + while (gni != gne) + { + // skip all groups before one that failed + if (!fail_group_reached) + { + if (*gni != fail_group) + { + ++gni; + continue; + } + fail_group_reached = true; + } + + // first or restarted run + int test = (*gni == fail_group && fail_test >= 0) ? fail_test + 1 : 1; + while(true) + { + // last executed test pos + register_execution_(*gni,test); + + try + { + tut::test_result tr = runner_.run_test(*gni,test); + register_test_(tr); + } + catch (const tut::beyond_last_test&) + { + break; + } + catch(const tut::no_such_test&) + { + // it's ok + } + + ++test; + } + + ++gni; + } + + // show final results to user + invoke_callback_(); + + // truncate files as mark of successful finish + truncate_(); + } + +private: + /** + * Shows results from journal file. + */ + void invoke_callback_() const + { + runner_.set_callback(callback_); + runner_.get_callback().run_started(); + + std::string current_group; + std::ifstream ijournal(jrn_.c_str()); + while (ijournal.good()) + { + // read next test result + try + { + tut::test_result tr; + util::deserialize(ijournal,tr); + runner_.get_callback().test_completed(tr); + } + catch (const no_more_tests&) + { + break; + } + } + + runner_.get_callback().run_completed(); + } + + /** + * Register test into journal. + */ + void register_test_(const test_result& tr) const + { + std::ofstream ojournal(jrn_.c_str(), std::ios::app); + util::serialize(ojournal, tr); + ojournal << std::flush; + if (!ojournal.good()) + { + throw std::runtime_error("unable to register test result in file " + + jrn_); + } + } + + /** + * Mark the fact test going to be executed + */ + void register_execution_(const std::string& grp, int test) const + { + // last executed test pos + std::ofstream olog(log_.c_str()); + olog << util::escape(grp) << std::endl << test << std::endl << std::flush; + if (!olog.good()) + { + throw std::runtime_error("unable to register execution in file " + + log_); + } + } + + /** + * Truncate tests. + */ + void truncate_() const + { + std::ofstream olog(log_.c_str()); + std::ofstream ojournal(jrn_.c_str()); + } + + /** + * Read log file + */ + void read_log_(std::string& fail_group, int& fail_test) const + { + // read failure point, if any + std::ifstream ilog(log_.c_str()); + std::getline(ilog,fail_group); + fail_group = util::unescape(fail_group); + ilog >> fail_test; + if (!ilog.good()) + { + fail_group = ""; + fail_test = -1; + truncate_(); + } + else + { + // test was terminated... + tut::test_result tr(fail_group, fail_test, "", tut::test_result::term); + register_test_(tr); + } + } +}; + +} + +#endif + diff --git a/linked-list-and-binary-search-tree-c++/test_runner b/linked-list-and-binary-search-tree-c++/test_runner new file mode 100755 index 0000000000000000000000000000000000000000..1e15487cbe19e1f2f021bbc0168557e357173ff4 GIT binary patch literal 1301356 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

xo}jt9agDwUV5K12$Ay} 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%0D(0I0Sq>>PD6SB|yr5 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%0A3SA*h2uOmdfs z5}{C(zSdhrX#m8>LHs09qT$I&xD-4O-MeAeSNPor_h}z_QS!20AB1UZ324z`shS}# zZN}U~Oxz3Mt+hhu`kbQLxTmgT_`L;vy>VZhR9QZ#cti=NnkIWvbd+eecvMLdg{UC) zf0!48l6!GqJQNp})!nhD(Pm5uNQBAJMIBNp5&6qEH+P${)d88EpOm_r(w6 z0wu+p^dHraXJJ$TBZ*%Zu(Ch);_nTDCLG{V35{GLngCpsE8tNXd5~#_-(<+O_vPp^ zk2ao@Q7{D=$xPh*A?Ck8TnqR=GLldzBiHLKGV(5nuZ8$YGLm^{GIAAqG0kDj<@oJE zI3Gf~L|X$}_*sOmz?b6Z%)k_a&!Nj0%}+-Z@Jj_Gy^dclh%G-kQQ1tn8`!J(%`!#( z@`&kyqevI@Rh)4$-6snN>Za>B*j)G>pY=QWYKHI zvt;gWcr?}zow$q8OMLQm+@Ejnk;Lb4*!L;uI>&Gk+L(RpBQHm(WQqLW$C!A76)ive z&r(S!R4Uu*ElTAch#!LZNlK-*m<+VwDTKo?Dq>~2AHtdHhcm6@Q)5~%DabE-JcihB z$8RoVRzb$3kY7p*_yG&z|HE$!IIsE~uXErO@bhFxfS-B{hJy3G&+)q{1(Weqt_b{G z{1UV926Oo^Z!UUNpC$`(X4tnM$F)+bz3G_TcJse<^doga9jt(%&y<~5(6n3~H zG`tR?Rtp_&VZj6U4Vz*z6Tj_H^fm5_pTk9K(yEK$h#jyZbd+d`w*oGrL>ox=#P0`a zI18-epR9(0stB|fkVo;WJR2nlsL3fc0HK)v-OG{s42x5e{Xo4BKX$byIT>$SgssN? z?U3()p2n{YwB1!o8ycq0Xqb?^-G9NX2sq!K$l;jqIw#}S6q8UWr}u;27IcPqt&=e? z#mw|G#9bJpQd1FrcSBp5&rh%)4~U1mAsK)_h~I1AwD374N1@wX8=_N?1`*QV#P1kH z2Kgd%p-`cJyrw(CpVI>~3Lt%mU(Gp~Y4eHRDAXxjUPQfs%y4%P0kw}K-NKFoaMu`KTBvkT zd80OpWx6pmx(7IAx{-k%3}RH21}6h4e;i|W1T-A?#pQ8f)YS4?IyP*3u$RI4w{6KXAP&NG4LEERLv^j(L+d80dcMp(j(Y<6e07G=$q8 zDl}R2d2y4B?Tw+xFZ9J2_(nvXVKBVf_&tFz$K$>@i3_4toUi|AW%xbdI$(6f?*LfK z0GK48%QPAM)@T90xI@w;{4#IFYyUpcd+=$M!H0KDcg)O@;no)RnbHN46Y;bCwy7zT znZ1lr0YA!H1gOIwNJuE3_?2fxD19d2o3T+}+f2~&L1+44zHDyPl*U1}bk4K){SX>n zQOcMf)t$PFM%(nfUC#qT&jsnpZ=ATR5u~Ok9oTZgE?Ajv597vbZ61RgTW~y97c4f^?BCf+$i18!BK k1^f+C7tY^Z=DsMx>vJu|y|6Y~52zvsKpGqW>u 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