1919
2020public class MekaFeatureSet extends FeatureSet implements IFeatureSet {
2121
22+ Instances trainInstances = null ;
23+ Instances testInstances = null ;
24+ Instances structure = null ;
25+
2226 public MekaFeatureSet (Dataset dataset , SwanOptions options ) {
2327 super (dataset , options , ModelEvaluator .Toolkit .MEKA );
2428 }
@@ -28,15 +32,19 @@ public MekaFeatureSet(Dataset dataset, SwanOptions options) {
2832 */
2933 public void createFeatures () {
3034
31- List <FeatureSet .Type > featureSets = initializeFeatures ();
32-
33- Instances trainInstances = null ;
34- Instances structure = null ;
35+ initializeFeatures ();
3536
3637 //Create and set attributes for the train instances
3738 if (options .getInstances ().isEmpty ()) {
3839 ArrayList <Attribute > trainAttributes = createAttributes (getCategories (options .getAllClasses ()), dataset .getTrainMethods (), featureSets );
39- trainInstances = createInstances (featureSets , trainAttributes , dataset .getTrainMethods (), getCategories (options .getAllClasses ()));
40+ structure = new Instances ("swan-srm" , trainAttributes , 0 );
41+ convertToMekaInstances (structure );
42+
43+ Set <Method > methods = new HashSet <>(dataset .getTrainMethods ());
44+ methods .addAll (dataset .getTestMethods ());
45+
46+ evaluateFeatureData (methods );
47+ trainInstances = createInstances (structure , trainAttributes , dataset .getTrainMethods (), getCategories (options .getAllClasses ()));
4048 } else {
4149 ArffLoader loader = new ArffLoader ();
4250
@@ -47,7 +55,17 @@ public void createFeatures() {
4755 } catch (IOException e ) {
4856 e .printStackTrace ();
4957 }
58+
59+ createAttributes (getCategories (options .getAllClasses ()), dataset .getTestMethods (), featureSets );
60+ evaluateFeatureData (dataset .getTestMethods ());
5061 }
62+ testInstances = createTestSet ();
63+
64+ this .instances .put ("train" , convertToMekaInstances (trainInstances ));
65+ this .instances .put ("test" , convertToMekaInstances (testInstances ));
66+ }
67+
68+ public Instances createTestSet () {
5169
5270 //Create and set attributes for the test instances.
5371 Attribute idAttr = new Attribute ("id" , dataset .getTestMethods ().stream ().map (Method ::getArffSafeSignature ).collect (Collectors .toList ()));
0 commit comments