summaryrefslogtreecommitdiff
path: root/test-chill/unit-tests/cprog
diff options
context:
space:
mode:
authorDerick Huth <derickhuth@gmail.com>2015-09-24 12:22:41 -0600
committerDerick Huth <derickhuth@gmail.com>2015-09-24 12:22:41 -0600
commit4631ad76927d433da5d55c3c373a1dfd0f74c9d4 (patch)
treef8dcba88576ec95e403f0c14efd80e970f30a260 /test-chill/unit-tests/cprog
parent6eb2b89896da66a77d0dcdf2d72b98c122826949 (diff)
parent0cff3f9a3c4ccd434900162ebef4bd814850f481 (diff)
downloadchill-4631ad76927d433da5d55c3c373a1dfd0f74c9d4.tar.gz
chill-4631ad76927d433da5d55c3c373a1dfd0f74c9d4.tar.bz2
chill-4631ad76927d433da5d55c3c373a1dfd0f74c9d4.zip
Merge pull request #7 from dhuth/master
V0.2.1
Diffstat (limited to 'test-chill/unit-tests/cprog')
-rw-r--r--test-chill/unit-tests/cprog/Makefile17
-rw-r--r--test-chill/unit-tests/cprog/MergeSorter.cc77
-rw-r--r--test-chill/unit-tests/cprog/MergeSorter.h14
-rw-r--r--test-chill/unit-tests/cprog/QuickSorter.cc83
-rw-r--r--test-chill/unit-tests/cprog/QuickSorter.h14
-rw-r--r--test-chill/unit-tests/cprog/Sorter.cc8
-rw-r--r--test-chill/unit-tests/cprog/Sorter.h16
-rw-r--r--test-chill/unit-tests/cprog/main.cc45
8 files changed, 0 insertions, 274 deletions
diff --git a/test-chill/unit-tests/cprog/Makefile b/test-chill/unit-tests/cprog/Makefile
deleted file mode 100644
index f5f2608..0000000
--- a/test-chill/unit-tests/cprog/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-OBJS = $(patsubst %.cc, %.o, $(wildcard *.cc))
-
-.PHONY: all
-all: sorter
-
-$(OBJS): %.o: %.cc
- g++ -g -fprofile-arcs -ftest-coverage -c $< -o $@
-
-.PHONY: sorter
-sorter: $(OBJS)
- g++ -g -fprofile-arcs -ftest-coverage -o bin/sorter $(OBJS)
-
-.PHONY: clean
-clean:
- rm -f *.o
- rm -f *.gcno *.gcda *.gcov
- rm -f bin/sorter
diff --git a/test-chill/unit-tests/cprog/MergeSorter.cc b/test-chill/unit-tests/cprog/MergeSorter.cc
deleted file mode 100644
index 6e747a3..0000000
--- a/test-chill/unit-tests/cprog/MergeSorter.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "MergeSorter.h"
-
-/* Python
-def msort(lst, start, end, pindent = 0):
- if start == end:
- return
- center = start + ((end - start) // 2)
- print(' '*pindent + "SPLIT {}|{}".format(lst[start:center+1], lst[center+1:end+1]))
- msort(lst, start, center, pindent+1)
- msort(lst, center+1, end, pindent+1)
- left = list(lst[start:center+1])
- right = list(lst[center+1:end+1])
- print(' '*pindent + "MERGE {}|{}".format(lst[start:center+1], lst[center+1:end+1]))
- i,j = 0, 0
- for k in range(start, end+1):
- if i >= len(left):
- lst[k] = right[j]
- j += 1
- print(' '*(pindent+1) + 'pull j: {} {} {}'.format(lst[start:k+1], left[i:], right[j:]))
- elif j >= len(right):
- lst[k] = left[i]
- i += 1
- print(' '*(pindent+1) + 'pull i: {} {} {}'.format(lst[start:k+1], left[i:], right[j:]))
- elif left[i] > right[j]:
- lst[k] = right[j]
- j += 1
- print(' '*(pindent+1) + 'pull j: {} {} {}'.format(lst[start:k+1], left[i:], right[j:]))
- else:
- lst[k] = left[i]
- i += 1
- print(' '*(pindent+1) + 'pull i: {} {} {}'.format(lst[start:k+1], left[i:], right[j:]))
- print(' '*pindent + "-- {}".format(lst[start:end+1]))
-
-
-if __name__ == '__main__':
- import random as r
- x = [int(r.random()*12) for i in range(7)]
- print(x)
- msort(x, 0, len(x)-1)
- print(x)
-*/
-
-static void mergesort(std::vector<int>& lst, int start, int end) {
- if(start == end) return;
- int center = start + (end-start)/2;
- mergesort(lst, start, center);
- mergesort(lst, center+1, end);
- std::vector<int> left = std::vector<int>(lst.begin()+start, lst.begin()+(center+1));
- std::vector<int> right = std::vector<int>(lst.begin()+(center+1),lst.begin()+(end+1));
- int i = 0;
- int j = 0;
- for(int k = start; k < (end+1); k++) {
- if (i >= left.size()) {
- lst[k] = right[j++];
- }
- else if(j >= right.size()) {
- lst[k] = left[i++];
- }
- else if(left[i] > right[j]) {
- lst[k] = right[j++];
- }
- else {
- lst[k] = left[i++];
- }
- }
-}
-
-MergeSorter::MergeSorter() {
- this->name = std::string("mergesort");
-}
-
-MergeSorter::~MergeSorter() {
-}
-
-void MergeSorter::sort(std::vector<int>& list) const {
- mergesort(list, 0, list.size()-1);
-}
diff --git a/test-chill/unit-tests/cprog/MergeSorter.h b/test-chill/unit-tests/cprog/MergeSorter.h
deleted file mode 100644
index e2ed391..0000000
--- a/test-chill/unit-tests/cprog/MergeSorter.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef MERGE_SORTER_H
-#define MERGE_SORTER_H
-
-#include <vector>
-#include "Sorter.h"
-
-class MergeSorter : public Sorter {
-public:
- MergeSorter();
- virtual ~MergeSorter();
- virtual void sort(std::vector<int>& list) const;
-};
-
-#endif
diff --git a/test-chill/unit-tests/cprog/QuickSorter.cc b/test-chill/unit-tests/cprog/QuickSorter.cc
deleted file mode 100644
index 3ade346..0000000
--- a/test-chill/unit-tests/cprog/QuickSorter.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-#include "QuickSorter.h"
-
-/* Python
-
-def swap(l, i, k):
- v = l[i]
- l[i] = l[k]
- l[k] = v
- print(str(l))
-
-def partition(l, start, end):
- print("PARTITION {} [{}:{}]".format(l, start, end))
- p_value = l[end]
- p_index = end-1
-
- for i in range(start, end):
- while(i < p_index and l[i] >= p_value):
- swap(l, i, p_index)
- p_index -= 1
- while(i >= p_index and l[i] < p_value):
- swap(l, i, p_index)
- p_index += 1
- swap(l, p_index, end)
- print("DONE {}|[{}]|{}:{}".format(l[start:p_index], l[p_index], l[p_index+1:end+1], p_value))
- return p_index
-
-def qsort(l, i, k):
- if i < k:
- p = partition(l, i, k)
- qsort(l,i,p-1)
- qsort(l,p+1,k)
-
-if __name__ == "__main__":
- import random as r
- x = [int(r.random()*12) for i in range(12)]
- print(x)
- qsort(x, 0, len(x)-1)
- print(x)
-
-*/
-
-static void swap(std::vector<int>& list, int i, int k) {
- int v = list[i];
- list[i] = list[k];
- list[k] = v;
-}
-
-static int partition(std::vector<int>& list, int i, int k) {
- int pivot_value = list[k];
- int pivot_index = k - 1;
-
- for(int index = i; index < k; index++) {
- while((index < pivot_index) && (list[index] >= pivot_value)) {
- swap(list, index, pivot_index);
- pivot_index--;
- }
- while((index >= pivot_index) && (list[index] < pivot_value)) {
- swap(list, index, pivot_index);
- pivot_index++;
- }
- }
- swap(list, pivot_index, k);
- return pivot_index;
-}
-
-static void quicksort(std::vector<int>& list, int i, int k) {
- if(i < k) {
- int p = partition(list, i, k);
- quicksort(list, i, p-1);
- quicksort(list, p+1, k);
- }
-}
-
-QuickSorter::QuickSorter() {
- this->name = std::string("quicksort");
-}
-
-QuickSorter::~QuickSorter() {
-}
-
-void QuickSorter::sort(std::vector<int>& list) const {
- quicksort(list, 0, list.size()-1);
-}
diff --git a/test-chill/unit-tests/cprog/QuickSorter.h b/test-chill/unit-tests/cprog/QuickSorter.h
deleted file mode 100644
index 81919dd..0000000
--- a/test-chill/unit-tests/cprog/QuickSorter.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef QUICK_SORTER_H
-#define QUICK_SORTER_H
-
-#include <vector>
-#include "Sorter.h"
-
-class QuickSorter : public Sorter {
-public:
- QuickSorter();
- virtual ~QuickSorter();
- virtual void sort(std::vector<int>& list) const;
-};
-
-#endif
diff --git a/test-chill/unit-tests/cprog/Sorter.cc b/test-chill/unit-tests/cprog/Sorter.cc
deleted file mode 100644
index a1ae5ec..0000000
--- a/test-chill/unit-tests/cprog/Sorter.cc
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "Sorter.h"
-
-Sorter::Sorter() {
-}
-
-Sorter::~Sorter() {
-}
-
diff --git a/test-chill/unit-tests/cprog/Sorter.h b/test-chill/unit-tests/cprog/Sorter.h
deleted file mode 100644
index abf8f82..0000000
--- a/test-chill/unit-tests/cprog/Sorter.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef SORTER_H
-#define SORTER_H
-
-#include <string>
-#include <vector>
-
-class Sorter {
-public:
- Sorter();
- virtual ~Sorter();
-
- std::string name;
- virtual void sort(std::vector<int>& list) const = 0;
-};
-
-#endif
diff --git a/test-chill/unit-tests/cprog/main.cc b/test-chill/unit-tests/cprog/main.cc
deleted file mode 100644
index 3fe960b..0000000
--- a/test-chill/unit-tests/cprog/main.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <cstdio>
-#include <cstdlib>
-#include <map>
-#include <string>
-#include <vector>
-
-#include "Sorter.h"
-#include "QuickSorter.h"
-#include "MergeSorter.h"
-//#include "InsertionSorter.h"
-//#include "ShellSorter.h"
-
-void read_vector(std::vector<int>& vec, int start, int stop, char** argv) {
- for(int i = start; i < stop; i++) {
- vec.push_back((int)strtol(argv[i],NULL,0));
- }
-}
-
-void print_vector(std::vector<int>& vec) {
- printf("[");
- for(std::vector<int>::iterator iter = vec.begin(); iter != vec.end(); iter++) {
- printf(" %d ", *iter);
- }
- printf("]\n");
-}
-
-void addsorter(std::map<std::string, Sorter*>& m, Sorter* s) {
- m[s->name] = s;
-}
-
-int main(int argc, char** argv) {
- std::map<std::string, Sorter*> sorter_map;
- std::vector<int> vec;
-
- read_vector(vec, 2, argc, argv);
- print_vector(vec);
-
- addsorter(sorter_map, new QuickSorter());
- addsorter(sorter_map, new MergeSorter());
- //addsorter(sorter_map, new InsertionSorter());
- //addsorter(sorter_map, new ShellSorter());
- sorter_map[std::string(argv[1])]->sort(vec);
- print_vector(vec);
-}
-