Skip to content

Commit dad0969

Browse files
committed
Organize tests
1 parent b02d192 commit dad0969

File tree

8 files changed

+555
-551
lines changed

8 files changed

+555
-551
lines changed

test/adbc_column_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
defmodule Adbc.Column.Test do
2-
use ExUnit.Case
1+
defmodule Adbc.ColumnTest do
2+
use ExUnit.Case, async: true
33
doctest Adbc.Column
44

55
describe "decimals" do

test/adbc_connection_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
defmodule Adbc.Connection.Test do
2-
use ExUnit.Case
1+
defmodule Adbc.ConnectionTest do
2+
use ExUnit.Case, async: true
33
doctest Adbc.Connection
44

55
alias Adbc.Connection

test/adbc_database_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule Adbc.DatabaseTest do
2-
use ExUnit.Case
2+
use ExUnit.Case, async: true
33
doctest Adbc.Database
44
alias Adbc.Database
55

test/adbc_duckdb_test.exs

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
defmodule Adbc.DuckDBTest do
2+
use ExUnit.Case, async: true
3+
4+
alias Adbc.Connection
5+
6+
@moduletag :duckdb
7+
8+
setup do
9+
db = start_supervised!({Adbc.Database, driver: :duckdb})
10+
conn = start_supervised!({Connection, database: db})
11+
12+
%{db: db, conn: conn}
13+
end
14+
15+
test "error", %{conn: conn} do
16+
assert {:error, %Adbc.Error{} = error} =
17+
Adbc.Connection.query(conn, "SELECT * from $1", ["foo"])
18+
19+
assert Exception.message(error) =~ "Parser Error"
20+
end
21+
22+
test "structs", %{conn: conn} do
23+
assert %Adbc.Result{
24+
data: [
25+
%Adbc.Column{
26+
name: "struct_pack(col1 := 1, col2 := 2)",
27+
type:
28+
{:struct,
29+
[
30+
%Adbc.Column{
31+
name: "col1",
32+
type: :s32,
33+
nullable: true,
34+
metadata: nil,
35+
data: nil,
36+
length: nil,
37+
offset: nil
38+
},
39+
%Adbc.Column{
40+
name: "col2",
41+
type: :s32,
42+
nullable: true,
43+
metadata: nil,
44+
data: nil,
45+
length: nil,
46+
offset: nil
47+
}
48+
]}
49+
}
50+
],
51+
num_rows: 0
52+
} = Adbc.Connection.query!(conn, "SELECT struct_pack(col1 := 1, col2 := 2)")
53+
end
54+
55+
test "decimal128", %{conn: conn} do
56+
d1 = Decimal.new("1.2345678912345678912345678912345678912")
57+
d2 = Decimal.new("-1.2345678912345678912345678912345678912")
58+
d5 = Decimal.new("9876543210987654321098765432109876543.2")
59+
d6 = Decimal.new("-9876543210987654321098765432109876543.2")
60+
d7 = Decimal.new("1E-37")
61+
62+
assert {:ok,
63+
results = %Adbc.Result{
64+
data: [
65+
%Adbc.Column{
66+
name: "d1",
67+
type: {:decimal, 128, 38, 37},
68+
metadata: nil,
69+
nullable: true
70+
},
71+
%Adbc.Column{
72+
name: "d2",
73+
type: {:decimal, 128, 38, 37},
74+
metadata: nil,
75+
nullable: true
76+
},
77+
%Adbc.Column{
78+
name: "d3",
79+
type: :f64,
80+
metadata: nil,
81+
nullable: true
82+
},
83+
%Adbc.Column{
84+
name: "d4",
85+
type: :f64,
86+
metadata: nil,
87+
nullable: true
88+
},
89+
%Adbc.Column{
90+
name: "d5",
91+
type: {:decimal, 128, 38, 1},
92+
metadata: nil,
93+
nullable: true
94+
},
95+
%Adbc.Column{
96+
name: "d6",
97+
type: {:decimal, 128, 38, 1},
98+
metadata: nil,
99+
nullable: true
100+
},
101+
%Adbc.Column{
102+
name: "d7",
103+
type: {:decimal, 128, 38, 37},
104+
metadata: nil,
105+
nullable: true
106+
}
107+
]
108+
}} =
109+
Connection.query(
110+
conn,
111+
"""
112+
SELECT
113+
1.2345678912345678912345678912345678912 as d1,
114+
-1.2345678912345678912345678912345678912 as d2,
115+
1.23456789123456789123456789123456789123 as d3,
116+
-1.23456789123456789123456789123456789123 as d4,
117+
9876543210987654321098765432109876543.2 as d5,
118+
-9876543210987654321098765432109876543.2 as d6,
119+
0.0000000000000000000000000000000000001 as d7,
120+
"""
121+
)
122+
123+
assert %Adbc.Result{
124+
data: [
125+
%Adbc.Column{
126+
name: "d1",
127+
type: {:decimal, 128, 38, 37},
128+
nullable: true,
129+
metadata: nil,
130+
data: [^d1]
131+
},
132+
%Adbc.Column{
133+
name: "d2",
134+
type: {:decimal, 128, 38, 37},
135+
nullable: true,
136+
metadata: nil,
137+
data: [^d2]
138+
},
139+
%Adbc.Column{
140+
name: "d3",
141+
type: :f64,
142+
nullable: true,
143+
metadata: nil,
144+
data: [1.234567891234568]
145+
},
146+
%Adbc.Column{
147+
name: "d4",
148+
type: :f64,
149+
nullable: true,
150+
metadata: nil,
151+
data: [-1.234567891234568]
152+
},
153+
%Adbc.Column{
154+
name: "d5",
155+
type: {:decimal, 128, 38, 1},
156+
nullable: true,
157+
metadata: nil,
158+
data: [^d5]
159+
},
160+
%Adbc.Column{
161+
name: "d6",
162+
type: {:decimal, 128, 38, 1},
163+
nullable: true,
164+
metadata: nil,
165+
data: [^d6]
166+
},
167+
%Adbc.Column{
168+
name: "d7",
169+
type: {:decimal, 128, 38, 37},
170+
nullable: true,
171+
metadata: nil,
172+
data: [^d7]
173+
}
174+
]
175+
} = Adbc.Result.materialize(results)
176+
end
177+
end

0 commit comments

Comments
 (0)