Не могу написать написать тесты для функций выдает ошибку.
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
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Для вывода символа "ножницы" из Unicode запрашиваю их по коду вот так:
Читал что для java есть доп библиотеки, а вот для скрипта есть какие то инструменты? Или может запустить из приложения доп код на джаве написанный?