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

Vladimir Sitnikov edited comment on CALCITE-2480 at 8/19/18 7:54 PM:
---------------------------------------------------------------------

[~julianhyde], 
please add toString to {{NameSet}} as well:
{code:java}
  @Override public String toString() {
    return names.toString();
  }
{code}

+ some more tests

{code:java}  @Test public void testNameSetContains1() {
    final NameSet names = new NameSet();
    names.add("COUNT");
    names.add("COVAR_POP");
    assertNsContains(names,"count", true, false);
    assertNsContains(names, "count", false, true);

    assertNsContains(names,"cOunt", true, false);
    assertNsContains(names, "cOunt", false, true);
  }

  @Test public void testNameSetContains2() {
    final NameSet names = new NameSet();
    names.add("count");
    names.add("COVAR_POP");
    assertNsContains(names,"COUNT", true, false);
    assertNsContains(names, "COUNT", false, true);

    assertNsContains(names,"CoUNT", true, false);
    assertNsContains(names, "CoUNT", false, true);
  }

  @Test public void testNameSetContains3() {
    final NameSet names = new NameSet();
    names.add("cOunt");
    names.add("COVAR_POP");
    assertNsContains(names,"count", true, false);
    assertNsContains(names, "count", false, true);

    assertNsContains(names,"COUNT", true, false);
    assertNsContains(names, "COUNT", false, true);

    assertNsContains(names,"cOunt", true, true);
    assertNsContains(names, "cOunt", false, true);
  }

  @Test public void testNameSetContains4() {
    List<String> tst = Arrays.asList("cOunt", "coUnt", "couNt");
    final NameSet names = new NameSet();
    for (String s : tst) {
      names.add(s);
    }
    names.add("COVAR_POP");

    for (String s : tst) {
      assertNsContains(names, s, true, true);
      assertNsContains(names, s, false, true);
    }

    List<String> caseInsensitive = Arrays.asList("count", "cOUnt", "cOuNt", 
"Count");

    for (String s : caseInsensitive) {
      assertNsContains(names, s, true, false);
      assertNsContains(names, s, false, true);
    }
  }

  private void assertNsContains(NameSet names, String item, boolean 
caseSensitive, boolean result) {
    assertEquals(
        names + ", contains(" + item + (caseSensitive ? ", caseSensitive" : "") 
+ ")",
        result, names.contains(item, caseSensitive));
  }
{code}


was (Author: vladimirsitnikov):
[~julianhyde], 
please add toString to {{NameSet}} as well:
{code:java}
  @Override public String toString() {
    return names.toString();
  }
{code}

+ some more tests

{code:java}  @Test public void testNameSetContains1() {
    final NameSet names = new NameSet();
    names.add("COUNT");
    names.add("COVAR_POP");
    assertNsContains(names,"count", true, false);
    assertNsContains(names, "count", false, true);

    assertNsContains(names,"cOunt", true, false);
    assertNsContains(names, "cOunt", false, true);
  }

  @Test public void testNameSetContains2() {
    final NameSet names = new NameSet();
    names.add("count");
    names.add("COVAR_POP");
    assertNsContains(names,"COUNT", true, false);
    assertNsContains(names, "COUNT", false, true);

    assertNsContains(names,"CoUNT", true, false);
    assertNsContains(names, "CoUNT", false, true);
  }

  @Test public void testNameSetContains3() {
    final NameSet names = new NameSet();
    names.add("cOunt");
    names.add("COVAR_POP");
    assertNsContains(names,"count", true, false);
    assertNsContains(names, "count", false, true);

    assertNsContains(names,"COUNT", true, false);
    assertNsContains(names, "COUNT", false, true);

    assertNsContains(names,"cOunt", true, true);
    assertNsContains(names, "cOunt", false, true);
  }

  @Test public void testNameSetContains4() {
    List<String> tst = Arrays.asList("cOunt", "coUnt", "couNt");
    final NameSet names = new NameSet();
    for (String s : tst) {
      names.add(s);
    }
    names.add("COVAR_POP");

    assertNsContains(names,"count", true, false);
    assertNsContains(names, "count", false, true);

    for (String s : tst) {
      assertNsContains(names, s, true, true);
      assertNsContains(names, s, false, true);
    }

    List<String> caseInsensitive = Arrays.asList("cOUnt", "cOuNt", "Count");

    for (String s : caseInsensitive) {
      assertNsContains(names, s, true, false);
      assertNsContains(names, s, false, true);
    }
  }

  private void assertNsContains(NameSet names, String item, boolean 
caseSensitive, boolean result) {
    assertEquals(
        names + ", contains(" + item + (caseSensitive ? ", caseSensitive" : "") 
+ ")",
        result, names.contains(item, caseSensitive));
  }
{code}

> calcite.util.NameSet does not work
> ----------------------------------
>
>                 Key: CALCITE-2480
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2480
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Vladimir Sitnikov
>            Assignee: Julian Hyde
>            Priority: Major
>
> {code:java}  @Test public void testNameSetContains() {
>     final NameSet names = new NameSet();
>     names.add("COUNT");
>     names.add("COVAR_POP");
>     assertThat(names.contains("count", true), is(false));
>     assertNsContains(names, "count", false, true);
>   }
>   private void assertNsContains(NameSet names, String item, boolean 
> caseSensitive, boolean result) {
>     assertEquals(names + ", contains(" + item + (caseSensitive ? ", 
> caseSensitive" : "")
>             + ")",
>         result, names.contains(item, caseSensitive));
>   }{code}
> Output
> {noformat}java.lang.AssertionError: [COUNT, COVAR_POP], contains(count) 
> Expected :true
> Actual   :false{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to