Skip to content
Snippets Groups Projects
Commit 770b259f authored by Alexander Kreft's avatar Alexander Kreft
Browse files

TST: Add tests for properties

parent 95c59497
No related branches found
No related tags found
1 merge request!11F get value
Pipeline #13169 failed
......@@ -166,11 +166,94 @@ using CaosDB
) == "Property3"
end
@testset "Datatype and values" begin
# TODO(hernik, daniel) tests for some kinds of datatypes and
# values. We probably don't need all since the actual
# functions are already being tested in the C++ client but at
# least some strings, numbers, and lists thereof should be
# tested here, too
@testset "Property values and datatypes" begin
@testset "Entity properties" begin
int_prop = CaosDB.Entity.create_property_entity(name="IntProp", datatype="INTEGER")
double_prop = CaosDB.Entity.create_property_entity(name="DoubleProp", datatype="DOUBLE")
bool_prop = CaosDB.Entity.create_property_entity(name="BoolProp", datatype="BOOLEAN")
string_prop = CaosDB.Entity.create_property_entity(name="StringProp", datatype="TEXT")
CaosDB.Entity.set_value(int_prop, 123)
CaosDB.Entity.set_value(double_prop, 10.246)
CaosDB.Entity.set_value(bool_prop, true)
CaosDB.Entity.set_value(string_prop, "Hello World")
@test CaosDB.Entity.get_value(int_prop) == 123
@test CaosDB.Entity.get_value(double_prop) == 10.246
@test CaosDB.Entity.get_value(bool_prop) === true
@test CaosDB.Entity.get_value(string_prop) == "Hello World"
@test isa(CaosDB.Entity.get_value(int_prop), Integer)
@test isa(CaosDB.Entity.get_value(double_prop), Number)
@test isa(CaosDB.Entity.get_value(bool_prop), Bool)
@test isa(CaosDB.Entity.get_value(string_prop), String)
@test CaosDB.Entity.get_datatype(int_prop) == ("INTEGER", false, false)
@test CaosDB.Entity.get_datatype(double_prop) == ("DOUBLE", false, false)
@test CaosDB.Entity.get_datatype(bool_prop) == ("BOOLEAN", false, false)
@test CaosDB.Entity.get_datatype(string_prop) == ("TEXT", false, false)
""" Test lists """
int_list_prop = CaosDB.Entity.create_property_entity(name="IntProp", datatype="INTEGER", is_list=true)
double_list_prop = CaosDB.Entity.create_property_entity(name="DoubleProp", datatype="DOUBLE", is_list=true)
bool_list_prop = CaosDB.Entity.create_property_entity(name="BoolProp", datatype="BOOLEAN", is_list=true)
string_list_prop = CaosDB.Entity.create_property_entity(name="StringProp", datatype="TEXT", is_list=true)
CaosDB.Entity.set_value(int_list_prop, [123, 456])
CaosDB.Entity.set_value(double_list_prop, [10.246, 3.14])
CaosDB.Entity.set_value(bool_list_prop, [true, false])
CaosDB.Entity.set_value(string_list_prop, ["Hello", "World"])
@test CaosDB.Entity.get_value(int_list_prop) == [123, 456]
@test CaosDB.Entity.get_value(double_list_prop) == [10.246, 3.14]
@test CaosDB.Entity.get_value(bool_list_prop) === [true, false]
@test CaosDB.Entity.get_value(string_list_prop) == ["Hello", "World"]
@test isa(CaosDB.Entity.get_value(int_list_prop), Vector{Cint})
@test isa(CaosDB.Entity.get_value(double_list_prop), Vector{Cdouble})
@test isa(CaosDB.Entity.get_value(bool_list_prop), Vector{Bool})
@test isa(CaosDB.Entity.get_value(string_list_prop), Vector{String})
@test CaosDB.Entity.get_datatype(int_list_prop) == ("INTEGER", false, true)
@test CaosDB.Entity.get_datatype(double_list_prop) == ("DOUBLE", false, true)
@test CaosDB.Entity.get_datatype(bool_list_prop) == ("BOOLEAN", false, true)
@test CaosDB.Entity.get_datatype(string_list_prop) == ("TEXT", false, true)
end
@testset "Property properties" begin
int_prop = CaosDB.Entity.create_property(name="IntProp", datatype="INTEGER")
double_prop = CaosDB.Entity.create_property(name="DoubleProp", datatype="DOUBLE")
bool_prop = CaosDB.Entity.create_property(name="BoolProp", datatype="BOOLEAN")
string_prop = CaosDB.Entity.create_property(name="StringProp", datatype="TEXT")
CaosDB.Entity.set_value(int_prop, 123)
CaosDB.Entity.set_value(double_prop, 10.246)
CaosDB.Entity.set_value(bool_prop, true)
CaosDB.Entity.set_value(string_prop, "Hello World")
@test CaosDB.Entity.get_value(int_prop) == 123
@test CaosDB.Entity.get_value(double_prop) == 10.246
@test CaosDB.Entity.get_value(bool_prop) === true
@test CaosDB.Entity.get_value(string_prop) == "Hello World"
@test isa(CaosDB.Entity.get_value(int_prop), Integer)
@test isa(CaosDB.Entity.get_value(double_prop), Number)
@test isa(CaosDB.Entity.get_value(bool_prop), Bool)
@test isa(CaosDB.Entity.get_value(string_prop), String)
@test CaosDB.Entity.get_datatype(int_prop) == ("INTEGER", false, false)
@test CaosDB.Entity.get_datatype(double_prop) == ("DOUBLE", false, false)
@test CaosDB.Entity.get_datatype(bool_prop) == ("BOOLEAN", false, false)
@test CaosDB.Entity.get_datatype(string_prop) == ("TEXT", false, false)
""" Test lists """
int_list_prop = CaosDB.Entity.create_property(name="IntProp", datatype="INTEGER", is_list=true)
double_list_prop = CaosDB.Entity.create_property(name="DoubleProp", datatype="DOUBLE", is_list=true)
bool_list_prop = CaosDB.Entity.create_property(name="BoolProp", datatype="BOOLEAN", is_list=true)
string_list_prop = CaosDB.Entity.create_property(name="StringProp", datatype="TEXT", is_list=true)
CaosDB.Entity.set_value(int_list_prop, [123, 456])
CaosDB.Entity.set_value(double_list_prop, [10.246, 3.14])
CaosDB.Entity.set_value(bool_list_prop, [true, false])
CaosDB.Entity.set_value(string_list_prop, ["Hello", "World"])
@test CaosDB.Entity.get_value(int_list_prop) == [123, 456]
@test CaosDB.Entity.get_value(double_list_prop) == [10.246, 3.14]
@test CaosDB.Entity.get_value(bool_list_prop) === [true, false]
@test CaosDB.Entity.get_value(string_list_prop) == ["Hello", "World"]
@test isa(CaosDB.Entity.get_value(int_list_prop), Vector{Cint})
@test isa(CaosDB.Entity.get_value(double_list_prop), Vector{Cdouble})
@test isa(CaosDB.Entity.get_value(bool_list_prop), Vector{Bool})
@test isa(CaosDB.Entity.get_value(string_list_prop), Vector{String})
@test CaosDB.Entity.get_datatype(int_list_prop) == ("INTEGER", false, true)
@test CaosDB.Entity.get_datatype(double_list_prop) == ("DOUBLE", false, true)
@test CaosDB.Entity.get_datatype(bool_list_prop) == ("BOOLEAN", false, true)
@test CaosDB.Entity.get_datatype(string_list_prop) == ("TEXT", false, true)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment