import {
  queryingCustomersDimensions,
  queryingCustomersDimensionsAndOrder,
  queryingCustomerDimensionsAndLimitTest,
  queryingCustomersDimensionsAndTotal,
  queryingCustomersDimensionsOrderLimitTotal,
  queryingCustomersDimensionsOrderTotalOffset,
  queryingCustomersDimensionsOrderLimitTotalOffset,
  filteringCustomersCubeFirst,
  filteringCustomersCubeSecond,
  filteringCustomersCubeThird,
  filteringCustomersEndsWithFilterFirst,
  filteringCustomersEndsWithFilterSecond,
  filteringCustomersEndsWithFilterThird,
  filteringCustomersNotEndsWithFilterFirst,
  filteringCustomersNotEndsWithFilterSecond,
  filteringCustomersNotEndsWithFilterThird,
  filteringCustomersStartsWithFirst,
  filteringCustomersStartsWithSecond,
  filteringCustomersStartsWithThird,
  filteringCustomersNotStartsWithFirst,
  filteringCustomersNotStartsWithSecond,
  filteringCustomersNotStartsWithThird,
  queryingProductDimensions,
  queryingProductsDimensionsAndOrder,
  queryingProductsDimensionsAndOrderAndLimit,
  queryingProductsDimensionsOrderAndTotal,
  queryingProductsDimensionsOrderAndLimitAndTotal,
  filteringProductsContainsAndDimensionsAndOrderFirst,
  filteringProductsContainsAndDimensionsAndOrderSecond,
  filteringProductsContainsAndDimensionsAndOrderThird,
  filteringProductsStartsWithFilterDimensionsOrderFirst,
  filteringProductsStartsWithFilterDimensionsSecond,
  filteringProductsStartsWithFilterDimensionsThird,
  filteringProductsEndsWithFilterDimensionsFirst,
  filteringProductsEndsWithFilterDimensionsSecond,
  filteringProductsEndsWithFilterDimensionsThird,
  queryingECommerceDimensions,
  queryingECommerceDimensionsOrder,
  queryingECommerceDimensionsLimit,
  queryingECommerceDimensionsTotal,
  queryingECommerceDimensionsOrderLimitTotal,
  queryingECommerceDimensionsOrderTotalOffset,
  queryingECommerceDimensionsOrderLimitTotalOffset,
  queryingECommerceCountByCitiesOrder,
  queryingECommerceTotalQuantityAvgDiscountTotalSales,
  queryingECommerceTotalSalesTotalProfitByMonthAndOrder,
  filteringECommerceContainsDimensionsFirst,
  filteringECommerceContainsDimensionsSecond,
  filteringECommerceContainsDimensionsThird,
  filteringECommerceStartsWithDimensionsFirst,
  filteringECommerceStartsWithDimensionsSecond,
  filteringECommerceStartsWithDimensionsThird,
  filteringECommerceEndsWithDimensionsFirst,
  filteringECommerceEndsWithDimensionsSecond,
  filteringECommerceEndsWithDimensionsThird,
  queryingEcommerceTotalQuantifyAvgDiscountTotal,
  queryingECommerceCountApproxByCustomerOverProductName,
  queryingECommerceCountApproxByCustomerOverProductNameByMonth,
  queryingECommerceCountApproxByCustomer,
  hiddenMember,
  hiddenCube,
  viewMetaExposed,
  preAggsCustomersRunningTotal,
  queryingECommerceCompareDateRangesByCustomerOverProductNameByMonth,
} from './tests';
import { testSet } from './driverTest';

const skippedTestSet = testSet([
  queryingEcommerceTotalQuantifyAvgDiscountTotal,
  queryingProductDimensions,
  queryingECommerceTotalQuantityAvgDiscountTotalSales,
  queryingECommerceTotalSalesTotalProfitByMonthAndOrder
]);

