stateduration.py 21.0 KB
Newer Older
J
jiacy-jcy 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
###################################################################
#           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 -*-

from util.log import *
from util.cases import *
from util.sql import *

J
jiacy-jcy 已提交
18

J
jiacy-jcy 已提交
19
class TDTestCase:
20
    def init(self, conn, logSql, replicaVar=1):
J
jiacy-jcy 已提交
21 22 23
        tdLog.debug("start to execute %s" % __file__)
        tdSql.init(conn.cursor())
        self.ts = 1537146000000
J
jiacy-jcy 已提交
24 25
        self.param_list = ['LT', 'lt', 'Lt', 'lT', 'GT', 'gt', 'Gt', 'gT', 'LE', 'le', 'Le',
                           'lE', 'GE', 'ge', 'Ge', 'gE', 'NE', 'ne', 'Ne', 'nE', 'EQ', 'eq', 'Eq', 'eQ']
J
jiacy-jcy 已提交
26
        self.row_num = 10
J
jiacy-jcy 已提交
27 28 29 30 31 32
        self.dbname = 'db'
        self.ntbname = f'{self.dbname}.ntb'
        self.stbname = f'{self.dbname}.stb'

    def duration_check(self):
        tdSql.execute(f'create database {self.dbname}')
J
jiacy-jcy 已提交
33
        # timestamp = 1ms , time_unit = 1s
