1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package com.beust.jcommander;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class VariableArityTest {
public static class ModelGenerationConfig {
@Parameter(names = { "-m", "--matrixData" }, variableArity = true,
description = "File containing a list of instances and their runtimes on various configurations", required = false)
public List<String> modelMatrixFile = new LinkedList<String>();
@Parameter(names = { "-f", "--featureData" }, variableArity = true,
description = "File containing a list of instances and their corresponding features", required = true)
public List<String> featureFile = new LinkedList<String>();
@Parameter(names = { "-c", "--configData" }, variableArity = true,
description = "File containing a list of configuration parameter values")
public List<String> configFile = new LinkedList<String>();
@Parameter(names = { "-o", "--outputFile" },
description = "File to output the resulting data to. Defaults to ./matrix-generation.zip", required = false)
public String outputFile = "matrix-generation.zip";
@Parameter(names = { "--seed" }, description = "Seed used for PRNG [0 means don't use a Seed]")
public long seed = 0;
public void print() {
System.out.println("modelMatrixFile: " + modelMatrixFile);
System.out.println("featureData: " + featureFile);
System.out.println("configFile: " + configFile);
System.out.println("output: " + outputFile);
System.out.println("seed: " + seed);
}
}
@Test
public void verifyVariableArity() {
String input = "-m foo --seed 1024 -c foo -o foo -f foo ";
String[] split = input.split("\\s+");
ModelGenerationConfig config = new ModelGenerationConfig();
JCommander com = new JCommander(config);
com.setProgramName("modelgen");
com.parse(split);
// config.print();
Assert.assertNotEquals(config.seed, 0);
Assert.assertEquals(config.modelMatrixFile, Arrays.asList(new String[] { "foo" }));
Assert.assertEquals(config.featureFile, Arrays.asList(new String[] { "foo" }));
Assert.assertEquals(config.seed, 1024);
Assert.assertEquals(config.outputFile, "foo");
}
public static void main(String[] args) {
new VariableArityTest().verifyVariableArity();
}
}
|