### Question:
FeaturesConfigReader extends AbstractConfigReader { public FeatureDesc[] getFeatureDescs(){ return featureDescs; } FeaturesConfigReader(String fileName);  FeaturesConfigReader(SolrResourceLoader loader, String fileName); FeatureDesc[] getFeatureDescs(); FeatureDesc getFeatureDesc(String name); static FieldFeatureExtractorFactory loadFactory(FeaturesConfigReader.FeatureDesc featureDesc);  }### Answer:
@Test public void testLoader() throws Exception { FeaturesConfigReader fcReader = new FeaturesConfigReader(loader, "ltr_features.conf"); FeaturesConfigReader.FeatureDesc[] featureDescs = fcReader.getFeatureDescs(); assertEquals(featureDescs.length, 4); assertEquals("name=TF in title,class=org.ltr4l.lucene.solr.server.FieldFeatureTFExtractorFactory,params=title", featureDescs[0].toString()); assertEquals("name=TF in body,class=org.ltr4l.lucene.solr.server.FieldFeatureTFExtractorFactory,params=body", featureDescs[1].toString()); assertEquals("name=IDF in title,class=org.ltr4l.lucene.solr.server.FieldFeatureIDFExtractorFactory,params=title", featureDescs[2].toString()); assertEquals("name=IDF in body,class=org.ltr4l.lucene.solr.server.FieldFeatureIDFExtractorFactory,params=body", featureDescs[3].toString()); }