You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/07/06 14:25:03 UTC

[jira] [Commented] (FLINK-6357) ParameterTool get unrequested parameters

    [ https://issues.apache.org/jira/browse/FLINK-6357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16076587#comment-16076587 ] 

ASF GitHub Bot commented on FLINK-6357:
---------------------------------------

Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4169#discussion_r125912602
  
    --- Diff: flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java ---
    @@ -154,4 +149,149 @@ public void testFromGenericOptionsParser() throws IOException {
     		ParameterTool parameter = ParameterTool.fromGenericOptionsParser(new String[]{"-D", "input=myInput", "-DexpectedCount=15"});
     		validate(parameter);
     	}
    +
    +	@Test
    +	public void testUnrequestedBoolean() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-boolean", "true"});
    +		Assert.assertEquals(Sets.newHashSet("boolean"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertTrue(parameter.getBoolean("boolean"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertTrue(parameter.getBoolean("boolean"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedByte() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-byte", "1"});
    +		Assert.assertEquals(Sets.newHashSet("byte"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(1, parameter.getByte("byte"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(1, parameter.getByte("byte"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedShort() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-short", "2"});
    +		Assert.assertEquals(Sets.newHashSet("short"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(2, parameter.getShort("short"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(2, parameter.getShort("short"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedInt() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-int", "4"});
    +		Assert.assertEquals(Sets.newHashSet("int"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(4, parameter.getByte("int"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(4, parameter.getByte("int"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedLong() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-long", "8"});
    +		Assert.assertEquals(Sets.newHashSet("long"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(8, parameter.getByte("long"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(8, parameter.getByte("long"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedFloat() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-float", "4"});
    +		Assert.assertEquals(Sets.newHashSet("float"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(4.0, parameter.getFloat("float"), 0.00001);
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(4.0, parameter.getFloat("float"), 0.00001);
    +	}
    +
    +	@Test
    +	public void testUnrequestedDouble() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-double", "8"});
    +		Assert.assertEquals(Sets.newHashSet("double"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals(8.0, parameter.getDouble("double"), 0.00001);
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals(8.0, parameter.getDouble("double"), 0.00001);
    +	}
    +
    +	@Test
    +	public void testUnrequestedString() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-string", "∞"});
    +		Assert.assertEquals(Sets.newHashSet("string"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals("∞", parameter.get("string"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals("∞", parameter.get("string"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedHas() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-boolean"});
    +		Assert.assertEquals(Sets.newHashSet("boolean"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertTrue(parameter.has("boolean"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertTrue(parameter.has("boolean"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedRequired() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{"-required", "∞"});
    +		Assert.assertEquals(Sets.newHashSet("required"), parameter.getUnrequestedParameters());
    +
    +		// test parameter access
    +		Assert.assertEquals("∞", parameter.getRequired("required"));
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		// test repeated access
    +		Assert.assertEquals("∞", parameter.getRequired("required"));
    +	}
    +
    +	@Test
    +	public void testUnrequestedUnknown() {
    +		ParameterTool parameter = ParameterTool.fromArgs(new String[]{});
    +		Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());
    +
    +		Assert.assertTrue(parameter.getBoolean("boolean", true));
    +		Assert.assertEquals(0, parameter.getByte("byte", (byte) 0));
    +		Assert.assertEquals(0, parameter.getShort("short", (short) 0));
    +		Assert.assertEquals(0, parameter.getInt("int", 0));
    +		Assert.assertEquals(0, parameter.getLong("long", 0));
    +		Assert.assertEquals(0, parameter.getFloat("float", 0), 0.00001);
    +		Assert.assertEquals(0, parameter.getDouble("double", 0), 0.00001);
    +		Assert.assertEquals("0", parameter.get("string", "0"));
    --- End diff --
    
    add `Assert.assertEquals(Collections.emptySet(), parameter.getUnrequestedParameters());` ?


> ParameterTool get unrequested parameters
> ----------------------------------------
>
>                 Key: FLINK-6357
>                 URL: https://issues.apache.org/jira/browse/FLINK-6357
>             Project: Flink
>          Issue Type: Improvement
>          Components: Java API
>    Affects Versions: 1.3.0
>            Reporter: Greg Hogan
>            Assignee: Greg Hogan
>            Priority: Minor
>
> The Gelly examples use {{ParameterTool}} to parse required and optional parameters. In the latter case we should detect if a user mistypes a parameter name. I would like to add a {{Set<String> getUnrequestedParameters()}} method returning parameter names not requested by {{has}} or any of the {{get}} methods.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)