Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#dotnet project files
obj/
*.csproj
.vscode/
.vscode/
bin/
20 changes: 20 additions & 0 deletions client/Test.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using iotdb_client_csharp.client.test;
using System;
namespace iotdb_client_csharp.client
{
public class Test
{
static void Main(){
// Unit Test
UnitTest unit_test = new UnitTest();
unit_test.Test();
// Session Test
SessionTest session_test = new SessionTest();
session_test.Test();

Console.WriteLine("TEST PASSED");

}

}
}
63 changes: 32 additions & 31 deletions client/SessionTest.cs → client/tests/SessionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
group: root.97209_TEST_CSHARP_CLIENT_GROUP
timeseries: root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE.TEST_CSHARP_CLIENT_TSX;
*/
namespace iotdb_client_csharp.client
namespace iotdb_client_csharp.client.test
{
public class SessionTest
{
Expand Down Expand Up @@ -659,12 +659,16 @@ public void TestInsertTablet(){
// large data test
value_lst = new List<List<string>>(){};
timestamp_lst = new List<long>(){};

for (int timestamp = 4; timestamp <= fetch_size * 4; timestamp++){
timestamp_lst.Add(timestamp);
value_lst.Add(new List<string>(){"iotdb", true.ToString(), timestamp.ToString()});
}
tablet = new Tablet(device_id, measurement_lst, datatype_lst, value_lst, timestamp_lst);
long start_ms= (DateTime.Now.Ticks / 10000);
status = session.insert_tablet(tablet);
long end_ms = (DateTime.Now.Ticks / 10000);
Console.WriteLine(string.Format("total tablet insert time is {0}", end_ms - start_ms));
res = session.execute_query_statement("select * from root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE");
res.show_table_names();
int res_count = 0;
Expand Down Expand Up @@ -838,6 +842,7 @@ public void TestTestInsertTablets(){
session.close();
Console.WriteLine("TestTestInsertTablets Passed!");
}

void TestLargeData(){
var session = new Session(host, port, user, passwd, fetch_size);
session.open(false);
Expand All @@ -858,42 +863,38 @@ void TestLargeData(){
res.next();
res_count += 1;
}

session.delete_storage_group("root.97209_TEST_CSHARP_CLIENT_GROUP");
System.Diagnostics.Debug.Assert(status == 0);
System.Diagnostics.Debug.Assert(record_inserted_count == res_count);
session.close();
Console.WriteLine("TestTestInsertTablet Passed!");
}
static void Main(){
SessionTest session_test = new SessionTest();

session_test.TestOpen();
session_test.TestClose();
session_test.TestSetAndDeleteStorageGroup();
session_test.TestCreateTimeSeries();
session_test.TestDeleteTimeSeries();
session_test.TestCreateMultiTimeSeries();
session_test.TestDeleteStorageGroups();
session_test.TestGetTimeZone();
session_test.TestInsertStrRecord();
session_test.TestInsertRecord();
session_test.TestTestInsertRecord();
session_test.TestTestInsertRecords();
session_test.TestInsertRecordsOfOneDevice();
session_test.TestCheckTimeSeriesExists();
session_test.TestSetTimeZone();
session_test.TestDeleteData();
session_test.TestNonSql();
session_test.TestSqlQuery();
session_test.TestInsertRecords();
session_test.TestInsertTablet();
session_test.TestTestInsertTablet();
session_test.TestInsertTablets();
session_test.TestTestInsertTablets();
session_test.TestLargeData();
Console.WriteLine("TEST PASSED");

public void Test(){
TestOpen();
TestClose();
TestSetAndDeleteStorageGroup();
TestCreateTimeSeries();
TestDeleteTimeSeries();
TestCreateMultiTimeSeries();
TestDeleteStorageGroups();
TestGetTimeZone();
TestInsertStrRecord();
TestInsertRecord();
TestTestInsertRecord();
TestTestInsertRecords();
TestInsertRecordsOfOneDevice();
TestCheckTimeSeriesExists();
TestSetTimeZone();
TestDeleteData();
TestNonSql();
TestSqlQuery();
TestInsertRecords();
TestInsertTablet();
TestTestInsertTablet();
TestInsertTablets();
TestTestInsertTablets();
TestLargeData();
}
}

Expand Down
98 changes: 98 additions & 0 deletions client/tests/UnitTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
using System.Collections.Generic;
using iotdb_client_csharp.client.utils;
using System;


namespace iotdb_client_csharp.client.test
{
public class UnitTest
{
public UnitTest(){}
public void Test(){
TestField();
TestRowRecord();
}
public void TestField(){
double double_val_set = 12.3, double_val_get;
int int_val_get;
string str_val_set = "12", str_val_get;
bool bool_val_get, bool_val_set;
float float_val_get;
Int64 long_val_get;


// set double
Field field = new Field(TSDataType.DOUBLE);
field.set(double_val_set);
double_val_get = (double)field.get();
System.Diagnostics.Debug.Assert(double_val_get == double_val_set);
int_val_get = field.get_int();
System.Diagnostics.Debug.Assert(int_val_get == Convert.ToInt32(double_val_set));
str_val_get = field.get_str();
System.Diagnostics.Debug.Assert(str_val_get == double_val_set.ToString());
bool_val_get = field.get_bool();
System.Diagnostics.Debug.Assert(bool_val_get == Convert.ToBoolean(double_val_set));
float_val_get = field.get_float();
System.Diagnostics.Debug.Assert(float_val_get == Convert.ToSingle(double_val_set));
long_val_get = field.get_long();
System.Diagnostics.Debug.Assert(long_val_get == Convert.ToInt64(double_val_set));

// Set Str value
field = new Field(TSDataType.TEXT);
field.set(str_val_set);
double_val_get = field.get_double();
System.Diagnostics.Debug.Assert(double_val_get == double.Parse(str_val_set));
int_val_get = field.get_int();
System.Diagnostics.Debug.Assert(int_val_get == Int32.Parse(str_val_set));
bool_val_get = field.get_bool();
System.Diagnostics.Debug.Assert(bool_val_get);
float_val_get = field.get_float();
System.Diagnostics.Debug.Assert(float_val_get == float.Parse(str_val_set));
long_val_get = field.get_long();
System.Diagnostics.Debug.Assert(long_val_get == Int64.Parse(str_val_set));

// set true
field = new Field(TSDataType.BOOLEAN);
bool_val_set = true;
field.set(bool_val_set);
double_val_get = field.get_double();
System.Diagnostics.Debug.Assert(double_val_get == Convert.ToDouble(bool_val_set));

System.Console.WriteLine("Filed Test Passed!");
}
public void TestRowRecord(){
var save_datetime = DateTime.Now;
TimeSpan ts = save_datetime - DateTime.UnixEpoch;
var row_reord = new RowRecord(Convert.ToInt64(ts.TotalMilliseconds), new List<Field>{});

// test append
row_reord.append(new Field(TSDataType.DOUBLE, 12.3));
row_reord.append(new Field(TSDataType.BOOLEAN, false));
row_reord.append(new Field(TSDataType.FLOAT, 12.3));
row_reord.append(new Field(TSDataType.INT64, 1234));
row_reord.append(new Field(TSDataType.TEXT, "TEST"));

// test indexing
var field_get = row_reord[0];
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.DOUBLE);
System.Diagnostics.Debug.Assert((double)field_get.val == 12.3);

// test indexing
row_reord[0] = new Field(TSDataType.BOOLEAN, true);
field_get = row_reord[0];
System.Diagnostics.Debug.Assert(field_get.type == TSDataType.BOOLEAN);
System.Diagnostics.Debug.Assert((bool)field_get.val == true);

// test datetime
var datetime = row_reord.get_date_time();
Console.WriteLine(datetime.ToString() == save_datetime.ToString());
System.Console.WriteLine("RowRecord Test Passed!");




}


}
}
74 changes: 66 additions & 8 deletions client/utils/Field.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,93 @@ namespace iotdb_client_csharp.client.utils
public class Field
{
// TBD By Zengz
private object val;
public object val;
public TSDataType type{get;set;}
public Field(TSDataType data_type){
this.type = data_type;
}
public Field(TSDataType data_type, object val){
this.type = data_type;
this.val = val;
}
public void set<T>(T value){
val = value;
}
public double get_double(){
return type==TSDataType.TEXT?double.Parse((string)val):(double)val;
switch(type){
case TSDataType.TEXT:
return double.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1.0:0;
case TSDataType.NONE:
return 0.0;
default:
return Convert.ToDouble(val);

}
}
public Int32 get_int(){
return type==TSDataType.TEXT?Int32.Parse((string)val):(Int32)val;
switch(type){
case TSDataType.TEXT:
return Int32.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToInt32(val);
}
}
public Int64 get_long(){
return type==TSDataType.TEXT?Int64.Parse((string)val):(Int64)val;
switch(type){
case TSDataType.TEXT:
return Int64.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToInt64(val);
}
}

public float get_float(){
return type==TSDataType.TEXT?float.Parse((string)val):(float)val;
switch(type){
case TSDataType.TEXT:
return float.Parse((string)val);
case TSDataType.BOOLEAN:
return (bool)val?1:0;
case TSDataType.NONE:
return 0;
default:
return Convert.ToSingle(val);
}
}
public bool get_bool(){
switch(type){
case TSDataType.TEXT:
try{
return Convert.ToBoolean((string)val);
}
catch(System.FormatException){
return ((string)val).Length > 0;
}
case TSDataType.NONE:
return false;
default:
return Convert.ToBoolean(val);
}

}
public string get_str(){
return val.ToString();
}
public T get<T>(){
public object get(){
switch(type){
case TSDataType.NONE :
return (T)(object)null;
return null;
default:
return (T)val;
return val;
}
}

Expand Down
2 changes: 1 addition & 1 deletion client/utils/RowRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public Field this[int index]{
get => field_lst[index];
set => field_lst[index] = value;
}
public DateTime TimeStampAsDateTime(){
public DateTime get_date_time(){
return DateTime.UnixEpoch.AddMilliseconds(timestamp);
}
public override string ToString()
Expand Down