diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_5_2.gml b/python/plugins/processing/tests/testdata/expected/dbscan_5_2.gml
new file mode 100644
index 00000000000..8892c8c7a3d
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_5_2.gml
@@ -0,0 +1,84 @@
+
+
+
+
+ -0.426063829787234-2.61063829787234
+ 9.090957446808514.22553191489362
+
+
+
+
+
+ -0.426063829787234,2.19255319148936
+ 5
+ 1
+
+
+
+
+ 1.45053191489362,1.96914893617021
+ 5
+ 1
+
+
+
+
+ 1.40585106382979,0.807446808510639
+ 5
+ 1
+
+
+
+
+ 0.199468085106383,-0.443617021276596
+ 5
+ 1
+
+
+
+
+ 3.63989361702128,0.315957446808511
+ 4
+ 1
+
+
+
+
+ 4.28776595744681,-0.823404255319149
+ 1
+ 1
+
+
+
+
+ 5.04734042553191,0.070212765957447
+ 4
+ 1
+
+
+
+
+ 6.90159574468085,0.40531914893617
+ 5
+
+
+
+
+
+ 9.09095744680851,-2.61063829787234
+ 6
+
+
+
+
+
+ 5.04734042553191,4.22553191489362
+ 8
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_5_2.xsd b/python/plugins/processing/tests/testdata/expected/dbscan_5_2.xsd
new file mode 100644
index 00000000000..354596aeddf
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_5_2.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.gml b/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.gml
new file mode 100644
index 00000000000..306be166846
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.gml
@@ -0,0 +1,84 @@
+
+
+
+
+ -0.426063829787234-2.61063829787234
+ 9.090957446808514.22553191489362
+
+
+
+
+
+ -0.426063829787234,2.19255319148936
+ 5
+ 1
+
+
+
+
+ 1.45053191489362,1.96914893617021
+ 5
+ 1
+
+
+
+
+ 1.40585106382979,0.807446808510639
+ 5
+ 1
+
+
+
+
+ 0.199468085106383,-0.443617021276596
+ 5
+ 1
+
+
+
+
+ 3.63989361702128,0.315957446808511
+ 4
+ 2
+
+
+
+
+ 4.28776595744681,-0.823404255319149
+ 1
+ 2
+
+
+
+
+ 5.04734042553191,0.070212765957447
+ 4
+ 2
+
+
+
+
+ 6.90159574468085,0.40531914893617
+ 5
+ 2
+
+
+
+
+ 9.09095744680851,-2.61063829787234
+ 6
+
+
+
+
+
+ 5.04734042553191,4.22553191489362
+ 8
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.xsd b/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.xsd
new file mode 100644
index 00000000000..1df2b2d4da1
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_multiple_clusters.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.gml b/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.gml
new file mode 100644
index 00000000000..60d4cdb35da
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.gml
@@ -0,0 +1,84 @@
+
+
+
+
+ -0.426063829787234-2.61063829787234
+ 9.090957446808514.22553191489362
+
+
+
+
+
+ -0.426063829787234,2.19255319148936
+ 5
+
+
+
+
+
+ 1.45053191489362,1.96914893617021
+ 5
+
+
+
+
+
+ 1.40585106382979,0.807446808510639
+ 5
+
+
+
+
+
+ 0.199468085106383,-0.443617021276596
+ 5
+
+
+
+
+
+ 3.63989361702128,0.315957446808511
+ 4
+
+
+
+
+
+ 4.28776595744681,-0.823404255319149
+ 1
+
+
+
+
+
+ 5.04734042553191,0.070212765957447
+ 4
+
+
+
+
+
+ 6.90159574468085,0.40531914893617
+ 5
+
+
+
+
+
+ 9.09095744680851,-2.61063829787234
+ 6
+
+
+
+
+
+ 5.04734042553191,4.22553191489362
+ 8
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.xsd b/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.xsd
new file mode 100644
index 00000000000..853b14e271e
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_no_clusters.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.gml b/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.gml
new file mode 100644
index 00000000000..759c5f3dc05
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.gml
@@ -0,0 +1,84 @@
+
+
+
+
+ -0.426063829787234-2.61063829787234
+ 9.090957446808514.22553191489362
+
+
+
+
+
+ -0.426063829787234,2.19255319148936
+ 5
+
+
+
+
+
+ 1.45053191489362,1.96914893617021
+ 5
+ 1
+
+
+
+
+ 1.40585106382979,0.807446808510639
+ 5
+ 1
+
+
+
+
+ 0.199468085106383,-0.443617021276596
+ 5
+
+
+
+
+
+ 3.63989361702128,0.315957446808511
+ 4
+ 1
+
+
+
+
+ 4.28776595744681,-0.823404255319149
+ 1
+
+
+
+
+
+ 5.04734042553191,0.070212765957447
+ 4
+
+
+
+
+
+ 6.90159574468085,0.40531914893617
+ 5
+
+
+
+
+
+ 9.09095744680851,-2.61063829787234
+ 6
+
+
+
+
+
+ 5.04734042553191,4.22553191489362
+ 8
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.xsd b/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.xsd
new file mode 100644
index 00000000000..4c246086316
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/dbscan_star_5_2.xsd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml b/python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml
index 239e1745957..d43c8289095 100644
--- a/python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml
+++ b/python/plugins/processing/tests/testdata/qgis_algorithm_tests.yaml
@@ -5728,4 +5728,64 @@ tests:
name: expected/kmeans_polys.gml
type: vector
+ - algorithm: native:dbscanclustering
+ name: DBScan 5/3
+ params:
+ DBSCAN*: false
+ EPS: 3.0
+ FIELD_NAME: CLUSTER_ID
+ INPUT:
+ name: custom/points_weighted.gml
+ type: vector
+ MIN_SIZE: 5
+ results:
+ OUTPUT:
+ name: expected/dbscan_5_2.gml
+ type: vector
+
+ - algorithm: native:dbscanclustering
+ name: DBScan* 5/3
+ params:
+ DBSCAN*: true
+ EPS: 3.0
+ FIELD_NAME: CLUSTER_ID
+ INPUT:
+ name: custom/points_weighted.gml
+ type: vector
+ MIN_SIZE: 5
+ results:
+ OUTPUT:
+ name: expected/dbscan_star_5_2.gml
+ type: vector
+
+ - algorithm: native:dbscanclustering
+ name: DBScan no clusters
+ params:
+ DBSCAN*: false
+ EPS: 1.0
+ FIELD_NAME: CLUSTER_ID
+ INPUT:
+ name: custom/points_weighted.gml
+ type: vector
+ MIN_SIZE: 5
+ results:
+ OUTPUT:
+ name: expected/dbscan_no_clusters.gml
+ type: vector
+
+ - algorithm: native:dbscanclustering
+ name: DBScan multiple clusters
+ params:
+ DBSCAN*: false
+ EPS: 2.0
+ FIELD_NAME: CLUSTER_ID
+ INPUT:
+ name: custom/points_weighted.gml
+ type: vector
+ MIN_SIZE: 3
+ results:
+ OUTPUT:
+ name: expected/dbscan_multiple_clusters.gml
+ type: vector
+
# See ../README.md for a description of the file format