|
8 | 8 | import org.junit.Test; |
9 | 9 |
|
10 | 10 | import java.io.IOException; |
11 | | -import java.math.BigInteger; |
12 | 11 | import java.time.LocalDateTime; |
13 | 12 | import java.time.LocalTime; |
14 | 13 | import java.util.*; |
@@ -129,7 +128,7 @@ public static void Preparedata_array(long count1,long count2) throws IOException |
129 | 128 | "cdecimal32 = array(DECIMAL32(2)[]).append!(cut(decimal32(take(-100..100 join NULL, n) + 0.254, 3), m))\n" + |
130 | 129 | "cdecimal64 = array(DECIMAL64(7)[]).append!(cut(decimal64(take(-100..100 join NULL, n) + 0.25467, 4), m))\n" + |
131 | 130 | "cdecimal128 = array(DECIMAL128(19)[]).append!(cut(decimal128(take(-100..100 join NULL, n) + 0.25467, 5), m))\n" + |
132 | | - "data = table(cbool, cchar, cshort, cint, clong, cdouble, cfloat, cdate, cmonth, ctime, cminute, csecond, cdatetime, ctimestamp, cnanotime, cnanotimestamp, cdatehour, cuuid, cipaddr, cint128, cpoint, ccomplex, cdecimal32, cdecimal64)\n" ; |
| 131 | + "share table(cbool, cchar, cshort, cint, clong, cdouble, cfloat, cdate, cmonth, ctime, cminute, csecond, cdatetime, ctimestamp, cnanotime, cnanotimestamp, cdatehour, cuuid, cipaddr, cint128, cpoint, ccomplex, cdecimal32, cdecimal64,cdecimal128) as data;" ; |
133 | 132 | conn.run(script1); |
134 | 133 | } |
135 | 134 | public static void PrepareUser(String userName,String password) throws IOException { |
@@ -225,27 +224,6 @@ public void test_EventClient_EventType_null_1() throws IOException, Interrupted |
225 | 224 | } |
226 | 225 | Assert.assertEquals("eventType must be non-empty.",re); |
227 | 226 | } |
228 | | - |
229 | | - @Test//到时候修改成覆盖所有数据类型的 |
230 | | - public void test_EventClient_EventType_special_character() throws IOException, InterruptedException { |
231 | | - String script = "share streamTable(1000000:0, `time`eventType`event, [TIMESTAMP,STRING,BLOB]) as inputTable;\n"+ |
232 | | - "share table(100:0, `market`code`price`qty`eventTime, [STRING, STRING, DOUBLE, INT, TIMESTAMP]) as outputTable;\n"; |
233 | | - //conn.run(script); |
234 | | - EventScheme scheme = new EventScheme(); |
235 | | - scheme.setEventType("MarketData"); |
236 | | - scheme.setAttrKeys(Arrays.asList("market", "code", "price", "qty", "eventTime")); |
237 | | - scheme.setAttrTypes(Arrays.asList(DT_STRING, DT_STRING, DT_DOUBLE, DT_INT, DT_TIMESTAMP)); |
238 | | - scheme.setAttrForms(Arrays.asList(DF_SCALAR, DF_SCALAR, DF_SCALAR, DF_SCALAR, DF_SCALAR)); |
239 | | - List<EventScheme> eventSchemes = Collections.singletonList(scheme); |
240 | | - List<String> eventTimeKeys = Collections.singletonList("eventTime"); |
241 | | - List<String> commonKeys = new ArrayList<>(); |
242 | | - EventClient client = new EventClient(eventSchemes, eventTimeKeys, commonKeys); |
243 | | - client.subscribe(HOST, PORT, "outputTable", "test1", handler, -1, true, "admin", "123456"); |
244 | | - Thread.sleep(200000); |
245 | | - BasicTable bt1 = (BasicTable)conn.run("select * from outputTable;"); |
246 | | - Assert.assertEquals(1,bt1.rows()); |
247 | | - } |
248 | | - |
249 | 227 | @Test |
250 | 228 | public void test_EventClient_EventType_repetition() throws IOException, InterruptedException { |
251 | 229 | EventScheme scheme = new EventScheme(); |
@@ -1304,47 +1282,125 @@ public void test_EventClient_subscribe_all_dateType_100() throws IOException, I |
1304 | 1282 |
|
1305 | 1283 | @Test |
1306 | 1284 | public void test_EventClient_all_dateType_vector() throws IOException, InterruptedException { |
1307 | | - //DBConnection conn = new DBConnection(true); |
1308 | | - //conn.connect(HOST, PORT, "admin", "123456"); |
| 1285 | + Preparedata_array(100,10); |
1309 | 1286 | String script = "share streamTable(1000000:0, `eventType`event, [STRING,BLOB]) as inputTable;\n"+ |
1310 | | - "colNames=\"col\"+string(1..24);\n" + |
1311 | | - "colTypes=[BOOL[],CHAR[],SHORT[],INT[],LONG[],DOUBLE[],FLOAT[],DATE[],MONTH[],TIME[],MINUTE[],SECOND[],DATETIME[],TIMESTAMP[],NANOTIME[],NANOTIMESTAMP[],DATEHOUR[],UUID[],IPADDR[],INT128[],POINT[],COMPLEX[],DECIMAL32(2)[],DECIMAL64(7)[]];\n" + |
| 1287 | + "colNames=\"col\"+string(1..25);\n" + |
| 1288 | + "colTypes=[BOOL[],CHAR[],SHORT[],INT[],LONG[],DOUBLE[],FLOAT[],DATE[],MONTH[],TIME[],MINUTE[],SECOND[],DATETIME[],TIMESTAMP[],NANOTIME[],NANOTIMESTAMP[], DATEHOUR[],UUID[],IPADDR[],INT128[],POINT[],COMPLEX[],DECIMAL32(2)[],DECIMAL64(7)[],DECIMAL128(10)[]];\n" + |
1312 | 1289 | "share table(1:0,colNames,colTypes) as outputTable;\n" ; |
1313 | 1290 | conn.run(script); |
1314 | | - |
| 1291 | + String script1 ="class event_all_array_dateType{\n" + |
| 1292 | + "\tboolv :: BOOL VECTOR\n" + |
| 1293 | + "\tcharv :: CHAR VECTOR\n" + |
| 1294 | + "\tshortv :: SHORT VECTOR\n" + |
| 1295 | + "\tintv :: INT VECTOR\n" + |
| 1296 | + "\tlongv :: LONG VECTOR\n" + |
| 1297 | + "\tdoublev :: DOUBLE VECTOR\n" + |
| 1298 | + "\tfloatv :: FLOAT VECTOR\n" + |
| 1299 | + "\tdatev :: DATE VECTOR\n" + |
| 1300 | + "\tmonthv :: MONTH VECTOR\n" + |
| 1301 | + "\ttimev :: TIME VECTOR\n" + |
| 1302 | + "\tminutev :: MINUTE VECTOR\n" + |
| 1303 | + "\tsecondv :: SECOND VECTOR\n" + |
| 1304 | + "\tdatetimev :: DATETIME VECTOR \n" + |
| 1305 | + "\ttimestampv :: TIMESTAMP VECTOR\n" + |
| 1306 | + "\tnanotimev :: NANOTIME VECTOR\n" + |
| 1307 | + "\tnanotimestampv :: NANOTIMESTAMP VECTOR\n" + |
| 1308 | + "\t//stringv :: STRING VECTOR\n" + |
| 1309 | + "\tdatehourv :: DATEHOUR VECTOR\n" + |
| 1310 | + "\tuuidv :: UUID VECTOR\n" + |
| 1311 | + "\tippaddrv :: IPADDR VECTOR\n" + |
| 1312 | + "\tint128v :: INT128 VECTOR\n" + |
| 1313 | + "\t//blobv :: BLOB VECTOR\n" + |
| 1314 | + "\tpointv :: POINT VECTOR\n" + |
| 1315 | + "\tcomplexv :: COMPLEX VECTOR\n" + |
| 1316 | + "\tdecimal32v :: DECIMAL32(3) VECTOR\n" + |
| 1317 | + "\tdecimal64v :: DECIMAL64(8) VECTOR\n" + |
| 1318 | + "\tdecimal128v :: DECIMAL128(10) VECTOR \n" + |
| 1319 | + " def event_all_array_dateType(bool, char, short, int, long, double, float, date, month, time, minute, second, datetime, timestamp, nanotime, nanotimestamp, datehour, uuid, ippaddr, int128,point, complex, decimal32, decimal64, decimal128){\n" + |
| 1320 | + "\tboolv = bool\n" + |
| 1321 | + "\tcharv = char\n" + |
| 1322 | + "\tshortv = short\n" + |
| 1323 | + "\tintv = int\n" + |
| 1324 | + "\tlongv = long\n" + |
| 1325 | + "\tdoublev = double\n" + |
| 1326 | + "\tfloatv = float\n" + |
| 1327 | + "\tdatev = date\n" + |
| 1328 | + "\tmonthv = month\n" + |
| 1329 | + "\ttimev = time\n" + |
| 1330 | + "\tminutev = minute\n" + |
| 1331 | + "\tsecondv = second\n" + |
| 1332 | + "\tdatetimev = datetime\n" + |
| 1333 | + "\ttimestampv = timestamp\n" + |
| 1334 | + "\tnanotimev = nanotime\n" + |
| 1335 | + "\tnanotimestampv = nanotimestamp\n" + |
| 1336 | + "\t//stringv = string\n" + |
| 1337 | + "\tdatehourv = datehour\n" + |
| 1338 | + "\tuuidv = uuid\n" + |
| 1339 | + "\tippaddrv = ippaddr\n" + |
| 1340 | + "\tint128v = int128\n" + |
| 1341 | + "\t//blobv = blob\n" + |
| 1342 | + "\tpointv = point\n" + |
| 1343 | + "\tcomplexv = complex\n" + |
| 1344 | + "\tdecimal32v = decimal32\n" + |
| 1345 | + "\tdecimal64v = decimal64\n" + |
| 1346 | + "\tdecimal128v = decimal128\n" + |
| 1347 | + " \t}\n" + |
| 1348 | + "} \n" + |
| 1349 | + "schemaTable = table(array(STRING, 0) as eventType, array(STRING, 0) as eventKeys, array(INT[], ) as type, array(INT[], 0) as form)\n" + |
| 1350 | + "eventType = 'event_all_dateType'\n" + |
| 1351 | + "eventKeys = 'boolv,charv,shortv,intv,longv,doublev,floatv,datev,monthv,timev,minutev,secondv,datetimev,timestampv,nanotimev,nanotimestampv,datehourv,uuidv,ippaddrv,int128v,pointv,complexv,decimal32v,decimal64v,decimal128v';\n" + |
| 1352 | + "typeV = [BOOL[], CHAR[], SHORT[], INT[], LONG[], DOUBLE[], FLOAT[], DATE[],MONTH[], TIME[], MINUTE[], SECOND[], DATETIME[], TIMESTAMP[], NANOTIME[], NANOTIMESTAMP[], DATEHOUR[], UUID[], IPADDR[], INT128[], POINT[], COMPLEX[], DECIMAL32(3)[], DECIMAL64(8)[], DECIMAL128(10)[]];\n" + |
| 1353 | + "formV = [VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR, VECTOR];\n" + |
| 1354 | + "insert into schemaTable values([eventType], [eventKeys], [typeV],[formV]);\n" + |
| 1355 | + "share streamTable( array(STRING, 0) as eventType, array(BLOB, 0) as blobs) as intput1;\n" + |
| 1356 | + "try{\ndropStreamEngine(`serInput)\n}catch(ex){\n}\n" + |
| 1357 | + "inputSerializer = streamEventSerializer(name=`serInput, eventSchema=schemaTable, outputTable=intput1);"; |
| 1358 | + conn.run(script1); |
1315 | 1359 | EventScheme scheme = new EventScheme(); |
1316 | 1360 | scheme.setEventType("event_all_array_dateType"); |
1317 | | - scheme.setAttrKeys(Arrays.asList("boolv", "charv", "shortv", "intv", "longv", "doublev", "floatv", "datev", "monthv", "timev", "minutev", "secondv", "datetimev", "timestampv", "nanotimev", "nanotimestampv", "datehourv", "uuidv", "ippaddrv", "int128v", "pointv", "complexv", "decimal32v", "decimal64v")); |
1318 | | - scheme.setAttrTypes(Arrays.asList(DT_BOOL, DT_BYTE, DT_SHORT, DT_INT, DT_LONG, DT_DOUBLE, DT_FLOAT, DT_DATE,DT_MONTH, DT_TIME, DT_MINUTE, DT_SECOND, DT_DATETIME, DT_TIMESTAMP, DT_NANOTIME, DT_NANOTIMESTAMP, DT_DATEHOUR, DT_UUID, DT_IPADDR, DT_INT128, DT_POINT, DT_COMPLEX, DT_DECIMAL32, DT_DECIMAL64)); |
1319 | | - scheme.setAttrForms(Arrays.asList( DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR)); |
| 1361 | + scheme.setAttrKeys(Arrays.asList("boolv", "charv", "shortv", "intv", "longv", "doublev", "floatv", "datev", "monthv", "timev", "minutev", "secondv", "datetimev", "timestampv", "nanotimev", "nanotimestampv", "datehourv", "uuidv", "ippaddrv", "int128v", "pointv", "complexv", "decimal32v", "decimal64v", "decimal128v")); |
| 1362 | + scheme.setAttrTypes(Arrays.asList(DT_BOOL, DT_BYTE, DT_SHORT, DT_INT, DT_LONG, DT_DOUBLE, DT_FLOAT, DT_DATE,DT_MONTH, DT_TIME, DT_MINUTE, DT_SECOND, DT_DATETIME, DT_TIMESTAMP, DT_NANOTIME, DT_NANOTIMESTAMP, DT_DATEHOUR, DT_UUID, DT_IPADDR, DT_INT128, DT_POINT, DT_COMPLEX, DT_DECIMAL32, DT_DECIMAL64, DT_DECIMAL128)); |
| 1363 | + scheme.setAttrForms(Arrays.asList( DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR, DF_VECTOR)); |
1320 | 1364 | List<EventScheme> eventSchemes = Collections.singletonList(scheme); |
1321 | 1365 | List<String> eventTimeKeys = new ArrayList<>(); |
1322 | 1366 | List<String> commonKeys = new ArrayList<>(); |
1323 | 1367 | EventSender sender = EventSender.createEventSender(eventSchemes, eventTimeKeys, commonKeys); |
1324 | 1368 | sender.connect(conn,"inputTable"); |
1325 | | - Preparedata_array(100,10); |
1326 | | - BasicTable bt = (BasicTable)conn.run("select * from data"); |
1327 | 1369 |
|
1328 | 1370 | EventClient client = new EventClient(eventSchemes, eventTimeKeys, commonKeys); |
1329 | | - client.subscribe(HOST, PORT, "inputTable", "test1", handler, -1, true, "admin", "123456"); |
| 1371 | + client.subscribe(HOST, PORT, "intput1", "test1", handler, -1, true, "admin", "123456"); |
1330 | 1372 |
|
| 1373 | + Preparedata_array(100,10); |
| 1374 | + BasicTable bt = (BasicTable)conn.run("select * from data"); |
| 1375 | + String script2 = "data1=select * from data;\n" + |
| 1376 | + "for(i in 0..9){\n" + |
| 1377 | + "\tevent_all_array_dateType1=event_all_array_dateType(data1.row(i)[`cbool], data1.row(i)[`cchar], data1.row(i)[`cshort], data1.row(i)[`cint],data1.row(i)[`clong], data1.row(i)[`cdouble], data1.row(i)[`cfloat], data1.row(i)[`cdate], data1.row(i)[`cmonth], data1.row(i)[`ctime], data1.row(i)[`cminute], data1.row(i)[`csecond], data1.row(i)[`cdatetime], data1.row(i)[`ctimestamp], data1.row(i)[`cnanotime], data1.row(i)[`cnanotimestamp], data1.row(i)[`cdatehour], data1.row(i)[`cuuid], data1.row(i)[`cipaddr], data1.row(i)[`cint128],data1.row(i)[`cpoint], data1.row(i)[`ccomplex], data1.row(i)[`cdecimal32], data1.row(i)[`cdecimal64], data1.row(i)[`cdecimal128])\n" + |
| 1378 | + "\tappendEvent(inputSerializer, event_all_array_dateType1)\n" + |
| 1379 | + "\t}" ; |
| 1380 | + conn.run(script2); |
| 1381 | + Thread.sleep(10000); |
1331 | 1382 | for(int i=0;i<bt.rows();i++){ |
1332 | 1383 | List<Entity> attributes = new ArrayList<>(); |
1333 | 1384 | for(int j=0;j<bt.columns();j++){ |
1334 | 1385 | Entity pt = bt.getColumn(j).get(i); |
1335 | | - //System.out.println(pt.getDataType()); |
1336 | | - //System.out.println(i + "行, " + j + "列:" + pt.getString()); |
| 1386 | + System.out.println(pt.getDataType()); |
| 1387 | + System.out.println(i + "行, " + j + "列:" + pt.getString()); |
1337 | 1388 | attributes.add(pt); |
1338 | 1389 | } |
1339 | 1390 | sender.sendEvent("event_all_array_dateType",attributes); |
1340 | 1391 | } |
| 1392 | + Thread.sleep(1000); |
1341 | 1393 | BasicTable bt1 = (BasicTable)conn.run("select * from inputTable;"); |
1342 | 1394 | Assert.assertEquals(10,bt1.rows()); |
1343 | | - Thread.sleep(20000); |
1344 | | - BasicTable bt2 = (BasicTable)conn.run("select * from outputTable;"); |
| 1395 | + BasicTable bt2 = (BasicTable)conn.run("select * from intput;"); |
1345 | 1396 | Assert.assertEquals(10,bt2.rows()); |
1346 | 1397 | checkData(bt,bt2); |
| 1398 | + Thread.sleep(10000); |
| 1399 | + BasicTable bt3 = (BasicTable)conn.run("select * from outputTable;"); |
| 1400 | + Assert.assertEquals(10,bt3.rows()); |
| 1401 | + checkData(bt,bt3); |
1347 | 1402 | } |
| 1403 | + |
1348 | 1404 | public static EventMessageHandler handler_array = new EventMessageHandler() { |
1349 | 1405 | @Override |
1350 | 1406 | public void doEvent(String eventType, List<Entity> attribute) { |
|
0 commit comments