Package com.google.visualization.datasource.datatable

Examples of com.google.visualization.datasource.datatable.DataTable


    assertStringArraysEqual(new String[]{"Mike", "Marketing", "13.0"},
        resultStrings[5]);
  }

  public void testSelectionOfScalarFunctionWithGrouping() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), dept, hour(min(lunchTime)) group by dept
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(new SimpleColumn("dept"));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new AggregationColumn(
            new SimpleColumn("lunchTime"), AggregationType.MIN)),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR)));
    q.setSelection(selection);

    // Add group.
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("dept"));
    q.setGroup(group);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(3, cols.size());
    assertEquals("sum-age", cols.get(0).getId());
    assertEquals("dept", cols.get(1).getId());
    assertEquals("hour_min-lunchTime", cols.get(2).getId());

    String[][] resultStrings = MockDataSource.queryResultToStringMatrix(result);
    assertEquals(3, resultStrings.length);

    assertStringArraysEqual(new String[]{"92.0", "Eng", "12.0"},
        resultStrings[0]);
    assertStringArraysEqual(new String[]{"24.0", "Marketing", "13.0"},
        resultStrings[1]);
    assertStringArraysEqual(new String[]{"57.0", "Sales", "12.0"},
        resultStrings[2]);

    // Test group-by column with scalar function in the selection:
    // select count(name), hour(lunchTime) group by lunchtime
    q = new Query();
    // Add selection
    QuerySelection selection1 = new QuerySelection();
    selection1.addColumn(new AggregationColumn(new SimpleColumn("name"),
        AggregationType.COUNT));
    selection1.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new SimpleColumn("lunchTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR)));
    q.setSelection(selection1);

    // Add group.
    QueryGroup group1 = new QueryGroup();
    group1.addColumn(new SimpleColumn("lunchTime"));
    q.setGroup(group1);

    q.validate();

    DataTable result1 = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols1 = result1.getColumnDescriptions();

    assertEquals(2, cols1.size());
    assertEquals("count-name", cols1.get(0).getId());
    assertEquals("hour_lunchTime", cols1.get(1).getId());
View Full Code Here


    assertStringArraysEqual(new String[]{"2.0", "13.0"},
        resultStrings1[1]);
  }

  public void testSelectionOfScalarFunctionWithPivoting() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), hour(min(lunchTime)) pivot dept
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new AggregationColumn(
            new SimpleColumn("lunchTime"), AggregationType.MIN)),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR)));
    q.setSelection(selection);

    // Add pivot.
    QueryPivot pivot = new QueryPivot();
    pivot.addColumn(new SimpleColumn("dept"));
    q.setPivot(pivot);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(6, cols.size());
    assertEquals("Eng sum-age", cols.get(0).getId());
    assertEquals("Marketing sum-age", cols.get(1).getId());
    assertEquals("Sales sum-age", cols.get(2).getId());
View Full Code Here

        "12.0"}, resultStrings[0]);
  }

  public void testSelectionOfScalarFunctionWithGroupingAndPivoting()
      throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), day(hireDate), hour(min(lunchTime)) group by hireDate
    // pivot dept
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY)));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new AggregationColumn(
            new SimpleColumn("lunchTime"), AggregationType.MIN)),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR)));
    q.setSelection(selection);

    //Add group.
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("hireDate"));
    q.setGroup(group);

    // Add pivot.
    QueryPivot pivot = new QueryPivot();
    pivot.addColumn(new SimpleColumn("dept"));
    q.setPivot(pivot);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(7, cols.size());
    assertEquals("Eng sum-age", cols.get(0).getId());
    assertEquals("Marketing sum-age", cols.get(1).getId());
    assertEquals("Sales sum-age", cols.get(2).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"57.0", "null", "null", "10.0", "12.0",
        "null", "null"}, resultStrings[3]);
  }

  public void testSelectionOfScalarFunctionWithEmptyTable() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), day(hireDate), hour(min(lunchTime)) where name="liron"
    // group by hireDate pivot dept
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY)));
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new AggregationColumn(
            new SimpleColumn("lunchTime"), AggregationType.MIN)),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR)));
    q.setSelection(selection);

    //Add filter.
    QueryFilter filter = new ColumnValueFilter(new SimpleColumn("name"),
        new TextValue("name"), ComparisonFilter.Operator.EQ);
    q.setFilter(filter);

    //Add group.
    QueryGroup group = new QueryGroup();
    group.addColumn(new SimpleColumn("hireDate"));
    q.setGroup(group);

    // Add pivot.
    QueryPivot pivot = new QueryPivot();
    pivot.addColumn(new SimpleColumn("dept"));
    q.setPivot(pivot);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);
    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(3, cols.size());
    String[][] resultStrings = MockDataSource.queryResultToStringMatrix(result);
    assertEquals(0, resultStrings.length);
  }
