summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-03-12 11:20:07 +0000
committerJakob Odersky <jodersky@gmail.com>2011-03-12 11:20:07 +0000
commit042870bbcea4c39e8fbf9f07990dc9d64c92bde1 (patch)
tree566bdd68dfc72f090a7d07118fbd45866d465f25 /src/test
parentcc47a21b3c70a8f91ef945e6c127d4f2e3b007da (diff)
downloadvhc-042870bbcea4c39e8fbf9f07990dc9d64c92bde1.tar.gz
vhc-042870bbcea4c39e8fbf9f07990dc9d64c92bde1.tar.bz2
vhc-042870bbcea4c39e8fbf9f07990dc9d64c92bde1.zip
Reorganisation du repertoire source. Les sources principaux sont dans `src/main' et les tests dans `src/test'.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/Makefile37
-rw-r--r--src/test/Vector3DTest.cc61
2 files changed, 98 insertions, 0 deletions
diff --git a/src/test/Makefile b/src/test/Makefile
new file mode 100644
index 0000000..e8a9340
--- /dev/null
+++ b/src/test/Makefile
@@ -0,0 +1,37 @@
+#########################################################################
+# Makefile recursif #
+#=======================================================================#
+# Les variables suivantes sont definis dans un makefile plus haut. #
+# BASEDIR repertoire de base du projet #
+# SRCDIR repertoire contenant le code source #
+# BINDIR repertoire ou sont places toutes objets compiles #
+#=======================================================================#
+# ==> indique des champs modifiables aisement #
+#=======================================================================#
+# Comme tous les tests dependent du projet principal, les references au #
+# dossier `main' sont autorisees. #
+#########################################################################
+
+# Nom du repertoire contenant ce makefile
+LOCALDIR = test
+
+# ==> Rajouter ici les tests a compiler, i.e. les noms des fichiers tests _sans_ extension
+# Si un objet X necessite une compilation non-standard (i.e. pas de regle du style X: X.cc X.h), rajouter cet objet
+# en fin de BINS ne suffit pas. Il faut de plus creer une nouvelle regle.
+BINS = Vector3DTest
+
+# Inclure les headers de main (source principale)
+CXXFLAGS += -I $(SRCDIR)/main/
+
+all: checkdirs $(BINS)
+
+# Verifie l'existance du repertoire de sortie
+checkdirs: $(BINDIR)/$(LOCALDIR)
+
+# Cree le repertoire de sortie
+$(BINDIR)/$(LOCALDIR):
+ @mkdir -p $@
+
+# Regle implicite pour les fichiers sans extension (i.e. pour les executables)
+%: %.cc
+ $(CXX) $(CXXFLAGS) $< -static -L$(BINDIR)/main -lvhc -o $(BINDIR)/$(LOCALDIR)/$@
diff --git a/src/test/Vector3DTest.cc b/src/test/Vector3DTest.cc
new file mode 100644
index 0000000..bf4203a
--- /dev/null
+++ b/src/test/Vector3DTest.cc
@@ -0,0 +1,61 @@
+/*
+ * Vector3DTest.cc
+ *
+ * Created on: Mar 1, 2011
+ * Author: Jakob Odersky
+ */
+
+
+#include <iostream>
+#include <assert.h>
+#include <iomanip>
+#include <limits>
+//TODO change relative include
+#include "Vector3D.h"
+
+using namespace std;
+using namespace vhc;
+
+
+bool printTest();
+
+int main() {
+ //equality test
+ assert(Vector3D(1, 2, 3) == Vector3D(1, 2, 3));
+ assert(Vector3D(1, 2.4, 3) != Vector3D(1, 2, 3));
+
+ //addition test
+ assert(Vector3D(1, -0.9, 57683) + Vector3D(-1, 0.9, -57683) == Vector3D::Null);
+
+ //addition, mutliplication test
+ assert(Vector3D(4, 0, 16) / 4 == -Vector3D(0.25, 0, 1) * -4);
+
+ //length test
+ assert(Vector3D(0,3,4).getNorm() == 5);
+
+ bool caught = false;
+ try {
+ ~Vector3D::Null;
+ } catch (domain_error& ex) {
+ caught = true;
+ };
+ assert(caught == true);
+
+ cout << "Vector3D: tests completed successfully" << endl;
+
+ return 0;
+}
+
+bool printTest() {
+ cout << "PRINT TEST" << endl;
+ cout << Vector3D(1,2,3) << endl;
+ char answer;
+ do {
+ cout << "Was 'Vector3D(1,2,3)' displayed? (y/n)" << endl;
+ cin >> answer;
+ } while (answer != 'y' && answer != 'n');
+ cout << "END PRINT TEST" << endl;
+
+ if (answer == 'y') return true;
+ else return false;
+}