Commit 2003f5f0 authored by Marco Bartolini's avatar Marco Bartolini
Browse files

still trying to recover a getTemplateForTest working state

parent a9211fa1
Loading
Loading
Loading
Loading
+0 −90
Original line number Diff line number Diff line
# CPP UNIT TESTING SETUP
#--------------
GTEST_HOME=/usr/local/include/gtest
GMOCK_HOME=/usr/local/include/gmock
GTEST_LIBS=gtest gtest_main

USER_INC=-I$(GTEST_HOME) -I$(GMOCK_HOME)
USER_LIBS=C++ pthread
# END OF CPP UNIT TESTING SETUP
#---------------------

# DEFINE YOUR CPP UNIT TEST EXECUTABLES HERE as:
#
# EXECTUABLES_L = unittest
# unittest_OBJECTS = unittest
# unittest_LIBS = $(GTEST_LIBS) <ComponentNameImpl>

EXECUTABLES_L = unittest
unittest_OBJECTS = unittest #MedMinorServoGeometry MedMinorServoTime PositionQueue
unittest_LIBS = $(GTEST_LIBS) MinorServoBossImpl IRALibrary boost_thread 

# END OF CUSTOMIZATION
# do not edit below this line
#----------------------------

CSOURCENAMES = \
	$(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \
	$(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \
	$(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS))

MAKEDIRTMP := $(shell searchFile include/acsMakefile)
ifneq ($(MAKEDIRTMP),\#error\#)
   MAKEDIR := $(MAKEDIRTMP)/include
   include $(MAKEDIR)/acsMakefile
endif

# TEST TARGETS
#TODO: unittest(2) discover pyunit

do_unit: all
	@echo "running cpp unit tests"
	../bin/unittest --gtest_output=xml:results/cppunittest.xml

do_pyunit:
	@echo "running python unit tests"
	python -m unittest pyunit

do_functional:
	@echo "running python functional tests"
	python -m unittest functional

do_external:
	@echo "running python external tests"
	python -m unittest external

clean_test:
	rm -f results/*.xml
	rm -f functional/*.pyc
	rm -f pyunit/*.pyc
	rm -f external/*.pyc

unit: do_unit
	@echo " . . . 'unit' done"

pyunit: do_pyunit
	@echo " . . . 'pyunit' done"

functional: do_functional
	@echo " . . . 'functional' done"

external: do_external
	@echo " . . . 'external' done"

# TARGETS
# -------
all:	do_all
	@echo " . . . 'all' done" 

clean : clean_all clean_test
	@echo " . . . clean done"

clean_dist : clean_all clean_dist_all clean_test
	@echo " . . . clean_dist done"

man   : do_man 
	@echo " . . . man page(s) done"

install : install_all
	@echo " . . . installation done"
+0 −0

Empty file deleted.

+0 −0

Empty file deleted.

+0 −0

Empty file deleted.

+0 −86
Original line number Diff line number Diff line
#include "gtest/gtest.h"
#include <IRA>
#include <DateTime.h>

#include "MedMinorServoProtocol.hpp"
#include "MedMinorServoGeometry.hpp"
#include "PositionQueue.hpp"
#include "MedMinorServoTime.hpp"
#include "testutils.hpp"

class TestPosition : public ::testing::Test
{
    public: 
        TestPosition();
        MedMinorServoPosition primary, offset, secondary;
};

TestPosition::TestPosition() : 
    primary(10, 10, 10, 10, 10, MED_MINOR_SERVO_PRIMARY, 10),
    offset(1,1,1,1,1,MED_MINOR_SERVO_OFFSET, 10),
    secondary(10, 10, 10, 10, 10, MED_MINOR_SERVO_SECONDARY, 10)
{}

TEST_F(TestPosition, creation){
    ASSERT_EQ(primary.x, 10);
    ASSERT_EQ(primary.y, 10);
    ASSERT_EQ(primary.z, 10);
    ASSERT_EQ(primary.theta_x, 10);
    ASSERT_EQ(primary.theta_y, 10);
    ASSERT_EQ(primary.mode, MED_MINOR_SERVO_PRIMARY);
    ASSERT_EQ(primary.time, 10);
}

TEST_F(TestPosition, copy)
{
    //test copy, also for simmetry and transitivity
    MedMinorServoPosition copied = primary;
    ASSERT_EQ(primary, copied);
    ASSERT_EQ(copied, primary);
    MedMinorServoPosition recopied(copied);
    ASSERT_EQ(primary, recopied);
}

TEST_F(TestPosition, sum)
{
    MedMinorServoPosition sum = primary + offset;
    ASSERT_EQ(sum.x, 11);
    ASSERT_EQ(sum.y, 11);
    ASSERT_EQ(sum.z, 11);
    ASSERT_EQ(sum.theta_x, 11);
    ASSERT_EQ(sum.theta_y, 11);
    ASSERT_EQ(sum.mode, MED_MINOR_SERVO_PRIMARY);
}

TEST_F(TestPosition, difference)
{
    MedMinorServoPosition diff = primary - offset;
    ASSERT_EQ(diff.x, 9);
    ASSERT_EQ(diff.y, 9);
    ASSERT_EQ(diff.z, 9);
    ASSERT_EQ(diff.theta_x, 9);
    ASSERT_EQ(diff.theta_y, 9);
    ASSERT_EQ(diff.mode, MED_MINOR_SERVO_PRIMARY);
}

TEST_F(TestPosition, scale)
{
    double scale = 3;
    MedMinorServoPosition scaled= primary * scale;
    ASSERT_EQ(scaled.x, 30);
    ASSERT_EQ(scaled.y, 30);
    ASSERT_EQ(scaled.z, 30);
    ASSERT_EQ(scaled.theta_x, 30);
    ASSERT_EQ(scaled.theta_y, 30);
    ASSERT_EQ(scaled.mode, MED_MINOR_SERVO_PRIMARY);
}

TEST_F(TestPosition, interpolation)
{
    MedMinorServoPosition primary2(20,20,20,20,20,MED_MINOR_SERVO_PRIMARY, 20);
    MedMinorServoPosition interpolated =
        MedMinorServoGeometry::interpolate(primary, primary2, 14);
    MedMinorServoPosition expected(14,14,14,14,14,MED_MINOR_SERVO_PRIMARY, 14);
    ASSERT_EQ(interpolated, expected);
}