summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/gcc5bug.cpp4
-rw-r--r--tests/precision.cpp8
-rw-r--r--tests/test.tex44
-rw-r--r--tests/whitespace.cpp1
4 files changed, 57 insertions, 0 deletions
diff --git a/tests/gcc5bug.cpp b/tests/gcc5bug.cpp
new file mode 100644
index 0000000..55efa3b
--- /dev/null
+++ b/tests/gcc5bug.cpp
@@ -0,0 +1,4 @@
+//https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68203
+struct A {
+ pair<int, int> values[1000000];
+}; \ No newline at end of file
diff --git a/tests/precision.cpp b/tests/precision.cpp
new file mode 100644
index 0000000..a1ab1f6
--- /dev/null
+++ b/tests/precision.cpp
@@ -0,0 +1,8 @@
+#include <cfloat>
+
+int main() {
+ cout << "Mode: " << FLT_EVAL_METHOD << endl;
+ double a = atof("1.2345678");
+ double b = a*a;
+ cout << b - 1.52415765279683990130 << '\n';
+} \ No newline at end of file
diff --git a/tests/test.tex b/tests/test.tex
new file mode 100644
index 0000000..95f1645
--- /dev/null
+++ b/tests/test.tex
@@ -0,0 +1,44 @@
+\section{Tests}
+Dieser Abschnitt enthält lediglich Dinge die während der Practicesession getestet werden sollten!
+
+\subsection{GCC}
+\begin{itemize}
+ \item sind c++14 Feature vorhanden?
+ \item sind c++17 Feature vorhanden?
+ \item kompiliert dieser Code:
+\end{itemize}
+\lstinputlisting{tests/gcc5bug.cpp}
+\begin{itemize}
+ \item funktioniert \code{\_\_int128}?
+ \item funktionieren Pragmas?
+ \item funktionieren \code{constexpr} zur Compilezeit (+Zeitlimit)?
+ \item wie groß ist \code{sizeof(char*)}?
+ \item wie groß ist \code{RAND\_MAX}?
+ \item funktioniert \code{random_device}? (und gib es unerschiedliche Ergebnisse?)
+ \item funktioniert \code{clock()}?
+\end{itemize}
+
+\subsection{Java}
+\begin{itemize}
+ \item startet eclipse?
+ \item funktionieren Java8 feature (lambdas)?
+\end{itemize}
+
+\subsection{Judge}
+\begin{itemize}
+ \item ist der Checker casesensitive?
+ \item wie werden zusätzliches Whitespacecharacter bei sonst korrektem Output behandelt?
+ \item vergleiche ausführungszeit auf dem judge und lokal (z.b. mit Primzahl Sieb)
+\end{itemize}
+\lstinputlisting{tests/whitespace.cpp}
+
+\subsection{Precision}
+\begin{itemize}
+ \item Mode $0$ means no excess precision
+ \item Mode $2$ means excess precision (all operations in $80$\,bit floats)
+\end{itemize}
+\begin{itemize}
+ \item Result $0$ without excess precision (expected floating point error)
+ \item \textasciitilde$8e^{-17}$ with excess precision (real value)
+\end{itemize}
+\lstinputlisting{tests/precision.cpp}
diff --git a/tests/whitespace.cpp b/tests/whitespace.cpp
new file mode 100644
index 0000000..71ad9a4
--- /dev/null
+++ b/tests/whitespace.cpp
@@ -0,0 +1 @@
+"\r\r\r\n\t \r\n\r" \ No newline at end of file