/// <summary> Method for testing this class. /// /// </summary> /// <param name="argv">should contain one element: the name of an ARFF file /// </param> //@ requires argv != null; //@ requires argv.length == 1; //@ requires argv[0] != null; public static void test(System.String[] argv) { Instances instances, secondInstances, train, test, empty; //Instance instance; //UPGRADE_TODO: The differences in the expected value of parameters for constructor 'java.util.Random.Random' may cause compilation errors. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1092'" System.Random random = new System.Random((System.Int32) 2); //UPGRADE_ISSUE: Class hierarchy differences between 'java.io.Reader' and 'System.IO.StreamReader' may cause compilation errors. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1186'" System.IO.StreamReader reader; int start, num; //double newWeight; FastVector testAtts, testVals; int i, j; try { if (argv.Length > 1) { throw (new System.Exception("Usage: Instances [<filename>]")); } // Creating set of instances from scratch testVals = new FastVector(2); testVals.addElement("first_value"); testVals.addElement("second_value"); testAtts = new FastVector(2); testAtts.addElement(new Attribute("nominal_attribute", testVals)); testAtts.addElement(new Attribute("numeric_attribute")); instances = new Instances("test_set", testAtts, 10); instances.add(new Instance(instances.numAttributes())); instances.add(new Instance(instances.numAttributes())); instances.add(new Instance(instances.numAttributes())); instances.ClassIndex = 0; System.Console.Out.WriteLine("\nSet of instances created from scratch:\n"); //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(instances); if (argv.Length == 1) { System.String filename = argv[0]; //UPGRADE_TODO: Constructor 'java.io.FileReader.FileReader' was converted to 'System.IO.StreamReader' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073'" reader = new System.IO.StreamReader(filename, System.Text.Encoding.Default); // Read first five instances and print them System.Console.Out.WriteLine("\nFirst five instances from file:\n"); instances = new Instances(reader, 1); instances.ClassIndex = instances.numAttributes() - 1; i = 0; while ((i < 5) && (instances.readInstance(reader))) { i++; } //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(instances); // Read all the instances in the file //UPGRADE_TODO: Constructor 'java.io.FileReader.FileReader' was converted to 'System.IO.StreamReader' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073'" reader = new System.IO.StreamReader(filename, System.Text.Encoding.Default); instances = new Instances(reader); // Make the last attribute be the class instances.ClassIndex = instances.numAttributes() - 1; // Print header and instances. System.Console.Out.WriteLine("\nDataset:\n"); //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(instances); System.Console.Out.WriteLine("\nClass index: " + instances.classIndex()); } // Test basic methods based on class index. System.Console.Out.WriteLine("\nClass name: " + instances.classAttribute().name()); System.Console.Out.WriteLine("\nClass index: " + instances.classIndex()); System.Console.Out.WriteLine("\nClass is nominal: " + instances.classAttribute().Nominal); System.Console.Out.WriteLine("\nClass is numeric: " + instances.classAttribute().Numeric); System.Console.Out.WriteLine("\nClasses:\n"); for (i = 0; i < instances.numClasses(); i++) { System.Console.Out.WriteLine(instances.classAttribute().value_Renamed(i)); } System.Console.Out.WriteLine("\nClass values and labels of instances:\n"); for (i = 0; i < instances.numInstances(); i++) { Instance inst = instances.instance(i); System.Console.Out.Write(inst.classValue() + "\t"); System.Console.Out.Write(inst.toString(inst.classIndex())); if (instances.instance(i).classIsMissing()) { System.Console.Out.WriteLine("\tis missing"); } else { System.Console.Out.WriteLine(); } } // Create random weights. System.Console.Out.WriteLine("\nCreating random weights for instances."); for (i = 0; i < instances.numInstances(); i++) { instances.instance(i).Weight = random.NextDouble(); } // Print all instances and their weights (and the sum of weights). System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(instances.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(instances.sumOfWeights()); // Insert an attribute secondInstances = new Instances(instances); Attribute testAtt = new Attribute("Inserted"); secondInstances.insertAttributeAt(testAtt, 0); System.Console.Out.WriteLine("\nSet with inserted attribute:\n"); //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(secondInstances); System.Console.Out.WriteLine("\nClass name: " + secondInstances.classAttribute().name()); // Delete the attribute secondInstances.deleteAttributeAt(0); System.Console.Out.WriteLine("\nSet with attribute deleted:\n"); //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(secondInstances); System.Console.Out.WriteLine("\nClass name: " + secondInstances.classAttribute().name()); // Test if headers are equal System.Console.Out.WriteLine("\nHeaders equal: " + instances.equalHeaders(secondInstances) + "\n"); // Print data in internal format. System.Console.Out.WriteLine("\nData (internal values):\n"); for (i = 0; i < instances.numInstances(); i++) { for (j = 0; j < instances.numAttributes(); j++) { if (instances.instance(i).isMissing(j)) { System.Console.Out.Write("? "); } else { System.Console.Out.Write(instances.instance(i).value_Renamed(j) + " "); } } System.Console.Out.WriteLine(); } // Just print header System.Console.Out.WriteLine("\nEmpty dataset:\n"); empty = new Instances(instances, 0); //UPGRADE_TODO: Method 'java.io.PrintStream.println' was converted to 'System.Console.Out.WriteLine' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioPrintStreamprintln_javalangObject'" System.Console.Out.WriteLine(empty); System.Console.Out.WriteLine("\nClass name: " + empty.classAttribute().name()); // Create copy and rename an attribute and a value (if possible) if (empty.classAttribute().Nominal) { Instances copy = new Instances(empty, 0); copy.renameAttribute(copy.classAttribute(), "new_name"); copy.renameAttributeValue(copy.classAttribute(), copy.classAttribute().value_Renamed(0), "new_val_name"); System.Console.Out.WriteLine("\nDataset with names changed:\n" + copy); System.Console.Out.WriteLine("\nOriginal dataset:\n" + empty); } // Create and prints subset of instances. start = instances.numInstances() / 4; num = instances.numInstances() / 2; System.Console.Out.Write("\nSubset of dataset: "); System.Console.Out.WriteLine(num + " instances from " + (start + 1) + ". instance"); secondInstances = new Instances(instances, start, num); System.Console.Out.WriteLine("\nClass name: " + secondInstances.classAttribute().name()); // Print all instances and their weights (and the sum of weights). System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(secondInstances.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(secondInstances.sumOfWeights()); // Create and print training and test sets for 3-fold // cross-validation. System.Console.Out.WriteLine("\nTrain and test folds for 3-fold CV:"); if (instances.classAttribute().Nominal) { instances.stratify(3); } for (j = 0; j < 3; j++) { //UPGRADE_TODO: The differences in the expected value of parameters for constructor 'java.util.Random.Random' may cause compilation errors. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1092'" train = instances.trainCV(3, j, new System.Random((System.Int32) 1)); test = instances.testCV(3, j); // Print all instances and their weights (and the sum of weights). System.Console.Out.WriteLine("\nTrain: "); System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(train.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(train.sumOfWeights()); System.Console.Out.WriteLine("\nClass name: " + train.classAttribute().name()); System.Console.Out.WriteLine("\nTest: "); System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(test.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(test.sumOfWeights()); System.Console.Out.WriteLine("\nClass name: " + test.classAttribute().name()); } // Randomize instances and print them. System.Console.Out.WriteLine("\nRandomized dataset:"); instances.randomize(random); // Print all instances and their weights (and the sum of weights). System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(instances.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(instances.sumOfWeights()); // Sort instances according to first attribute and // print them. System.Console.Out.Write("\nInstances sorted according to first attribute:\n "); instances.sort(0); // Print all instances and their weights (and the sum of weights). System.Console.Out.WriteLine("\nInstances and their weights:\n"); System.Console.Out.WriteLine(instances.instancesAndWeights()); System.Console.Out.Write("\nSum of weights: "); System.Console.Out.WriteLine(instances.sumOfWeights()); } catch (System.Exception) { //.WriteStackTrace(e, Console.Error); } }