提交 4a5ed798 编写于 作者: P Ping Xiao

test: add test cases for logic operators

上级 ed60cea2
......@@ -743,7 +743,8 @@
4,,pytest,python3 test.py -f alter/alter_create_exception.py
4,,pytest,python3 test.py -f insert/line_insert.py
3,,pytest,python3 test.py -f tag_lite/binary.py
3,,pytest,python3 test.py -f query/filterAllIntTypes.py
3,,pytest,python3 test.py -f query/filterAllIntTypes.py
3,,pytest,python3 test.py -f query/queryLogicOperators.py
3,,pytest,python3 ./test.py -f query/queryNcharNull.py
3,,develop-test,python3 ./test.py -f 2-query/ts_hidden_column.py
3,,develop-test,python3 ./test.py -f 1-insert/uppercase_in_stmt.py
......
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import sys
from numpy.lib.function_base import insert
import taos
from util.log import *
from util.cases import *
from util.sql import *
import numpy as np
# constant define
WAITS = 5 # wait seconds
class TDTestCase:
# init
def init(self, conn, logSql):
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor())
tdSql.prepare()
self.ts = 1500000000000
self.rows = 100
# run case
def run(self):
self.case1()
self.case2()
self.case3()
def case1(self):
tdSql.execute("create table tb1(ts timestamp, c1 int, c2 int, c3 bool)")
sql = "insert into tb1 values "
for i in range(self.rows):
sql += "(%d, %d, 1, %d)" % (self.ts + i, i % 10, i % 2)
tdSql.execute(sql)
operators = ['&', '|', '^', '<<', '>>']
for operator in operators:
tdSql.query("select c1 %s c2 from tb1" % operator)
tdSql.checkRows(100)
tdSql.query("select * from tb1 where c1 %s c2 = 0" % operator)
if operator == '|':
tdSql.checkRows(0)
elif operator == '&':
tdSql.checkRows(50)
elif operator == '^':
tdSql.checkRows(10)
elif operator == '<<':
tdSql.checkRows(10)
elif operator == '<<':
tdSql.checkRows(20)
tdSql.query("select ~c1 from tb1")
tdSql.checkRows(100)
tdSql.query("select ~c1 from (select * from tb1 where c1 & c2 > 0) where c1 ^ c2 < 1 ")
tdSql.checkRows(10)
def case2(self):
tdSql.execute("create table tb2(ts timestamp, c1 tinyint, c2 tinyint unsigned, c3 smallint, c4 smallint unsigned, c5 int, c6 int unsigned, c7 bigint, c8 bigint unsigned, c9 float, c10 double, c11 bool, c12 binary(10), c13 nchar(10))")
sql = "insert into tb2 values "
for i in range(self.rows):
sql += "(%d, 1, 1, 2, 2, 3, 3, 4, 4, 1.1, 2.5, True, 'test', 'test')" % (self.ts + i)
tdSql.execute(sql)
operators = ['&', '|', '^', '<<', '>>']
for operator in operators:
for i in range(13):
if i < 8:
tdSql.query("select 1 %s c%d from tb2" % (operator, i + 1))
tdSql.checkRows(self.rows)
else:
tdSql.error("select 1 %s c%d from tb2" % (operator, i + 1))
tdSql.error("select c%d %s c%d from tb2" % (i + 1, operator, i + 1))
for i in range(13):
if i < 8:
tdSql.query("select %sc%d from tb2" % ('~', i + 1))
tdSql.checkRows(self.rows)
else:
tdSql.error("select %sc%d from tb2" % ('~', i + 1))
def case3(self):
tdSql.execute("create table st1(ts timestamp, c1 int, c2 int, c3 binary(20)) tags(t1 int, t2 int, t3 nchar(20))")
for i in range(self.rows):
tdSql.execute("create table t%d using st1 tags(%d, 1, 'test')" % (i, i))
sql = "insert into t%d values " % i
for i in range(self.rows):
sql += "(%d, %d, 1, %d)" % (self.ts + i, i % 10, i % 2)
tdSql.execute(sql)
operators = ['&', '|', '^', '<<', '>>']
for operator in operators:
tdSql.query("select c1 %s c2 from st1" % operator)
tdSql.checkRows(10000)
tdSql.query("select * from st1 where c1 %s c2 = 0" % operator)
if operator == '|':
tdSql.checkRows(0)
elif operator == '&':
tdSql.checkRows(5000)
elif operator == '^':
tdSql.checkRows(1000)
elif operator == '<<':
tdSql.checkRows(1000)
elif operator == '>>':
tdSql.checkRows(2000)
tdSql.query("select ~c1 from st1")
tdSql.checkRows(10000)
tdSql.query("select c1, c2 from (select * from st1 where c1 & c2 > 0) where c1 | c2 = 1")
tdSql.checkRows(1000)
# stop
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册