У меня был тест с внутренним классом и возврат среднего значения, но я не могу заставить его работать правильно.Внутренний класс интерфейса
У меня есть класс с внутренним интерфейсом с двумя методами, и мне нужно протестировать его из другого класса, но ничего не похоже на работу.
Я пробовал много способов, но до сих пор не знаю, что не так?
Может кто-нибудь, пожалуйста, взгляните и попробуйте рассказать мне, что я делаю неправильно, или скажите, что мне нужно сделать, чтобы проверить класс BetterProgrammerTask?
Я добавлю класс с внутренним интерфейсом и классом тестирования, который пытается его использовать.
Программа тест:
public class BetterProgrammerTask {
// Please do not change this interface
public static interface Node {
int getValue();
List<Node> getChildren();
}
// Please do not change this interface
public static double getAverage(Node root) {
/*
Please implement this method to
return the average of all node values (Node.getValue()) in the tree.
*/
int suma = root.getValue() + suma(root.getChildren());
int count = 1 + count(root.getChildren());
return suma/count;
}
private static int suma(List<Node> nodes) {
if (nodes == null || nodes.isEmpty()) {
return 0;
}
int suma = 0;
for (Node n : nodes) {
suma += n.getValue() + suma(n.getChildren());
}
return suma;
}
private static int count(List<Node> nodes) {
if (nodes == null || nodes.isEmpty()) {
return 0;
}
int suma = 0;
for (Node n : nodes) {
suma += 1 + count(n.getChildren());
}
return suma;
}
}
класс с методом испытаний является:
import main.java.org.example.BetterProgrammerTask.Node;
public class TestBetterProgrammerTask implements BetterProgrammerTask.Node {
public static void main(String[] args) {
int sum = 0;
double sumDouble = 0;
System.out.println("EXAMPLE III");
// get NodeImpl
//
// getAverage does not accept my node definition ?????
//
sumDouble = getAverage(Node);
DecimalFormat four = new DecimalFormat("#0.00");
System.out.println("For this process the node average calculated is " + four.format(sumDouble));
}
//
// and average and getChildren are not filled yet and still did not
// due to errors in the getAverage
//
@Override
public int getValue() {
// TODO Auto-generated method stub
return 0;
}
@Override
public List<BetterProgrammerTask.Node> getChildren() {
// TODO Auto-generated method stub
return null;
}
}
Soory но забыл приветствовать кого-либо, кто интересуется этим вопросом. :-) – sam
Это на самом деле хорошая вещь. Мы пытаемся создать сайт проблем-> решений, поэтому «привет», «спасибо заранее» не нужно. Дополнительная информация на http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts – Pshemo
'sumDouble = getAverage (новый TestBetterProgrammerTask());' потому что 'Node' - это интерфейс и ему нужен экземпляр' Node'. – weston