J
jiacy-jcy 已提交
34
        tdSql.execute(f'''create table {self.ntbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
J
jiacy-jcy 已提交
35 36
                    col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
        for i in range(self.row_num):
J
jiacy-jcy 已提交
37 38 39 40
            tdSql.execute(f"insert into {self.ntbname} values({self.ts + i}, {i + 1}, {i + 1}, {i + 1}, {i + 1}, {i + 0.1}, {i + 0.1}, {i % 2}, 'taosdata{i + 1}', '涛思数据{i + 1}', {i + 1}, {i + 1}, {i + 1}, {i + 1})"
                          )
        integer_list = [1, 2, 3, 4, 11, 12, 13, 14]
        float_list = [5, 6]
J
jiacy-jcy 已提交
41 42 43

        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
44 45
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5) from {self.ntbname}")
J
jiacy-jcy 已提交
46
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,), (5,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
65 66
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
67 68
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5) from {self.ntbname}")
J
jiacy-jcy 已提交
69
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
70 71 72 73 74 75 76 77 78 79 80 81
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
82

J
jiacy-jcy 已提交
83
        error_column_list = ['ts', 'col7', 'col8', 'col9', 'a', 1]
J
jiacy-jcy 已提交
84 85
        for i in error_column_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
86 87
                tdSql.error(
                    f"select stateduration({i},{j},5) from {self.ntbname}")
G
Ganlin Zhao 已提交
88

J
jiacy-jcy 已提交
89
        error_param_list = ['a', 1]
J
jiacy-jcy 已提交
90
        for i in error_param_list:
J
jiacy-jcy 已提交
91 92 93
            tdSql.error(
                f"select stateduration(col1,{i},5) from {self.ntbname}")
        tdSql.execute(f'drop table {self.ntbname}')
J
jiacy-jcy 已提交
94
        # timestamp = 1s, time_unit =1s
J
jiacy-jcy 已提交
95
        tdSql.execute(f'''create table {self.ntbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
J
jiacy-jcy 已提交
96 97
                    col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
        for i in range(self.row_num):
J
jiacy-jcy 已提交
98 99
            tdSql.execute(f"insert into {self.ntbname} values({self.ts + i*1000}, {i + 1}, {i + 1}, {i + 1}, {i + 1}, {i + 0.1}, {i + 0.1}, {i % 2}, 'taosdata{i + 1}', '涛思数据{i + 1}', {i + 1}, {i + 1}, {i + 1}, {i + 1})"
                          )
G
Ganlin Zhao 已提交
100

J
jiacy-jcy 已提交
101 102
        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
103
                tdSql.query(f"select stateduration(col{i},'{j}',5) from {self.ntbname}")
J
jiacy-jcy 已提交
104
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1000,), (2000,), (3000,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1000,), (2000,), (3000,), (4000,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1000,), (2000,), (3000,), (4000,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (1000,), (2000,), (3000,), (4000,), (5000,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1000,), (2000,), (3000,), (-1,), (0,), (1000,), (2000,), (3000,), (4000,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
123 124
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
125
                tdSql.query(f"select stateduration(col{i},'{j}',5) from {self.ntbname}")
J
jiacy-jcy 已提交
126 127
                tdSql.checkRows(10)
                print(tdSql.queryResult)
J
jiacy-jcy 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1000,), (2000,), (3000,), (4000,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1000,), (2000,), (3000,), (4000,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1000,), (2000,), (3000,), (4000,), (5000,), (6000,), (7000,), (8000,), (9000,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
        tdSql.execute(f'drop table {self.ntbname}')
J
jiacy-jcy 已提交
141
        # timestamp = 1m, time_unit =1m
J
jiacy-jcy 已提交
142
        tdSql.execute(f'''create table {self.ntbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
J
jiacy-jcy 已提交
143 144
                    col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
        for i in range(self.row_num):
J
jiacy-jcy 已提交
145 146
            tdSql.execute(f"insert into {self.ntbname} values({self.ts + i*1000*60}, {i + 1}, {i + 1}, {i + 1}, {i + 1}, {i + 0.1},{i + 0.1}, {i % 2}, 'taosdata{i + 1}', '涛思数据{i + 1}',{i + 1}, {i + 1}, {i + 1}, {i + 1})"
                          )
G
Ganlin Zhao 已提交
147

J
jiacy-jcy 已提交
148 149
        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
150 151
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1m) from {self.ntbname}")
J
jiacy-jcy 已提交
152
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,), (5,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
171 172
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
173 174
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1m) from {self.ntbname}")
J
jiacy-jcy 已提交
175 176
                tdSql.checkRows(10)
                print(tdSql.queryResult)
J
jiacy-jcy 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
        tdSql.execute(f'drop table {self.ntbname}')
J
jiacy-jcy 已提交
190
        # timestamp = 1h, time_unit =1h
J
jiacy-jcy 已提交
191
        tdSql.execute(f'''create table {self.ntbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
J
jiacy-jcy 已提交
192 193
                    col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned)''')
        for i in range(self.row_num):
J
jiacy-jcy 已提交
194 195
            tdSql.execute(f"insert into {self.ntbname} values({self.ts + i*1000*60*60}, {i + 1}, {i + 1}, {i + 1}, {i + 1},{i + 0.1}, {i + 0.1}, {i % 2}, 'taosdata{i + 1}', '涛思数据{i + 1}', {i + 1}, {i + 1}, {i + 1}, {i + 1})"
                        )
G
Ganlin Zhao 已提交
196

J
jiacy-jcy 已提交
197 198
        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
199 200
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1h) from {self.ntbname}")
J
jiacy-jcy 已提交
201
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,), (5,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
220 221
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
222 223
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1h) from {self.ntbname}")
J
jiacy-jcy 已提交
224 225
                tdSql.checkRows(10)
                print(tdSql.queryResult)
J
jiacy-jcy 已提交
226 227 228 229 230 231 232 233 234 235 236 237
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
238 239 240 241

        # timestamp = 1h,time_unit =1m
        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
242 243
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1m) from {self.ntbname}")
J
jiacy-jcy 已提交
244
                tdSql.checkRows(10)
J
jiacy-jcy 已提交
245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (60,), (120,), (180,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (60,), (120,), (180,), (240,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (60,), (120,), (180,), (240,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (60,), (120,), (180,), (240,), (300,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (60,), (120,), (180,), (-1,), (0,), (60,), (120,), (180,), (240,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
263 264
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
265 266
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1m) from {self.ntbname}")
J
jiacy-jcy 已提交
267 268
                tdSql.checkRows(10)
                print(tdSql.queryResult)
J
jiacy-jcy 已提交
269 270 271 272 273 274 275 276 277 278 279 280
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (60,), (120,), (180,), (240,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (60,), (120,), (180,), (240,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (60,), (120,), (180,), (240,), (300,), (360,), (420,), (480,), (540,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
281 282

        # for stb
J
jiacy-jcy 已提交
283 284

        tdSql.execute(f'''create table {self.stbname}(ts timestamp, col1 tinyint, col2 smallint, col3 int, col4 bigint, col5 float, col6 double,
J
jiacy-jcy 已提交
285
                    col7 bool, col8 binary(20), col9 nchar(20), col11 tinyint unsigned, col12 smallint unsigned, col13 int unsigned, col14 bigint unsigned) tags(t0 int)''')
J
jiacy-jcy 已提交
286
        tdSql.execute(f'create table {self.stbname}_1 using {self.stbname} tags(1)')
J
jiacy-jcy 已提交
287
        for i in range(self.row_num):
J
jiacy-jcy 已提交
288 289
            tdSql.execute(f"insert into {self.stbname}_1 values({self.ts + i*1000*60*60}, {i + 1}, {i + 1},{ i + 1}, {i + 1}, {i + 0.1}, {i + 0.1}, {i % 2},'taosdata{i + 1}', '涛思数据{i + 1}', {i + 1}, {i + 1}, {i + 1}, {i + 1})"
                        )
G
Ganlin Zhao 已提交
290

J
jiacy-jcy 已提交
291 292
        for i in integer_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
293 294
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1h) from {self.stbname}")
J
jiacy-jcy 已提交
295 296
                tdSql.checkRows(10)
                # print(tdSql.queryResult)
J
jiacy-jcy 已提交
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
                if j in ['LT', 'lt', 'Lt', 'lT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,), (5,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (0,), (-1,), (-1,), (-1,), (-1,), (-1,)])
J
jiacy-jcy 已提交
315 316
        for i in float_list:
            for j in self.param_list:
J
jiacy-jcy 已提交
317 318
                tdSql.query(
                    f"select stateduration(col{i},'{j}',5,1h) from {self.stbname}")
J
jiacy-jcy 已提交
319 320
                tdSql.checkRows(10)
                print(tdSql.queryResult)
J
jiacy-jcy 已提交
321 322 323 324 325 326 327 328 329 330 331 332
                if j in ['LT', 'lt', 'Lt', 'lT', 'LE', 'le', 'Le', 'lE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (-1,), (-1,), (-1,), (-1,), (-1,)])
                elif j in ['GE', 'ge', 'Ge', 'gE', 'GT', 'gt', 'Gt', 'gT']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (0,), (1,), (2,), (3,), (4,)])
                elif j in ['NE', 'ne', 'Ne', 'nE']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (0,), (1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)])
                elif j in ['EQ', 'eq', 'Eq', 'eQ']:
                    tdSql.checkEqual(tdSql.queryResult, [
                                     (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,), (-1,)])
G
Ganlin Zhao 已提交
333

J
jiacy-jcy 已提交
334 335
    def run(self):
        self.duration_check()
J
jiacy-jcy 已提交
336 337 338 339
    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)

J
jiacy-jcy 已提交
340

J
jiacy-jcy 已提交
341
tdCases.addWindows(__file__, TDTestCase())
G
Ganlin Zhao 已提交
342
tdCases.addLinux(__file__, TDTestCase())