View Full Code Here

    String[][] resultStrings = MockDataSource.queryResultToStringMatrix(result);
    assertEquals(0, resultStrings.length);
  }

  public void testOrderByScalarFunction() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select day(hireDate), hireDate, age order by day(hireDate)
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY)));
    selection.addColumn(new SimpleColumn("hireDate"));
    selection.addColumn(new SimpleColumn("age"));
    q.setSelection(selection);

    // Add sort.
    QuerySort sort = new QuerySort();
    sort.addSort(new ScalarFunctionColumn(
        Lists.newArrayList((AbstractColumn) new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY)), SortOrder.ASCENDING);
    q.setSort(sort);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(3, cols.size());
    assertEquals("day_hireDate", cols.get(0).getId());
    assertEquals("hireDate", cols.get(1).getId());
    assertEquals("age", cols.get(2).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"10.0", "2005-01-10", "24.0"},
        resultStrings[5]);
  }

  public void testSelectionOfArithmeticExpression() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select day(hireDate) + age * hour(seniorityStartTime), age
    Query q = new Query();

    // Add selection.
    QuerySelection selection = new QuerySelection();
    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2 = new SimpleColumn("age");
    AbstractColumn col3  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col4 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col2, col3), Product.getInstance());
    AbstractColumn col5 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col4), Sum.getInstance());
    selection.addColumn(col5);
    selection.addColumn(new SimpleColumn("age"));
    q.setSelection(selection);
    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("sum_day_hireDate,product_age,hour_seniorityStartTime",
        cols.get(0).getId());
    assertEquals("age", cols.get(1).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"346.0", "24.0"},
        resultStrings[5]);
  }

  public void testGroupByArithmeticExpression() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select sum(age), day(hireDate) - hour(seniorityStartTime)
    // group by day(hireDate) - hour(seniorityStartTime)
    Query q = new Query();

    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col3 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col2),
        Difference.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new AggregationColumn(new SimpleColumn("age"),
        AggregationType.SUM));
    selection.addColumn(col3);
    q.setSelection(selection);

    // Add group
    QueryGroup group = new QueryGroup();
    group.addColumn(col3);
    q.setGroup(group);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols = result.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("sum-age", cols.get(0).getId());
    assertEquals("difference_day_hireDate,hour_seniorityStartTime",
        cols.get(1).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"32.0", "-2.0"},
        resultStrings[3]);
  }

  public void testFilterArithmeticExpression() throws Exception {
    DataTable res = MockDataSource.getData(3);

    // select day(hireDate), hour(seniorityStartTime) where
    // day(hireDate) - hour(seniorityStartTime) < -5
    // group by day(hireDate) - hour(seniorityStartTime)
    Query q = new Query();

    AbstractColumn col1  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("hireDate")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.DAY));
    AbstractColumn col2  = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(
            new SimpleColumn("seniorityStartTime")),
        TimeComponentExtractor.getInstance(
            TimeComponentExtractor.TimeComponent.HOUR));
    AbstractColumn col3 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(col1, col2),
        Difference.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(col1);
    selection.addColumn(col2);
    q.setSelection(selection);

    // Add Filter
    QueryFilter filter = new ColumnValueFilter(col3, new NumberValue(-5),
        ComparisonFilter.Operator.GT);
    q.setFilter(filter);

    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols =  result.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("day_hireDate", cols.get(0).getId());
    assertEquals("hour_seniorityStartTime", cols.get(1).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"10.0", "14.0"},
        resultStrings[1]);
  }

  public void testModuloInSelection() throws Exception {
    DataTable res = MockDataSource.getData(0);

    // selection with modulo ('weight' is a column id): "select weight, weight % 10"
    Query q = new Query();

    AbstractColumn col1 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(), new Constant(new NumberValue(10)));
    AbstractColumn col2 = new ScalarFunctionColumn(
        Lists.<AbstractColumn>newArrayList(new SimpleColumn("weight"), col1),
        Modulo.getInstance());

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("weight"));
    selection.addColumn(col2);
    q.setSelection(selection);
   
    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols =  result.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("weight", cols.get(0).getId());
    assertEquals("modulo_weight,10.0_", cols.get(1).getId());
View Full Code Here

    assertStringArraysEqual(new String[]{"222.0", "2.0"},
        resultStrings[6]);  
  }
 
  public void testModuloInFilter() throws Exception {
    DataTable res = MockDataSource.getData(0);

    // Create a query with filter clause using module:
    // select name, weight where weight%2=0.0
    Query q = new Query();

    // Add selection
    QuerySelection selection = new QuerySelection();
    selection.addColumn(new SimpleColumn("name"));
    selection.addColumn(new SimpleColumn("weight"));
    q.setSelection(selection);

    AbstractColumn col1 = new ScalarFunctionColumn(
      Lists.<AbstractColumn>newArrayList(), new Constant(new NumberValue(2)));
    AbstractColumn col2 = new ScalarFunctionColumn(
      Lists.<AbstractColumn>newArrayList(new SimpleColumn("weight"), col1),
      Modulo.getInstance());

    QueryFilter filter = new ColumnValueFilter(col2,
      new NumberValue(0), ComparisonFilter.Operator.EQ);
    q.setFilter(filter);
 
    q.validate();

    DataTable result = QueryEngine.executeQuery(q, res, ULocale.US);

    // Test column description
    List<ColumnDescription> cols =  result.getColumnDescriptions();

    assertEquals(2, cols.size());
    assertEquals("name", cols.get(0).getId());
    assertEquals("weight", cols.get(1).getId());
View Full Code Here

TOP

Related Classes of com.google.visualization.datasource.datatable.DataTable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.