Исключения тестирования ND4J JUnit

Я написал простой класс и протестировал его вручную в main() и работает как положено:

import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.factory.Nd4j;

public class ND4J {
    public static void main(String[] args) {
        ND4J actualObject = new ND4J(Nd4j.zeros(2,2).add(4.0));
        INDArray testObject = Nd4j.create(new double[][]{{4.0,4.0}, {4.0,4.0}});
        if(testObject.equals(actualObject.getMatrix())){
            System.out.println("OK"); // prints “OK”
        }
    }
    private INDArray matrix;
    public ND4J (INDArray matrix){
        this.matrix = matrix;
    }
    public INDArray getMatrix(){
        return this.matrix;
    }
    public String toString(){
        return this.getMatrix().toString();
    }
}

Но попытка модульного тестирования этого класса с помощью JUnit 4 вызывает java.lang.AbstractMethodError:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.factory.Nd4j;
import static org.junit.Assert.*;
public class ND4JTest {
    @Test
    public void print() {
        ND4J actualObject = new ND4J(Nd4j.zeros(2,2).add(4.0));
        //above statement throws this error
        //java.lang.AbstractMethodError: org.nd4j.linalg.factory.Nd4jBackend.getConfigurationResource()Lorg/springframework/core/io/Resource;
        INDArray testObject = Nd4j.create(new double[][]{{4.0,4.0}, {4.0,4.0}});
        assertEquals(testObject, actualObject.getMatrix());
    }
}

На самом деле более сложные классы, использующие ND4J, которые хорошо работают из main(), сталкиваются с аналогичными проблемами при тестировании. Мой pom-файл имеет следующие зависимости ND4J: javacpp, nd4j-jblas, nd4j-native-platform, nd4j-native.

Спасибо

1 ответ

Вместо предварительных условий, упомянутых на начальной странице ND4J, я начал работать, следуя следующим инструкциям: https://github.com/deeplearning4j/dl4j-examples/blob/master/standalone-sample-project/pom.xml

Другие вопросы по тегам