Skip to content

Commit 382b865

Browse files
authored
Ele 5122 cli stop using deprecated tests (#2022)
* add the former deprecated tests project from the package to the CLI as the e2e project * e2e project models: remove stage ifs * remove irrelevant macros * test-warehouse: change CI to use a static dbt project rather than the deprecated package tests * fixes * bugfix * add deps * test-warehouse: fix packages for e2e project * forgot to update packages * generate data before seeding * full refresh seeds
1 parent 440fd9d commit 382b865

File tree

55 files changed

+1849
-32
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1849
-32
lines changed

.github/workflows/test-warehouse.yml

Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,6 @@ on:
2626
type: string
2727
required: false
2828
description: dbt's version to test with
29-
should-run-tests:
30-
type: boolean
31-
required: false
32-
default: true
33-
description: Whether to run E2E tests
34-
clear-tests:
35-
type: boolean
36-
required: false
37-
default: true
38-
description: Whether to clean test environment
3929
generate-data:
4030
type: boolean
4131
required: false
@@ -47,10 +37,6 @@ on:
4737
warehouse-type:
4838
type: string
4939
required: true
50-
should-run-tests:
51-
type: boolean
52-
required: false
53-
default: true
5440
elementary-ref:
5541
type: string
5642
required: false
@@ -60,19 +46,16 @@ on:
6046
dbt-version:
6147
type: string
6248
required: false
63-
clear-tests:
64-
type: boolean
65-
required: false
66-
default: true
6749
generate-data:
6850
type: boolean
6951
required: false
7052
default: false
7153

7254
env:
7355
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
74-
DBT_PKG_INTEG_TESTS_DIR: ${{ github.workspace }}/dbt-data-reliability/integration_tests/deprecated_tests
75-
ELMENTARY_INTERNAL_DBT_PKG_DIR: ${{ github.workspace }}/elementary/elementary/monitor/dbt_project
56+
ELEMENTARY_DBT_PACKAGE_PATH: ${{ github.workspace }}/dbt-data-reliability
57+
CLI_INTERNAL_DBT_PKG_DIR: ${{ github.workspace }}/elementary/elementary/monitor/dbt_project
58+
E2E_DBT_PROJECT_DIR: ${{ github.workspace }}/elementary/tests/e2e_dbt_project
7659

7760
jobs:
7861
# PRs from forks require approval, specifically with the "pull_request_target" event as it contains repo secrets.
@@ -117,12 +100,12 @@ jobs:
117100

118101
- name: Start Postgres
119102
if: inputs.warehouse-type == 'postgres'
120-
working-directory: ${{ env.DBT_PKG_INTEG_TESTS_DIR }}
103+
working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
121104
run: docker compose up -d postgres
122105

123106
# - name: Start Clickhouse
124107
# if: inputs.warehouse-type == 'clickhouse'
125-
# working-directory: ${{ env.DBT_PKG_INTEG_TESTS_DIR }}
108+
# working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
126109
# run: docker compose up -d clickhouse
127110

128111
- name: Setup Python
@@ -170,12 +153,46 @@ jobs:
170153
rm -rf "$DBT_PKGS_PATH/elementary"
171154
ln -vs "$GITHUB_WORKSPACE/dbt-data-reliability" "$DBT_PKGS_PATH/elementary"
172155
173-
- name: Run dbt package integration tests
174-
if: github.event_name != 'workflow_dispatch' || inputs.should-run-tests
175-
working-directory: ${{ env.DBT_PKG_INTEG_TESTS_DIR }}
156+
- name: Run deps for E2E dbt project
157+
working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
158+
env:
159+
ELEMENTARY_DBT_PACKAGE_PATH: ${{ env.ELEMENTARY_DBT_PACKAGE_PATH }}
176160
run: |
177161
dbt deps
178-
python run_e2e_tests.py -t "${{ inputs.warehouse-type }}" -g "${{ inputs.warehouse-type == 'postgres' || inputs.generate-data }}" --clear-tests "${{ inputs.clear-tests }}"
162+
163+
- name: Seed e2e dbt project
164+
working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
165+
if: inputs.warehouse-type == 'postgres' || inputs.generate-data
166+
run: |
167+
python generate_data.py
168+
dbt seed -f --target "${{ inputs.warehouse-type }}"
169+
170+
- name: Run e2e dbt project
171+
working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
172+
run: |
173+
dbt run --target "${{ inputs.warehouse-type }}" || true
174+
175+
# Validate run_results.json: only error_model should be non-success
176+
jq -e '
177+
[.results[] | select(.status != "success") | .unique_id]
178+
| length == 1 and .[0] == "model.elementary_integration_tests.error_model"
179+
' target/run_results.json > /dev/null
180+
jq_exit=$?
181+
182+
if [ $jq_exit -eq 0 ]; then
183+
echo "✅ Validation passed: only error_model failed."
184+
else
185+
echo "❌ Validation failed. Unexpected failures:"
186+
jq '[.results[] | select(.status != "success") | .unique_id] | join(", ")' target/run_results.json
187+
fi
188+
189+
exit $jq_exit
190+
191+
- name: Test e2e dbt project
192+
working-directory: ${{ env.E2E_DBT_PROJECT_DIR }}
193+
continue-on-error: true
194+
run: |
195+
dbt test --target "${{ inputs.warehouse-type }}"
179196
180197
- name: Run help
181198
run: edr --help
@@ -187,12 +204,12 @@ jobs:
187204
edr monitor
188205
-t "${{ inputs.warehouse-type }}"
189206
--group-by table
190-
--project-dir "${{ env.DBT_PKG_INTEG_TESTS_DIR }}"
207+
--project-dir "${{ env.E2E_DBT_PROJECT_DIR }}"
191208
--project-profile-target "${{ inputs.warehouse-type }}"
192209
--slack-webhook "$SLACK_WEBHOOK"
193210
194211
- name: Validate alerts statuses were updated
195-
working-directory: ${{ env.ELMENTARY_INTERNAL_DBT_PKG_DIR }}
212+
working-directory: ${{ env.CLI_INTERNAL_DBT_PKG_DIR }}
196213
run: |
197214
dbt deps
198215
dbt run-operation validate_alert_statuses_are_updated -t "${{ inputs.warehouse-type }}"
@@ -201,7 +218,7 @@ jobs:
201218
run: >
202219
edr monitor report
203220
-t "${{ inputs.warehouse-type }}"
204-
--project-dir "${{ env.DBT_PKG_INTEG_TESTS_DIR }}"
221+
--project-dir "${{ env.E2E_DBT_PROJECT_DIR }}"
205222
--project-profile-target "${{ inputs.warehouse-type }}"
206223
207224
- name: Set report artifact name
@@ -230,7 +247,7 @@ jobs:
230247
run: >
231248
edr monitor send-report
232249
-t "${{ inputs.warehouse-type }}"
233-
--project-dir "${{ env.DBT_PKG_INTEG_TESTS_DIR }}"
250+
--project-dir "${{ env.E2E_DBT_PROJECT_DIR }}"
234251
--project-profile-target "${{ inputs.warehouse-type }}"
235252
--slack-file-name "report_${{ inputs.warehouse-type }}_${{ env.BRANCH_NAME }}.html"
236253
--slack-token "$SLACK_TOKEN"
@@ -259,5 +276,4 @@ jobs:
259276
path: elementary/edr_target/edr.log
260277

261278
- name: Run Python package e2e tests
262-
if: github.event_name != 'workflow_dispatch' || inputs.should-run-tests
263279
run: pytest -vv tests/e2e --warehouse-type ${{ inputs.warehouse-type }}

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,4 @@ venv/
9696

9797
# elementary outputs
9898
edr_target/
99-
tests/tests_with_db/dbt_project/dbt_packages/
99+
**/dbt_packages/

tests/e2e_dbt_project/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This dbt project is intended for our CLI e2e.
2+
The "edr report" and "edr monitor" commands in `test-warehouse.yml` will run on the data generated by this project.

tests/e2e_dbt_project/data/training/any_type_column_anomalies_training.csv

Whitespace-only changes.

tests/e2e_dbt_project/data/training/backfill_days_column_anomalies_training.csv

Whitespace-only changes.

tests/e2e_dbt_project/data/training/dimension_anomalies_training.csv

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
group_a,group_b,group_c,group_d
2+
Poland,Netherlands,Spain,Ukraine
3+
Greece,Denmark,Italy,Sweden
4+
Russia,Germany,Ireland,France
5+
Czech Republic,Portugal,Croatia,England

tests/e2e_dbt_project/data/training/numeric_column_anomalies_training.csv

Whitespace-only changes.
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
Player,Team,Goals,shots_on_target,Passes,Shots_without_scoring,Crosses,Tackles,Interceptions,Goals_conceded,Saves_made,Offsides,Yellow_cards
2+
Darijo Srna,Croatia,,,,,16,13,,,,,
3+
Gordon Schildenfeld,Croatia,,,,,,,,,,,
4+
Ivan Perisic,Croatia,,,,,,,,,,,
5+
Ivan Rakitic,Croatia,,,,,,,,,,,
6+
Ivan Strinic,Croatia,,,,,14,,,,,,
7+
Luka Modric,Croatia,,,,,,,,,,,
8+
Mario Mandzukic,Croatia,3,4,,,,,,,,,
9+
Nikica Jelavic,Croatia,,,,,,,,,,,
10+
Stipe Pletikosa,Croatia,,,,,,,,3,13,,
11+
Vedran Corluka,Croatia,,,,,,,,,,,
12+
David Limbersky,Czech Republic,,,,,,,,,,,2
13+
Jaroslav Plasil,Czech Republic,,,,,,,,,,,
14+
Michal Kadlec,Czech Republic,,,,,,,,,,,
15+
Milan Baros,Czech Republic,,,,,,,,,,3,
16+
Petr Cech,Czech Republic,,,,,,,,6,9,,
17+
Petr Jiracek,Czech Republic,2,,,,,,,,,,
18+
Theodor Gebre Selassie,Czech Republic,,,,,,,,,,,
19+
Tomás Hübschman,Czech Republic,,,,,,,12,,,,
20+
Tomas Pekhart,Czech Republic,,,,,,,,,,,
21+
Tomas Rosicky,Czech Republic,,,,,,,,,,,
22+
Tomas Sivok,Czech Republic,,,,,,,,,,,
23+
Vaclav Pilar,Czech Republic,2,4,,,,,,,,,
24+
Daniel Agger,Denmark,,,,,,,21,,,,
25+
Dennis Rommedahl,Denmark,,,,,,,,,,3,
26+
Jakob Poulsen,Denmark,,,,,,,,,,,
27+
Michael Krohn-Dehli,Denmark,2,,,,,,,,,,
28+
Nicklas Bendtner,Denmark,2,,,,,,,,,,
29+
Niki Zimling,Denmark,,,,,,,,,,,
30+
Simon Kjaer,Denmark,,,,,,,,,,,
31+
Stephan Andersen,Denmark,,,,,,,,5,10,,
32+
Tobias Mikkelsen,Denmark,,,,,,,,,,,
33+
William Kvist,Denmark,,,,,,,12,,,,
34+
Ashley Young,England,,,,,,,,,,,
35+
Danny Welbeck,England,,,,,,,,,,,
36+
Glen Johnson,England,,,,,,,,,,,
37+
James Milner,England,,,,,17,,,,,,
38+
Joe Hart,England,,,,,,,,3,22,,
39+
John Terry,England,,,,,,,14,,,,
40+
Joleon Lescott,England,,,,,,,,,,,
41+
Scott Parker,England,,,,,,13,,,,,
42+
Steven Gerrard,England,,,,,,18,,,,,
43+
Theo Walcott,England,,,,,,,,,,,
44+
Wayne Rooney,England,,,,,,,,,,,
45+
Alou Diarra,France,,,,,,15,,,,,
46+
Franck Ribéry,France,,,,6,14,,,,,,
47+
Hugo Lloris,France,,,,,,,,5,6,,
48+
Jérémy Menez,France,,4,,,,,,,,,2
49+
Karim Benzema,France,,6,,19,,,,,,3,
50+
Mathieu Debuchy,France,,,,,,,,,,,
51+
Olivier Giroud,France,,,,,,,,,,,
52+
Patrice Evra,France,,,,,,,,,,,
53+
Philippe Mexes,France,,,,,,,,,,,2
54+
Samir Nasri,France,,,,,,,,,,,
55+
Yann M'Vila,France,,,,,,,,,,,
56+
Yohan Cabaye,France,,,,,,,,,,,
57+
Andre Schürrle,Germany,,,,7,,,,,,,
58+
Bastian Schweinsteiger,Germany,,,415,,,13,,,,,
59+
Holger Badstuber,Germany,,,,,,,,,,,
60+
Jerome Boateng,Germany,,,,,17,,,,,,
61+
Manuel Neuer,Germany,,,,,,,,6,10,,
62+
Marco Reus,Germany,,4,,,,,,,,,
63+
Mario Gomez,Germany,3,,,,,,,,,3,
64+
Mats Hummels,Germany,,,,,,18,19,,,,
65+
Mesut Özil,Germany,,5,319,,17,,,,,,
66+
Miroslav Klose,Germany,,,,,,,,,,5,
67+
Philipp Lahm,Germany,,,316,,,,,,,,
68+
Sami Khedira,Germany,,,310,,,,,,,,
69+
Thomas Müller,Germany,,,,,14,,,,,,
70+
Toni Kroos,Germany,,,,,,,,,,,
71+
Dimitris Salpingidis,Greece,2,,,,,,,,,5,
72+
Georgios Samaras,Greece,,,,,,,,,,,
73+
Georgios Tzavellas,Greece,,,,,,,,,,,
74+
Giorgios Karagounis,Greece,,,,,,,,,,,2
75+
Jose Holebas,Greece,,,,,,,,,,,2
76+
Konstantinos Chalkias,Greece,,,,,,,,3,,,
77+
Konstantinos Katsouranis,Greece,,,,,,,12,,,,
78+
Kyriakos Papadopoulos,Greece,,,,,,,,,,,
79+
Michalis Sifakis,Greece,,,,,,,,4,11,,
80+
Sokratis Papastathopoulos,Greece,,,,,,,,,,,
81+
Theofanis Gekas,Greece,,,,,,,,,,3,
82+
Vassilas Torosidis,Greece,,,,,,,12,,,,
83+
Alessandro Diamanti,Italy,,,,8,,,,,,,
84+
Andrea Pirlo,Italy,,,423,,,,13,,,,
85+
Antonio Cassano,Italy,,7,,,14,,,,,3,
86+
Antonio Di Natale,Italy,,,,,,,,,,6,
87+
Christian Maggio,Italy,,,,,,,,,,,2
88+
Claudio Marchisio,Italy,,4,,11,,14,,,,,
89+
Daniele De Rossi,Italy,,,345,9,,,22,,,,
90+
Gianluigi Buffon,Italy,,,,,,,,7,20,,
91+
Giorgio Chiellini,Italy,,,,,,,16,,,,
92+
Leonardo Bonucci,Italy,,,,,,,15,,,,
93+
Mario Balotelli,Italy,3,10,,,,,,,,,
94+
Riccardo Montolivo,Italy,,,,7,,,13,,,,
95+
Thiago Motta,Italy,,,,,,,,,,,2
96+
Arjen Robben,Netherlands,,,,11,,,,,,,
97+
Ibrahim Afellay,Netherlands,,,,,,,,,,,
98+
Jetro Willems,Netherlands,,,,,,,,,,,2
99+
Johnny Heitinga,Netherlands,,,,,,,,,,,
100+
Joris Mathijsen,Netherlands,,,,,,,,,,,
101+
Maarten Stekelenburg,Netherlands,,,,,,,,5,12,,
102+
Mark van Bommel,Netherlands,,,,,,,,,,,
103+
Nigel de Jong,Netherlands,,,,,,,,,,,
104+
Rafael van der Vaart,Netherlands,,,,,,,,,,,
105+
Robin van Persie,Netherlands,,5,,,,,,,,,
106+
Ron Vlaar,Netherlands,,,,,,,,,,,
107+
Wesley Sneijder,Netherlands,,,,8,17,,,,,,
108+
Damien Perquis,Poland,,,,,,,,,,,
109+
Eugen Polanski,Poland,,,,,,16,,,,,2
110+
Jakub Blaszczykowski,Poland,,,,,,,,,,,
111+
Ludovic Obraniak,Poland,,,,,19,,,,,,
112+
Marcin Wasilewski,Poland,,,,,,,,,,,
113+
Przemyslaw Tyton,Poland,,,,,,,,,6,,
114+
Robert Lewandowski,Poland,,,,,,,,,,,
115+
Wojciech Szczesny,Poland,,,,,,,,,,,
116+
Bruno Alves,Portugal,,,,,,,,,,,
117+
Cristiano Ronaldo,Portugal,3,9,,,,,,,,,
118+
Fábio Coentrão,Portugal,,,,,18,14,,,,,2
119+
Helder Postiga,Portugal,,,,,,,,,,3,
120+
Hugo Almeida,Portugal,,,,,,,,,,5,
121+
João Moutinho,Portugal,,,,,,,15,,,,
122+
João Pereira,Portugal,,,,,,17,,,,,2
123+
Miguel Veloso,Portugal,,,,,,,,,,,2
124+
Nani,Portugal,,,,9,19,,,,,,
125+
Nélson Oliveira,Portugal,,,,,,,,,,,
126+
Pepe,Portugal,,,,,,,16,,,,
127+
Raul Meireles,Portugal,,,,,,,11,,,,
128+
Rolando,Portugal,,,,,,,,,,,
129+
Rui Patricio,Portugal,,,,,,,,4,10,,
130+
Silvestre Varela,Portugal,,,,,,,,,,,
131+
Damien Duff,Republic of Ireland,,,,,16,,,,,,
132+
Glenn Whelan,Republic of Ireland,,,,,,,,,,,
133+
Jonathan Walters,Republic of Ireland,,,,,,,,,,,
134+
Keiren Westwood,Republic of Ireland,,,,,,,,2,,,
135+
Keith Andrews,Republic of Ireland,,,,12,,,,,,,
136+
Richard Dunne,Republic of Ireland,,,,,,,,,,,
137+
Robbie Keane,Republic of Ireland,,,,,,,,,,7,
138+
Sean St Ledger,Republic of Ireland,,,,,,,,,,,2
139+
Shay Given,Republic of Ireland,,,,,,,,9,17,,
140+
Alan Dzagoev,Russia,3,,,,,,,,,,
141+
Alexander Kerzhakov,Russia,,,,14,,,,,,,
142+
Alexei Berezoutski,Russia,,,,,,,,,,,
143+
Andrey Arshavin,Russia,,,,,15,,,,,,
144+
Igor Denisov,Russia,,,303,,,,,,,,
145+
Konstantin Zyryanov,Russia,,,,,,,,,,,
146+
Roman Pavlyuchenko,Russia,,,,,,,,,,,
147+
Roman Shirokov,Russia,,,,,,,,,,,
148+
Sergei Ignashevitch,Russia,,,,,,,,,,,
149+
Vyacheslav Malafeev,Russia,,,,,,,,3,10,,
150+
Yuri Zhirkov,Russia,,,,,,,,,,,
151+
Álvaro Arbeloa,Spain,,,319,,,20,,,,3,
152+
Andrés Iniesta,Spain,,9,446,20,,,,,,,
153+
David Silva,Spain,2,8,283,,,,,,,3,
154+
Fernando Torres,Spain,3,5,,,,,,,,5,
155+
Francesc Fábregas,Spain,2,,,,,,,,,,
156+
Gerard Piqué,Spain,,,312,,,19,,,,,
157+
Iker Casillas,Spain,,,,,,,,,15,,
158+
Jesús Navas,Spain,,,,,16,,,,,,
159+
Jordi Alba,Spain,,,410,,,,,,,,
160+
Pedro,Spain,,,,,,,,,,,
161+
Sergio Busquets,Spain,,,455,,,16,18,,,,
162+
Sergio Ramos,Spain,,,394,7,,16,,,,,2
163+
Xabi Alonso,Spain,2,,585,,,16,,,,,
164+
Xavi,Spain,,,592,12,13,,,,,,
165+
Anders Svensson,Sweden,,,,,,,,,,,2
166+
Andreas Isaksson,Sweden,,,,,,,,5,8,,
167+
Christian Wilhelmsson,Sweden,,,,,,,,,,,
168+
Kim Källström,Sweden,,,,,,,,,,,
169+
Ola Toivonen,Sweden,,,,,,,,,,3,
170+
Olof Mellberg,Sweden,,,,,,,,,,,
171+
Samuel Holmén,Sweden,,,,,,,,,,,
172+
Sebastian Larsson,Sweden,,4,,,,,,,,,
173+
Zlatan Ibrahimovic,Sweden,2,7,,,,,,,,,
174+
Anatoliy Tymoshchuk,Ukraine,,,,,,14,,,,,2
175+
Andriy Pyatov,Ukraine,,,,,,,,4,13,,
176+
Andriy Shevchenko,Ukraine,2,,,,,,,,,,
177+
Andriy Yarmolenko,Ukraine,,,,,,,,,,,
178+
Yevgen Selin,Ukraine,,,,,,,,,,,
179+
Yevhen Khacheridi,Ukraine,,,,,,,,,,,
180+
Yevhen Konoplyanka,Ukraine,,,,13,,,,,,,
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Team,Goals,Shots_on_target,Shots_off_target,Total_shots,Hit_Woodwork,Penalty_goals,Penalties_not_scored,Headed_goals,Passes,Passes_completed,Touches,Crosses,Dribbles,Corners_Taken,Tackles,Clearances,Interceptions,Clearances_off_line,Clean_Sheets,Blocks,Goals_conceded,Saves_made,Fouls_Won,Fouls_Conceded,Offsides,Yellow_Cards,Red_Cards,Subs_on,Subs_off,Players_Used
2+
Croatia,4,13,12,32,0,0,0,2,1076,828,1706,60,42,14,49,83,56,,0,10,3,13,41,62,2,9,0,9,9,16
3+
Czech Republic,4,13,18,39,0,0,0,0,1565,1223,2358,46,68,21,62,98,37,2,1,10,6,9,53,73,8,7,0,11,11,19
4+
Denmark,4,10,10,27,1,0,0,3,1298,1082,1873,43,32,16,40,61,59,0,1,10,5,10,25,38,8,4,0,7,7,15
5+
England,5,11,18,40,0,0,0,3,1488,1200,2440,58,60,16,86,106,72,1,2,29,3,22,43,45,6,5,0,11,11,16
6+
France,3,22,24,65,1,0,0,0,2066,1803,2909,55,76,28,71,76,58,0,1,7,5,6,36,51,5,6,0,11,11,19
7+
Germany,10,32,32,80,2,1,0,2,2774,2427,3761,101,60,35,91,73,69,0,1,11,6,10,63,49,12,4,0,15,15,17
8+
Greece,5,8,18,32,1,1,1,0,1187,911,2016,52,53,10,65,123,87,0,1,23,7,13,67,48,12,9,1,12,12,20
9+
Italy,6,34,45,110,2,0,0,2,3016,2531,4363,75,75,30,98,137,136,1,2,18,7,20,101,89,16,16,0,18,18,19
10+
Netherlands,2,12,36,60,2,0,0,0,1556,1381,2163,50,49,22,34,41,41,0,0,9,5,12,35,30,3,5,0,7,7,15
11+
Poland,2,15,23,48,0,0,0,1,1059,852,1724,55,39,14,67,87,62,0,0,8,3,6,48,56,3,7,1,7,7,17
12+
Portugal,6,22,42,82,6,0,0,2,1891,1461,2958,91,64,41,78,92,86,0,2,11,4,10,73,90,10,12,0,14,14,16
13+
Republic of Ireland,1,7,12,28,0,0,0,1,851,606,1433,43,18,8,45,78,43,1,0,23,9,17,43,51,11,6,1,10,10,17
14+
Russia,5,9,31,59,2,0,0,1,1602,1345,2278,40,40,21,65,74,58,0,0,8,3,10,34,43,4,6,0,7,7,16
15+
Spain,12,42,33,100,0,1,0,2,4317,3820,5585,69,106,44,122,102,79,0,5,8,1,15,102,83,19,11,0,17,17,18
16+
Sweden,5,17,19,39,3,0,0,1,1192,965,1806,44,29,7,56,54,45,0,1,12,5,8,35,51,7,7,0,9,9,18
17+
Ukraine,2,7,26,38,0,0,0,2,1276,1043,1894,33,26,18,65,97,29,0,0,4,4,13,48,31,4,5,0,9,9,18

0 commit comments

Comments
 (0)