diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-03-12 11:20:07 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-03-12 11:20:07 +0000 |
commit | 042870bbcea4c39e8fbf9f07990dc9d64c92bde1 (patch) | |
tree | 566bdd68dfc72f090a7d07118fbd45866d465f25 /src/test | |
parent | cc47a21b3c70a8f91ef945e6c127d4f2e3b007da (diff) | |
download | vhc-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/Makefile | 37 | ||||
-rw-r--r-- | src/test/Vector3DTest.cc | 61 |
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; +} |