@@ -47,6 +47,14 @@ database2 = Database(DB(filename))
4747 end
4848 ). Bytes) == 1059546140
4949
50+ @test first ((
51+ @from i in database. Track begin
52+ @orderby i. Bytes, descending (i. Name)
53+ @select {i. TrackId, i. Name, i. Bytes}
54+ @collect DataTable
55+ end
56+ ). Bytes) == 38747
57+
5058@test database. Artist |>
5159 @join (database. Album, _. ArtistId, _. ArtistId, {_. ArtistId, __. AlbumId}) |>
5260 DataTable |>
@@ -58,6 +66,12 @@ database2 = Database(DB(filename))
5866 collect |>
5967 first). Count == 10
6068
69+ @test (database. Track |>
70+ @map ({_. Name, _. Milliseconds, _. Bytes, _. AlbumId}) |>
71+ @filter (_. AlbumId == 1 ) |>
72+ collect |>
73+ first). Name == " For Those About To Rock (We Salute You)"
74+
6175end
6276
6377@testset " Systematic tests" begin
@@ -69,39 +83,67 @@ execute!(Stmt(connection, """
6983 CREATE TABLE test (
7084 a Int,
7185 b Int,
72- c Int
86+ c Int,
87+ d Text,
88+ e Int
7389 )""" ))
7490execute! (Stmt (connection, """
75- INSERT INTO test VALUES(0, 1, -1)
91+ INSERT INTO test VALUES(0, 1, -1, "ab", NULL )
7692""" ))
7793database = Database (connection)
7894result =
7995 database. test |>
8096 @map ({
81- c = _. a == _. b,
82- d = _. a != _. b,
83- e = ! (_. a),
84- f = _. a & _. b,
85- g = _. a | _. b,
86- h = _. a * _. b,
87- i = _. a + _. b,
88- j = _. a % _. b,
89- k = abs (_. c),
90- l = _. a in (0 , 1 )
97+ equals_test = _. a == _. b,
98+ not_equals_test = _. a != _. b,
99+ not_test = ! (_. a),
100+ and_test = _. a & _. b,
101+ or_test = _. a | _. b,
102+ times_test = _. a * _. b,
103+ plus_test = _. a + _. b,
104+ mod_test = _. a % _. b,
105+ abs_test = abs (_. c),
106+ in_test = _. a in (0 , 1 ),
107+ coalesce_test = coalesce (_. e, _. a),
108+ if_else_test_1 = if_else (_. b, 1 , 0 ),
109+ if_else_test_2 = if_else (1 , _. b, 0 ),
110+ if_else_test_3 = if_else (0 , 1 , _. a),
111+ if_else_test_4 = if_else (0 , _. b, _. a),
112+ if_else_test_5 = if_else (_. a, 1 , _. a),
113+ if_else_test_6 = if_else (_. b, _. b, 0 ),
114+ if_else_test_7 = if_else (_. b, _. b, _. a),
115+ ismissing_test = ismissing (_. e),
116+ max_test = max (_. b, 0 ),
117+ min_test = min (_. a, 1 ),
118+ occursin_test = occursin (r" a.*" , _. d),
119+ uppercase_test = uppercase (_. d)
91120 }) |>
92121 collect |>
93122 first
94123
95- @test result. c == 0
96- @test result. d == 1
97- @test result. e == 1
98- @test result. f == 0
99- @test result. g == 1
100- @test result. h == 0
101- @test result. i == 1
102- @test result. j == 0
103- @test result. k == 1
104- @test result. l == 1
124+ @test result. equals_test == 0
125+ @test result. not_equals_test == 1
126+ @test result. not_test == 1
127+ @test result. and_test == 0
128+ @test result. or_test == 1
129+ @test result. times_test == 0
130+ @test result. plus_test == 1
131+ @test result. mod_test == 0
132+ @test result. abs_test == 1
133+ @test result. in_test == 1
134+ @test result. coalesce_test == 0
135+ @test result. if_else_test_1 == 1
136+ @test result. if_else_test_2 == 1
137+ @test result. if_else_test_3 == 0
138+ @test result. if_else_test_4 == 0
139+ @test result. if_else_test_5 == 0
140+ @test result. if_else_test_6 == 1
141+ @test result. if_else_test_7 == 1
142+ @test result. ismissing_test == 1
143+ @test result. max_test == 1
144+ @test result. min_test == 0
145+ @test result. occursin_test == 1
146+ @test result. uppercase_test == " AB"
105147
106148drop! (connection, " test" )
107149
0 commit comments