aboutsummaryrefslogtreecommitdiff
path: root/ui/src/common/query_iterator_unittest.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/common/query_iterator_unittest.ts')
-rw-r--r--ui/src/common/query_iterator_unittest.ts235
1 files changed, 0 insertions, 235 deletions
diff --git a/ui/src/common/query_iterator_unittest.ts b/ui/src/common/query_iterator_unittest.ts
deleted file mode 100644
index 402a2e99d..000000000
--- a/ui/src/common/query_iterator_unittest.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright (C) 2020 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-import {RawQueryResult} from './protos';
-import {
- findColumnIndex,
- iter,
- NUM,
- NUM_NULL,
- slowlyCountRows,
- STR,
- STR_NULL
-} from './query_iterator';
-
-const COLUMN_TYPE_STR = RawQueryResult.ColumnDesc.Type.STRING;
-const COLUMN_TYPE_DOUBLE = RawQueryResult.ColumnDesc.Type.DOUBLE;
-const COLUMN_TYPE_LONG = RawQueryResult.ColumnDesc.Type.LONG;
-
-test('Columnar iteration slowlyCountRows', () => {
- const r = new RawQueryResult({
- columnDescriptors: [{
- name: 'string_column',
- type: COLUMN_TYPE_STR,
- }],
- numRecords: 1,
- columns: [{
- stringValues: ['foo'],
- isNulls: [false],
- }],
- });
-
- expect(slowlyCountRows(r)).toBe(1);
-});
-
-test('Columnar iteration findColumnIndex', () => {
- const r = new RawQueryResult({
- columnDescriptors: [
- {
- name: 'strings',
- type: COLUMN_TYPE_STR,
- },
- {
- name: 'doubles',
- type: COLUMN_TYPE_DOUBLE,
- },
- {
- name: 'longs',
- type: COLUMN_TYPE_LONG,
- },
- {
- name: 'nullable_strings',
- type: COLUMN_TYPE_STR,
- },
- {
- name: 'nullable_doubles',
- type: COLUMN_TYPE_DOUBLE,
- },
- {
- name: 'nullable_longs',
- type: COLUMN_TYPE_LONG,
- },
- {
- name: 'twin',
- type: COLUMN_TYPE_LONG,
- },
- {
- name: 'twin',
- type: COLUMN_TYPE_STR,
- }
- ],
- numRecords: 1,
- columns: [
- {
- stringValues: ['foo'],
- isNulls: [false],
- },
- {
- doubleValues: [1],
- isNulls: [false],
- },
- {
- longValues: [1],
- isNulls: [false],
- },
- {
- stringValues: [''],
- isNulls: [true],
- },
- {
- doubleValues: [0],
- isNulls: [true],
- },
- {
- longValues: [0],
- isNulls: [true],
- },
- {
- doubleValues: [0],
- isNulls: [false],
- },
- {
- stringValues: [''],
- isNulls: [false],
- }
- ],
- });
-
- expect(findColumnIndex(r, 'strings', STR)).toBe(0);
- expect(findColumnIndex(r, 'doubles', NUM)).toBe(1);
- expect(findColumnIndex(r, 'longs', NUM)).toBe(2);
-
- expect(findColumnIndex(r, 'nullable_strings', STR_NULL)).toBe(3);
- expect(findColumnIndex(r, 'nullable_doubles', NUM_NULL)).toBe(4);
- expect(findColumnIndex(r, 'nullable_longs', NUM_NULL)).toBe(5);
-
- expect(() => findColumnIndex(r, 'no such col', NUM)).toThrow(Error);
-
- // It's allowable to expect nulls but for the whole column to be non-null...
- expect(findColumnIndex(r, 'strings', STR_NULL)).toBe(0);
- expect(findColumnIndex(r, 'doubles', NUM_NULL)).toBe(1);
- expect(findColumnIndex(r, 'longs', NUM_NULL)).toBe(2);
-
- // ...but if we expect no-nulls there shouldn't be even one:
- expect(() => findColumnIndex(r, 'nullable_strings', STR)).toThrow(Error);
- expect(() => findColumnIndex(r, 'nullable_doubles', NUM)).toThrow(Error);
- expect(() => findColumnIndex(r, 'nullable_longs', NUM)).toThrow(Error);
-
- // If multiple columns have the desired name we error even if we could
- // distinguish based on the type:
- expect(() => findColumnIndex(r, 'twin', NUM)).toThrow(Error);
-
- expect(() => findColumnIndex(r, 'strings', NUM)).toThrow(Error);
- expect(() => findColumnIndex(r, 'longs', STR)).toThrow(Error);
- expect(() => findColumnIndex(r, 'doubles', STR)).toThrow(Error);
-});
-
-test('Columnar iteration over two rows', () => {
- const r = new RawQueryResult({
- columnDescriptors: [{
- name: 'name',
- type: COLUMN_TYPE_STR,
- }],
- numRecords: 2,
- columns: [{
- stringValues: ['Alice', 'Bob'],
- isNulls: [false, false],
- }],
- });
-
- const it = iter({'name': STR}, r);
-
- expect(it.valid()).toBe(true);
- const name: string = it.row.name;
- expect(name).toBe('Alice');
- it.next();
-
- expect(it.valid()).toBe(true);
- expect(it.row.name).toBe('Bob');
- it.next();
-
- expect(it.valid()).toBe(false);
-});
-
-test('Columnar iteration over empty query set', () => {
- const r = new RawQueryResult({
- columnDescriptors: [{
- name: 'emptyColumn',
- type: COLUMN_TYPE_STR,
- }],
- numRecords: 0,
- columns: [{
- stringValues: [],
- isNulls: [],
- }],
- });
-
- {
- const it = iter({'emptyColumn': STR}, r);
- expect(it.valid()).toBe(false);
- }
-
- {
- const it = iter({'emptyColumn': NUM}, r);
- expect(it.valid()).toBe(false);
- }
-
- {
- const it = iter({'emptyColumn': NUM_NULL}, r);
- expect(it.valid()).toBe(false);
- }
-
- {
- const it = iter({'emptyColumn': STR_NULL}, r);
- expect(it.valid()).toBe(false);
- }
-});
-
-test('Columnar iteration first row is null', () => {
- const r = new RawQueryResult({
- columnDescriptors: [{
- name: 'numbers',
- type: COLUMN_TYPE_STR,
- }],
- numRecords: 2,
- columns: [{
- stringValues: ['[NULL]'],
- doubleValues: [0],
- longValues: [0, 1],
- isNulls: [true, false],
- }],
- });
-
- const it = iter({'numbers': NUM_NULL}, r);
-
- expect(it.valid()).toBe(true);
- expect(it.row.numbers).toBe(null);
- it.next();
-
- expect(it.valid()).toBe(true);
- expect(it.row.numbers).toBe(1);
- it.next();
-
- expect(it.valid()).toBe(false);
-});