Тесты для функции табулирования
import static java.lang.Math.*;
public class Main {
public static void main(String[] args) {
Main prog = new Main();
prog.run();
}
public double log2(double N) {
return (log(N) / log(2));
}
public double tabulation(double[] yValues, double[] xValues, double a, double x1, int x2, double step) {
double x = 0;
double y = 0;
int i = 0;
for (x = x1; x <= x2; x += step) {
if (x > 1.2) {
y = log2(x + 1);
yValuesArrayAdd(yValues, y, i);
xValuesArrayAdd(xValues, x, i);
i++;
}
if (x <= 1.2) {
//y = pow(sin(sqrt(a * x)), 2);
y = (sin(sqrt(a * x))) * (sin(sqrt(a * x)));
yValuesArrayAdd(yValues, y, i);
xValuesArrayAdd(xValues, x, i);
i++;
}
System.out.println(y);
}
return y;
}
public int calculateSteps(double x1, int x2, double step) {
return (int) ((x2 - x1) / step) + 1;
}
public double[] yValuesArrayCreate(double[] yValues, int n) {
return yValues = new double[n];
}
public double[] xValuesArrayCreate(double[] xValues, int n) {
return xValues = new double[n];
}
public void yValuesArrayAdd(double[] yValues, double y, int i) {
yValues[i] = y;
}
public void xValuesArrayAdd(double[] xValues, double x, int i) {
xValues[i] = x;
}
public void run() {
double a = 20.3;
double x1 = 0.5;
int x2 = 2;
double step = 0.005;
int n = calculateSteps(x1, x2, step);
double[] yValues = null;
double[] xValues = null;
yValues = yValuesArrayCreate(yValues, n);
xValues = xValuesArrayCreate(xValues, n);
tabulation(yValues, xValues, a, x1, x2, step);
Всем привет, нужно написать функцию табулирования функции. Вот я вроде бы написал, но прошу подсказок: какие тесты (JUnit 5) можно написать для данной функции? Также если увидите ошибки, скажите мне пожалуйста.
Ответы (1 шт):
Автор решения: Klioda
→ Ссылка
Пока не могу комментировать, так что ответом, извиняюсь. Но хотел сказать, что стоило бы создать метод, который возвращает результат этой функции для одного x, например:
double calculateFunction(double x, double a) {
if (x > 1.2) {
return log2(x + 1);
} else {
return (sin(sqrt(a * x))) * (sin(sqrt(a * x)));
}
}
Лучше, в том числе для тестирования, когда каждый метод отвечает за что-то одно.
