diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/libnr/nr-translate-test.cpp | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/libnr/nr-translate-test.cpp')
| -rw-r--r-- | src/libnr/nr-translate-test.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/libnr/nr-translate-test.cpp b/src/libnr/nr-translate-test.cpp new file mode 100644 index 000000000..9e1ef1166 --- /dev/null +++ b/src/libnr/nr-translate-test.cpp @@ -0,0 +1,65 @@ +#include <utest/utest.h> +#include <libnr/nr-point-ops.h> +#include <libnr/nr-matrix.h> +#include <libnr/nr-matrix-fns.h> +#include <libnr/nr-matrix-ops.h> +#include <libnr/nr-point-matrix-ops.h> +#include <libnr/nr-translate.h> +#include <libnr/nr-translate-ops.h> +using NR::X; +using NR::Y; + + +int main(int argc, char *argv[]) +{ + utest_start("translate"); + + NR::Point const b(-2.0, 3.0); + NR::translate const tb(b); + NR::translate const tc(-3.0, -2.0); + UTEST_TEST("constructors, operator[]") { + UTEST_ASSERT( tc[X] == -3.0 && tc[Y] == -2.0 ); + UTEST_ASSERT( tb[0] == b[X] && tb[1] == b[Y] ); + } + + UTEST_TEST("operator=") { + NR::translate tb_eq(tc); + tb_eq = tb; + UTEST_ASSERT( tb == tb_eq ); + UTEST_ASSERT( tb_eq != tc ); + } + + NR::translate const tbc( tb * tc ); + UTEST_TEST("operator*(translate, translate)") { + UTEST_ASSERT( tbc.offset == NR::Point(-5.0, 1.0) ); + UTEST_ASSERT( tbc.offset == ( tc * tb ).offset ); + UTEST_ASSERT( NR::Matrix(tbc) == NR::Matrix(tb) * NR::Matrix(tc) ); + } + + UTEST_TEST("operator*(Point, translate)") { + UTEST_ASSERT( tbc.offset == b * tc ); + UTEST_ASSERT( b * tc == b * NR::Matrix(tc) ); + } + + NR::translate const t_id(0.0, 0.0); + NR::Matrix const m_id(NR::identity()); + UTEST_TEST("identity") { + UTEST_ASSERT( b * t_id == b ); + UTEST_ASSERT( NR::Matrix(t_id) == m_id ); + } + + return ( utest_end() + ? EXIT_SUCCESS + : EXIT_FAILURE ); +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : |
