CTEST написание тестов

378
11 мая 2017, 13:23

Не могу написать написать тесты для функций выдает ошибку.

deposit.cpp

#include <iostream>
using namespace std;
int vvod(int p)
{
    while (true)
    {
        cin >> p;
        if (cin.good())
        {
            cin.ignore(10, '\n');
            return p;
        }
        cin.clear();
        cout << "Неправильный ввод данных " << endl;
        cin.ignore(10, '\n');
    }
}
int checkout(int vklad, int time_vk)
{
    if (time_vk <= 0 || time_vk > 365 || vklad <= 0) return 1;
    return 0;
}
int raschet(int vklad, int time_vk)
{
    int vkladnew = vklad;
    int timevknew = time_vk;
    if ((timevknew <= 365) && (timevknew >= 241))
    {
        vkladnew = vkladnew +((vkladnew *12)/100)*timevknew / 365 / 100;
    }
    if ((timevknew <= 240) && (timevknew >= 121))
    {
        vkladnew = vkladnew + ((vkladnew *6)/100)*timevknew / 365 / 100;

    }
    if ((timevknew <= 120) && (timevknew >= 31))
    {
        vkladnew = vkladnew + ((vkladnew *2)/100)*timevknew / 365 / 100;

    }
    if ((timevknew <= 30) && (timevknew > 0))
    {
        vkladnew = vkladnew - ((vkladnew *10)/100)*timevknew / 365 / 100;

    }
    return vkladnew;
}

deposit.h

#pragma once
#ifndef DEPOSIT_H
#define DEPOSIT_H
//Запомни: меня зовут __DEPOSIT_H
int raschet(int,int);
int vvod(int p);
int checkout(int vklad, int time_vk);
#endif

main.cpp

// TRPO.cpp: îïðåäåëÿåò òî÷êó âõîäГ* äëÿ ГЄГ®Г*ñîëüГ*îãî ïðèëîæåГ*ГЁГї.
//

#include <iostream>
#include <clocale>
#include "deposit.h"

using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int vklad(0), time_vk(0);


        cout << "Введите сумму вклада " << endl;
        vklad=vvod(vklad);
        cout << "Введите время " << endl;
        time_vk=vvod(time_vk);
         if (checkout(vklad,time_vk)) return 0;
        cout << "Вклад:" << vklad << endl;
        cout << "Время:" << time_vk << endl;
        cout << "Доход:" << raschet(vklad, time_vk) << endl;

    return 0;
}

makefile

CC              = g++
CFLAGS          = -Wall -Werror
TESTING_FLAGS      = -I src -I thirdparty -Wall -Werror
EXECUTABLE      = bin/calc
SRC_BUILD_DIR   = build/src
SRC_DIR         = src/
TEST_EXEC       = bin/test
TEST_OBJ_DIR    = build/test
all: make_main compile_proga test
make_main: 
    mkdir -p bin build/src
compile_proga: $(SRC_BUILD_DIR)/main.o $(SRC_BUILD_DIR)/deposit.o
    $(CC) $(SRC_BUILD_DIR)/main.o $(SRC_BUILD_DIR)/deposit.o -o $(EXECUTABLE)
$(SRC_BUILD_DIR)/main.o: $(SRC_DIR)/main.cpp
    $(CC) $(CFLAGS) -c $(SRC_DIR)/main.cpp -o $(SRC_BUILD_DIR)/main.o
$(SRC_BUILD_DIR)/deposit.o: $(SRC_DIR)/deposit.cpp
    $(CC) $(CFLAGS) -c $(SRC_DIR)/deposit.cpp -o $(SRC_BUILD_DIR)/deposit.o

test: testlaunch test_compilation
testlaunch:
    mkdir -p bin build/test
test_compilation: $(TEST_OBJ_DIR)/main.o $(TEST_OBJ_DIR)/deposit_test.o $(TEST_OBJ_DIR)/validation_test.o $(SRC_BUILD_DIR)/deposit.o
    $(CC) $(TEST_OBJ_DIR)/main.o $(TEST_OBJ_DIR)/deposit_test.o $(TEST_OBJ_DIR)/validation_test.o $(SRC_BUILD_DIR)/deposit.o -o $(TEST_EXEC)
$(TEST_OBJ_DIR)/main.o: test/main.cpp
    $(CC) $(TESTING_FLAGS) -c test/main.cpp -o $(TEST_OBJ_DIR)/main.o
$(TEST_OBJ_DIR)/deposit_test.o: test/deposit_test.cpp
    $(CC) $(TESTING_FLAGS) -c test/deposit_test.cpp -o $(TEST_OBJ_DIR)/deposit_test.o
$(TEST_OBJ_DIR)/validation_test.o: test/validation_test.cpp
    $(CC) $(TESTING_FLAGS) -c test/validation_test.cpp -o $(TEST_OBJ_DIR)/validation_test.o
.c.o:
    $(CC) $(CFLAGS) $< -o $@
clean:
    rm -rf build/ bin/

Сами тесты! deposit_test.cpp

#include "deposit.h"
#include "ctest.h"
CTEST(P1, POK)
{
    const int one=200000;
    const int two=256;
    const int result = raschet(one, two);
    const int expected = 200168;
        ASSERT_EQUAL(expected, result);
}

validation_test.cpp

#include "deposit.h"
#include "ctest.h"

CTEST(InputValidation, BordersCheckPassedLeft)
{
    const int result = checkout(200000, 256);
    const int expected = 0;
    ASSERT_EQUAL(expected, result);
}

Репозиторий со всеми файлами на github.com https://github.com/Veltare/deposit-calc

READ ALSO
Символ &ldquo;ножницы&rdquo; из Unicde

Символ “ножницы” из Unicde

Для вывода символа "ножницы" из Unicode запрашиваю их по коду вот так:

248
Отдает undefined

Отдает undefined

consolelog(element) отдает результат undefined

269
Как быстро и просто сохранить текст в exel из браузерного приложения?

Как быстро и просто сохранить текст в exel из браузерного приложения?

Читал что для java есть доп библиотеки, а вот для скрипта есть какие то инструменты? Или может запустить из приложения доп код на джаве написанный?

342