From 89d26d5d0e8ff2b026cc99606868699f6fcc08db Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Mon, 18 Nov 2024 23:40:21 +0300 Subject: added tempalte --- libprakpp/tests/compile_flags.txt | 2 ++ libprakpp/tests/test_data | 21 +++++++++++++ libprakpp/tests/test_include.cpp | 31 ++++++++++++++++++ libprakpp/tests/tests.cpp | 66 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 libprakpp/tests/compile_flags.txt create mode 100644 libprakpp/tests/test_data create mode 100644 libprakpp/tests/test_include.cpp create mode 100644 libprakpp/tests/tests.cpp (limited to 'libprakpp/tests') diff --git a/libprakpp/tests/compile_flags.txt b/libprakpp/tests/compile_flags.txt new file mode 100644 index 0000000..42a9c4d --- /dev/null +++ b/libprakpp/tests/compile_flags.txt @@ -0,0 +1,2 @@ +-std=c++2c +-I../include diff --git a/libprakpp/tests/test_data b/libprakpp/tests/test_data new file mode 100644 index 0000000..a68190d --- /dev/null +++ b/libprakpp/tests/test_data @@ -0,0 +1,21 @@ +index steel_n_up steel_n_down steel_n copper_n_up copper_n_down copper_n +0 69.8048106744458 69.8048106744458 ? 0 0 ? +1 59.538400172313104 59.538400172313104 ? 0 0 ? +2 49.77235665705151 49.77235665705151 ? 0 0 ? +3 39.003794962183754 39.003794962183754 ? 0 0 ? +4 29.41454165597367 29.41454165597367 ? 0 0 ? +5 19.85284784036345 19.85284784036345 ? 0 0 ? +6 9.621038299065232 9.621038299065232 ? 0 0 ? +7 -0.9475724262480807 -0.9475724262480807 ? 0 0 ? +8 -10.349127476774775 -10.349127476774775 ? 0 0 ? +9 -20.602089970343936 -20.602089970343936 ? 0 0 ? +10 -30.69633194493392 -30.69633194493392 ? 0 0 ? +11 -40.16111422807451 -40.16111422807451 ? 0 0 ? +12 -50.86998825863326 -50.86998825863326 ? 0 0 ? +13 -60.712258771120425 -60.712258771120425 ? 0 0 ? +14 -70.75473619559727 -70.75473619559727 ? 0 0 ? +15 -80.96959205323306 -80.96959205323306 ? 0 0 ? +16 -90.85022462488773 -90.85022462488773 ? 0 0 ? +17 -100.67744328024175 -100.67744328024175 ? 0 0 ? +18 -110.14378705377496 -110.14378705377496 ? 0 0 ? +19 -120.3377964523638 -120.3377964523638 ? 0 0 ? diff --git a/libprakpp/tests/test_include.cpp b/libprakpp/tests/test_include.cpp new file mode 100644 index 0000000..af61860 --- /dev/null +++ b/libprakpp/tests/test_include.cpp @@ -0,0 +1,31 @@ +#include "prakmath.hpp" +#include "prakmatrix.hpp" + +int main() { + using namespace prak; + matrix A(2, 1, {-1, 1}); + matrix B(1, 2, {1, -2}); + matrix C = A*B * (1.0/1.0); + std::cout << A << '\n' << B << '\n' << C << std::endl; + matrix D = C + matrix(2, 2, {-1, -2, -3, -4}); + std::getchar(); + D.feq_precision = 10; + matrix A_1 = D.inv().value(); + std::cout << A_1 << std::endl; + std::cout << A_1*D << D*A_1 << std::endl; + matrix E(2, 3, {1, 2, 3, 4, 5, 6}); + std::cout << E << '\n' << E.tr() << std::endl; + std::vector xs = {0, 1, 2, 3, 4, 5, 6, 7}; + std::vector ys = {1, 2.9, 5.2, 7.1, 9, 11.05, 12.7, 14}; + /* std::vector ss = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}; */ + std::vector ss = {0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}; + /* std::vector xs = {0, 1, 2}; */ + /* std::vector ys = {1, 2.9, 5.2}; */ + /* std::vector ss = {0.1, 0.2, 0.3}; */ + polynomial_regression(2, xs, ys, std::make_optional(ss)); + + matrix T1 (3, 3, {1, 2, 3, 0, 1, 2, 0, 0, 1}); + matrix T2 (3, 3, {4, 5, 6, 0, 4, 5, 0, 0, 6}); + std::cout << T1 << '\n' << T2 << '\n' << T1 * T1 << std::endl; + +} diff --git a/libprakpp/tests/tests.cpp b/libprakpp/tests/tests.cpp new file mode 100644 index 0000000..3dda25a --- /dev/null +++ b/libprakpp/tests/tests.cpp @@ -0,0 +1,66 @@ + +#include +#include + +#include "praktable.hpp" +#include "prakmath.hpp" + +double avg(const std::vector &v) { + return (v[0] + v[1]) / 2 ; +} + +int main_1(int argc, char *argv[]) { + prak::table t; + std::ifstream f("test_data"); + t.read(f); + t.column_width = 16; + std::cout << t; + t.apply(&avg, {"steel_n_up", "steel_n_down"}, "steel_n"); + t.apply(&avg, {"copper_n_up", "copper_n_down"}, "copper_n"); + std::cout << t; + std::cout << "a[\"copper_n\"][5] = " << t SUBSCR_OPN "copper_n", 0 SUBSCR_CLS << std::endl; + for (auto it = t.begin("steel_n"); it != t.end("steel_n"); ++it) { + std::cout << *it << ' '; + } + auto [a, b] = t.least_squares_linear("index", "steel_n"); + std::printf("\na = %lf %lf; b = %lf %lf\n", a.val, a.err, b.val, b.err); + + return 0; +} + +int main_2(int argc, char *argv[]) { + main_1(argc, argv); + return 0; + + prak::vector x = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + prak::vector y = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + prak::vector s = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + struct prak::pvalue val; + prak::least_squares_linear(x, y, s, val, val); + prak::printv(x); + prak::vmul(x.data(), x.data(), x.data(), (size_t)x.size()); + prak::printv(x); + return 0; +} + +int main_3(int argc, char *argv[]) { + volatile __m256 i = {10, 1, 10, 1, 10, 10, 11, 11}; + volatile __m256d j = {100, 200, -100, 400}; + printf("sum(i) = %f\n", prak::finalize(i)); + printf("sum(j) = %lf\n", prak::finalize(j)); + return 0; +} + +int main_4(int argc, char *argv[]) { + prak::vector xs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + prak::vector ys = {0, 2, 2, 8, 8, 10, 13, 15, 16, 18, 20}; + prak::vector ss = {1, 1, 4, 4, 1, 1, 2, 2, 1, 1, 1}; + prak::pvalue a, b; + prak::least_squares_linear(xs, ys, ss, a, b); + std::printf("a: {%lf, %lf}; b: {%lf, %lf}\n", a.val, a.err, b.val, b.err); + return 0; +} + +int main(int argc, char *argv[]) { + main_1(argc, argv); +} -- cgit v1.2.3-70-g09d2