### Question:
SGDReasoner implements Reasoner { @Override public void close() { } SGDReasoner(); int getMaxIter(); void setMaxIter(int maxIter); @Override void optimize(TermStore baseTermStore); float computeObjective(VariableTermStore<SGDObjectiveTerm, RandomVariableAtom> termStore, float[] variableValues); @Override void close(); static final String CONFIG_PREFIX; static final String MAX_ITER_KEY; static final int MAX_ITER_DEFAULT; static final String OBJECTIVE_BREAK_KEY; static final boolean OBJECTIVE_BREAK_DEFAULT; static final String OBJ_TOL_KEY; static final float OBJ_TOL_DEFAULT; static final String LEARNING_RATE_KEY; static final float LEARNING_RATE_DEFAULT; static final String PRINT_OBJECTIVE; static final boolean PRINT_OBJECTIVE_DEFAULT; static final String PRINT_INITIAL_OBJECTIVE_KEY; static final boolean PRINT_INITIAL_OBJECTIVE_DEFAULT; }### Answer:
@Test public void baseTest() { Config.setProperty(InferenceApplication.REASONER_KEY, SGDReasoner.class.getName()); Config.setProperty(InferenceApplication.TERM_GENERATOR_KEY, SGDTermGenerator.class.getName()); Config.setProperty(InferenceApplication.TERM_STORE_KEY, SGDMemoryTermStore.class.getName()); TestModel.ModelInformation info = TestModel.getModel(); Set<StandardPredicate> toClose = new HashSet<StandardPredicate>(); Database inferDB = info.dataStore.getDatabase(info.targetPartition, toClose, info.observationPartition); MPEInference mpe = new MPEInference(info.model, inferDB); mpe.inference(); mpe.close(); inferDB.close(); }