const hyperloglogTestSet = testSet([
  queryingECommerceCountApproxByCustomerOverProductNameByMonth,
  queryingECommerceCountApproxByCustomerOverProductName,
  queryingECommerceCountApproxByCustomer,
]);

const withOrderingTestSet = testSet([
  queryingCustomersDimensionsAndOrder,
  queryingCustomersDimensionsOrderLimitTotal,
  queryingCustomersDimensionsOrderTotalOffset,
  queryingCustomersDimensionsOrderLimitTotalOffset,
  queryingProductsDimensionsAndOrder,
  queryingProductsDimensionsAndOrderAndLimit,
  queryingProductsDimensionsOrderAndTotal,
  queryingProductsDimensionsOrderAndLimitAndTotal,
  filteringProductsContainsAndDimensionsAndOrderFirst,
  filteringProductsContainsAndDimensionsAndOrderSecond,
  filteringProductsContainsAndDimensionsAndOrderThird,
  filteringProductsStartsWithFilterDimensionsOrderFirst,
  filteringProductsStartsWithFilterDimensionsSecond,
  filteringProductsStartsWithFilterDimensionsThird,
  filteringProductsEndsWithFilterDimensionsFirst,
  filteringProductsEndsWithFilterDimensionsSecond,
  filteringProductsEndsWithFilterDimensionsThird,
  queryingECommerceDimensionsOrder,
  queryingECommerceDimensionsOrderLimitTotal,
  queryingECommerceDimensionsOrderTotalOffset,
  queryingECommerceDimensionsOrderLimitTotalOffset,
  queryingECommerceCountByCitiesOrder,
  queryingECommerceTotalQuantityAvgDiscountTotalSales,
  queryingECommerceTotalSalesTotalProfitByMonthAndOrder,
  queryingEcommerceTotalQuantifyAvgDiscountTotal
]);

const withoutOrderingTestSet = testSet([
  queryingCustomersDimensions,
  queryingCustomerDimensionsAndLimitTest,
  queryingCustomersDimensionsAndTotal,
  filteringCustomersCubeFirst,
  filteringCustomersCubeSecond,
  filteringCustomersCubeThird,
  filteringCustomersStartsWithFirst,
  filteringCustomersStartsWithSecond,
  filteringCustomersStartsWithThird,
  filteringCustomersNotStartsWithFirst,
  filteringCustomersNotStartsWithSecond,
  filteringCustomersNotStartsWithThird,
  filteringCustomersEndsWithFilterFirst,
  filteringCustomersEndsWithFilterSecond,
  filteringCustomersEndsWithFilterThird,
  filteringCustomersNotEndsWithFilterFirst,
  filteringCustomersNotEndsWithFilterSecond,
  filteringCustomersNotEndsWithFilterThird,
  queryingProductDimensions,
  queryingECommerceDimensions,
  queryingECommerceDimensionsLimit,
  queryingECommerceDimensionsTotal,
  filteringECommerceContainsDimensionsFirst,
  filteringECommerceContainsDimensionsSecond,
  filteringECommerceContainsDimensionsThird,
  filteringECommerceStartsWithDimensionsFirst,
  filteringECommerceStartsWithDimensionsSecond,
  filteringECommerceStartsWithDimensionsThird,
  filteringECommerceEndsWithDimensionsFirst,
  filteringECommerceEndsWithDimensionsSecond,
  filteringECommerceEndsWithDimensionsThird,
]);

export const mainTestSet = testSet([
  ...skippedTestSet,
  ...hyperloglogTestSet,
  ...withOrderingTestSet,
  ...withoutOrderingTestSet,
  viewMetaExposed
]);

export const preAggsTestSet = testSet([
  preAggsCustomersRunningTotal,
]);

export const productionTestSet = testSet([
  hiddenMember,
  hiddenCube,
]);

export const multiQueryTestSet = testSet([
  queryingECommerceCompareDateRangesByCustomerOverProductNameByMonth,
]);
