diff --git a/domace-naloge.iml b/domace-naloge.iml
index bf6e310..20bb6b1 100644
--- a/domace-naloge.iml
+++ b/domace-naloge.iml
@@ -18,5 +18,15 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar
new file mode 100644
index 0000000..9d5fe16
Binary files /dev/null and b/lib/hamcrest-core-1.3.jar differ
diff --git a/lib/junit-4.13.1.jar b/lib/junit-4.13.1.jar
new file mode 100644
index 0000000..b376ffc
Binary files /dev/null and b/lib/junit-4.13.1.jar differ
diff --git a/src/DN09.java b/src/DN09.java
new file mode 100644
index 0000000..730ca82
--- /dev/null
+++ b/src/DN09.java
@@ -0,0 +1,354 @@
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.Scanner;
+
+public class DN09 {
+ public static void main(String[] args) {
+ if (args.length == 0) {
+ System.out.println("Ukaz manjka");
+ return;
+ }
+
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek(args[1], args[2]);
+ assert tekmovanje != null;
+
+ switch (args[0]) {
+ case "izpisiTekmovanje":
+ tekmovanje.izpisiTekmovalce();
+ System.out.println();
+ tekmovanje.izpisiGlasove();
+ break;
+
+ case "izpisiTocke":
+ tekmovanje.izpisiGlasove();
+ break;
+
+ case "najboljse":
+ tekmovanje.izpisiRezultateUrejeno(Integer.parseInt(args[3]));
+ break;
+
+ case "utezeno":
+ tekmovanje.setKriterij(new UtezeniKriterij(Float.parseFloat(args[4]), Float.parseFloat(args[5])));
+ tekmovanje.izpisiRezultateUrejeno(Integer.parseInt(args[3]));
+ break;
+
+ default:
+ System.out.println("Neznan ukaz " + args[0]);
+ }
+ }
+}
+
+class Tekmovalec {
+ private String drzava, izvajalec, naslovPesmi;
+
+ Tekmovalec(String drzava, String izvajalec, String naslovPesmi) {
+ this.drzava = drzava;
+ this.izvajalec = izvajalec;
+ this.naslovPesmi = naslovPesmi;
+ }
+
+ String getDrzava() {
+ return drzava;
+ }
+
+ String getIzvajalec() {
+ return izvajalec;
+ }
+
+ String getNaslovPesmi() {
+ return naslovPesmi;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("(%s) %s - %s", drzava, izvajalec, naslovPesmi);
+ }
+}
+
+class Glas {
+ private String odDrzave, zaDrzavo;
+ private int stTock;
+
+ Glas(String odDrzave, String zaDrzavo, int stTock) {
+ this.odDrzave = odDrzave;
+ this.zaDrzavo = zaDrzavo;
+ this.stTock = stTock;
+ }
+
+ public String getOdDrzave() {
+ return odDrzave;
+ }
+
+ public String getZaDrzavo() {
+ return zaDrzavo;
+ }
+
+ public int getStTock() {
+ return stTock;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s --%dt-> %s", odDrzave, stTock, zaDrzavo);
+ }
+}
+
+class Tekmovanje {
+ private ArrayList seznamTekmovalcev;
+ private ArrayList seznamGlasov;
+ private Kriterij kriterij;
+ private boolean urejeno = false;
+
+ Tekmovanje(ArrayList seznamTekmovalcev, ArrayList seznamGlasov) {
+ this.seznamTekmovalcev = seznamTekmovalcev;
+ this.seznamGlasov = seznamGlasov;
+ this.kriterij = new OsnovniKriterij();
+ }
+
+ static Tekmovanje izDatotek(String datotekaTekmovalci, String datotekaGlasovi) {
+ Scanner scannerTekmovalci, scannerGlasovi;
+
+ try {
+ scannerTekmovalci = new Scanner(new File(datotekaTekmovalci));
+ scannerGlasovi = new Scanner(new File(datotekaGlasovi));
+ } catch (FileNotFoundException e) {
+ return null;
+ }
+
+ scannerTekmovalci.nextLine();
+ scannerGlasovi.nextLine();
+
+ ArrayList seznamTekmovalcev = new ArrayList<>();
+ while (scannerTekmovalci.hasNextLine()) {
+ String[] fields = scannerTekmovalci.nextLine().split(";");
+ seznamTekmovalcev.add(new Tekmovalec(fields[1], fields[2], fields[3]));
+ }
+
+ ArrayList seznamGlasov = new ArrayList<>();
+ while (scannerGlasovi.hasNextLine()) {
+ String[] fields = scannerGlasovi.nextLine().split(";");
+ switch (fields.length) {
+ case 5:
+ seznamGlasov.add(new Glas(fields[2], fields[3], Integer.parseInt(fields[4])));
+ break;
+ case 6:
+ seznamGlasov.add(new LocenGlas(fields[2], fields[3], Integer.parseInt(fields[4]),
+ Integer.parseInt(fields[5]), 0));
+ break;
+ case 7:
+ seznamGlasov.add(new LocenGlas(fields[2], fields[3], Integer.parseInt(fields[4]),
+ Integer.parseInt(fields[5]), Integer.parseInt(fields[6])));
+ break;
+ }
+ }
+
+ return new Tekmovanje(seznamTekmovalcev, seznamGlasov);
+ }
+
+ public ArrayList getSeznamTekmovalcev() {
+ return seznamTekmovalcev;
+ }
+
+ public ArrayList getSeznamGlasov() {
+ return seznamGlasov;
+ }
+
+ public void setKriterij(Kriterij kriterij) {
+ this.kriterij = kriterij;
+ urejeno = false;
+ }
+
+ void izpisiTekmovalce() {
+ if (seznamTekmovalcev.isEmpty()) {
+ System.out.println("Seznam tekmovalcev je prazen.");
+ return;
+ }
+ System.out.println("Seznam tekmovalcev:");
+ for (Tekmovalec tekmovalec : seznamTekmovalcev) {
+ System.out.println(tekmovalec);
+ }
+ }
+
+ void izpisiGlasove() {
+ if (seznamGlasov.isEmpty()) {
+ System.out.println("Seznam glasov je prazen.");
+ return;
+ }
+ System.out.println("Seznam glasov:");
+ for (Glas glas : seznamGlasov) {
+ System.out.println(glas);
+ }
+ }
+
+ int steviloTock(String drzava) {
+ return kriterij.steviloTock(this, drzava);
+ }
+
+ void izpisiTocke() {
+ if (seznamTekmovalcev.isEmpty()) {
+ System.out.println("Seznam tekmovalcev je prazen.");
+ return;
+ }
+
+ System.out.println("Seznam tekmovalcev in njihovih tock:");
+ for (Tekmovalec tekmovalec : seznamTekmovalcev) {
+ System.out.printf("%s: %dt\n", tekmovalec, steviloTock(tekmovalec.getDrzava()));
+ }
+ }
+
+ Tekmovalec getZmagovalec() {
+ int maxTocke = 0;
+ Tekmovalec maxTekmovalec = null;
+ for (Tekmovalec tekmovalec : seznamTekmovalcev) {
+ int tocke = steviloTock(tekmovalec.getDrzava());
+ if (tocke > maxTocke) {
+ maxTekmovalec = tekmovalec;
+ maxTocke = tocke;
+ }
+ }
+ return maxTekmovalec;
+ }
+
+ void urediPoTockah() {
+ seznamTekmovalcev.sort((Tekmovalec a, Tekmovalec b) ->
+ steviloTock(b.getDrzava()) - steviloTock(a.getDrzava())
+ );
+ urejeno = true;
+ }
+
+ int getMesto(String drzava) {
+ if (!urejeno) {
+ urediPoTockah();
+ }
+
+ for (Tekmovalec tekmovalec : seznamTekmovalcev) {
+ if (tekmovalec.getDrzava().equals(drzava)) {
+ return seznamTekmovalcev.indexOf(tekmovalec) + 1;
+ }
+ }
+
+ return -1;
+ }
+
+ void izpisiRezultateUrejeno(int n) {
+ if (!urejeno) {
+ urediPoTockah();
+ }
+
+ System.out.println("Najboljse uvrsceni tekmovalci:");
+ int i = 1;
+ for (Tekmovalec tekmovalec : seznamTekmovalcev) {
+ if (i > n) break;
+ System.out.printf("%d. %s: %dt\n", i, tekmovalec, steviloTock(tekmovalec.getDrzava()));
+ i++;
+ }
+ }
+}
+
+interface Kriterij {
+ int steviloTock(Tekmovanje tekmovanje, String drzava);
+}
+
+class OsnovniKriterij implements Kriterij {
+ @Override
+ public int steviloTock(Tekmovanje tekmovanje, String drzava) {
+ int tocke = 0;
+ for (Glas glas : tekmovanje.getSeznamGlasov()) {
+ if (glas.getZaDrzavo().equals(drzava)) {
+ tocke += glas.getStTock();
+ }
+ }
+ return tocke;
+ }
+}
+
+class LocenGlas extends Glas {
+ private int stTockGlasovi, stTockZirija;
+
+ public LocenGlas(String odDrzave, String zaDrzavo, int stTock, int stTockGlasovi, int stTockZirija) {
+ super(odDrzave, zaDrzavo, stTock);
+ this.stTockGlasovi = stTockGlasovi;
+ this.stTockZirija = stTockZirija;
+ }
+
+ public int getStTockGlasovi() {
+ return stTockGlasovi;
+ }
+
+ public int getStTockZirija() {
+ return stTockZirija;
+ }
+}
+
+class UtezeniKriterij implements Kriterij {
+ private float utezGlasovanja, utezZirija;
+
+ UtezeniKriterij(float utezGlasovanja, float utezZirije) {
+ this.utezGlasovanja = utezGlasovanja;
+ this.utezZirija = utezZirije;
+ }
+
+ @Override
+ public int steviloTock(Tekmovanje tekmovanje, String drzava) {
+ float tocke = 0;
+ for (Glas glas : tekmovanje.getSeznamGlasov()) {
+ if (glas.getZaDrzavo().equals(drzava)) {
+ if (glas instanceof LocenGlas locenGlas) {
+ tocke += locenGlas.getStTockZirija() * utezZirija
+ + locenGlas.getStTockGlasovi() * utezGlasovanja;
+ } else {
+ tocke += glas.getStTock() * utezZirija;
+ }
+ }
+ }
+ return Math.round(tocke);
+ }
+}
+
+class ZgodovinaTekmovanj {
+ private ArrayList seznamTekmovanj;
+
+ ZgodovinaTekmovanj(ArrayList seznamTekmovanj) {
+ this.seznamTekmovanj = seznamTekmovanj;
+ }
+
+// public static ZgodovinaTekmovanj izDatotek(String datotekaTekmovalci, String datotekaGlasovi) {
+// Scanner scannerTekmovalci, scannerGlasovi;
+//
+// try {
+// scannerTekmovalci = new Scanner(new File(datotekaTekmovalci));
+// scannerGlasovi = new Scanner(new File(datotekaGlasovi));
+// } catch (FileNotFoundException e) {
+// return null;
+// }
+//
+// scannerTekmovalci.nextLine();
+// scannerGlasovi.nextLine();
+//
+// ArrayList seznamTekmovalcev = new ArrayList<>();
+// while (scannerTekmovalci.hasNextLine()) {
+// String[] fields = scannerTekmovalci.nextLine().split(";");
+// seznamTekmovalcev.add(new Tekmovalec(fields[1], fields[2], fields[3]));
+// }
+//
+// ArrayList seznamGlasov = new ArrayList<>();
+// while (scannerGlasovi.hasNextLine()) {
+// String[] fields = scannerGlasovi.nextLine().split(";");
+// switch (fields.length) {
+// case 5:
+// seznamGlasov.add(new Glas(fields[2], fields[3], Integer.parseInt(fields[4])));
+// break;
+// case 6:
+// seznamGlasov.add(new LocenGlas(fields[2], fields[3], Integer.parseInt(fields[4]),
+// Integer.parseInt(fields[5]), 0));
+// break;
+// case 7:
+// seznamGlasov.add(new LocenGlas(fields[2], fields[3], Integer.parseInt(fields[4]),
+// Integer.parseInt(fields[5]), Integer.parseInt(fields[6])));
+// break;
+// }
+// }
+// }
+
+}
\ No newline at end of file
diff --git a/src/DN09Test01.java b/src/DN09Test01.java
new file mode 100644
index 0000000..6ab7e40
--- /dev/null
+++ b/src/DN09Test01.java
@@ -0,0 +1,109 @@
+import org.junit.*;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class DN09Test01 {
+
+ Tekmovanje tekmovanje;
+ Tekmovanje miniTekmovanje;
+ Tekmovanje praznoTekmovanje;
+
+ @Before
+ public void init() {
+ tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+
+ ArrayList seznamTekmovalcev = new ArrayList<>(Arrays.asList(
+ new Tekmovalec("Češka", "Vesna", "My Sister's Crown"),
+ new Tekmovalec("Armenija", "Brunette", "Future Lover"),
+ new Tekmovalec("Islandija", "Diljá", "Power")
+ ));
+
+ ArrayList seznamGlasov = new ArrayList<>(Arrays.asList(
+ new Glas("Češka", "Islandija", 6),
+ new Glas("Armenija", "Islandija", 6),
+ new Glas("Armenija", "Češka", 4),
+ new Glas("Islandija", "Češka", 0)
+ ));
+
+ // Tekmovanje mora imeti ustrezen konstruktor
+ miniTekmovanje = new Tekmovanje(seznamTekmovalcev, seznamGlasov);
+
+ // Prazno tekmovanje
+ praznoTekmovanje = new Tekmovanje(new ArrayList<>(), new ArrayList<>());
+ }
+
+ @Test
+ public void testBranje() {
+ // Manjkajoca datoteka mora vracati null
+ Assert.assertNull(Tekmovanje.izDatotek("manjkajocaDatoteka.csv", "manjkajocaDatoteka.csv"));
+ // Preveri stevilo prebranih tekmovalcev in glasov
+ Assert.assertNotNull(tekmovanje);
+ Assert.assertEquals(tekmovanje.getSeznamTekmovalcev().size(), 37);
+ Assert.assertEquals(tekmovanje.getSeznamGlasov().size(), 554);
+
+ Tekmovalec t = tekmovanje.getSeznamTekmovalcev().get(0);
+ Assert.assertEquals(t.getDrzava(), "Albanija");
+ }
+
+ @Test
+ public void testToString() {
+ Tekmovalec t = new Tekmovalec("Izrael", "Noa Kirel", "Unicorn");
+ Assert.assertEquals(t.toString(), "(Izrael) Noa Kirel - Unicorn");
+
+ Glas g = new Glas("Slovenija", "Hrvaška", 10);
+ Assert.assertEquals(g.toString(), "Slovenija --10t-> Hrvaška");
+ }
+
+ @Test
+ public void testIzpis() {
+ // Testira `izpisiTekmovalce()` in `izpisiGlasove()`
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ miniTekmovanje.izpisiTekmovalce();
+ miniTekmovanje.izpisiGlasove();
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Seznam tekmovalcev:\n" +
+ "(Češka) Vesna - My Sister's Crown\n" +
+ "(Armenija) Brunette - Future Lover\n" +
+ "(Islandija) Diljá - Power\n" +
+ "Seznam glasov:\n" +
+ "Češka --6t-> Islandija\n" +
+ "Armenija --6t-> Islandija\n" +
+ "Armenija --4t-> Češka\n" +
+ "Islandija --0t-> Češka\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+ System.out.println(expected);
+ }
+
+ @Test
+ public void testIzpisPrazna() {
+ // Testira `izpisiTekmovalce()` in `izpisiGlasove()` v primeru prazenga tekmovanja
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ praznoTekmovanje.izpisiTekmovalce();
+ praznoTekmovanje.izpisiGlasove();
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Seznam tekmovalcev je prazen.\n" +
+ "Seznam glasov je prazen.\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+ System.out.println(expected);
+ }
+
+}
\ No newline at end of file
diff --git a/src/DN09Test02.java b/src/DN09Test02.java
new file mode 100644
index 0000000..4b9ba12
--- /dev/null
+++ b/src/DN09Test02.java
@@ -0,0 +1,114 @@
+import org.junit.*;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class DN09Test02 {
+
+ Tekmovanje miniTekmovanje;
+ Tekmovanje praznoTekmovanje;
+
+ @Before
+ public void init(){
+ ArrayList seznamTekmovalcev = new ArrayList<>(Arrays.asList(
+ new Tekmovalec("Češka", "Vesna", "My Sister's Crown"),
+ new Tekmovalec("Armenija", "Brunette", "Future Lover"),
+ new Tekmovalec("Islandija", "Diljá", "Power")
+ ));
+
+ ArrayList seznamGlasov = new ArrayList<>(Arrays.asList(
+ new Glas("Češka", "Islandija", 6),
+ new Glas("Armenija", "Islandija", 6),
+ new Glas("Armenija", "Češka", 4),
+ new Glas("Islandija", "Češka", 0)
+ ));
+
+ miniTekmovanje = new Tekmovanje(seznamTekmovalcev, seznamGlasov);
+
+ // Prazno tekmovanje
+ praznoTekmovanje = new Tekmovanje(new ArrayList<>(), new ArrayList<>());
+ }
+
+ @Test
+ public void testOsnovniKriterij() {
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+
+ OsnovniKriterij k = new OsnovniKriterij();
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Slovenija"), 78);
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Švedska"), 583);
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Irska"), 0);
+
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Armenija"), 0);
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Islandija"), 12);
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Češka"), 4);
+ }
+
+ @Test
+ public void testStTock(){
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+
+ Assert.assertEquals(tekmovanje.steviloTock("Slovenija"), 78);
+ Assert.assertEquals(tekmovanje.steviloTock("Švedska"), 583);
+ Assert.assertEquals(tekmovanje.steviloTock("Irska"), 0);
+
+ Assert.assertEquals(miniTekmovanje.steviloTock("Armenija"), 0);
+ Assert.assertEquals(miniTekmovanje.steviloTock("Islandija"), 12);
+ Assert.assertEquals(miniTekmovanje.steviloTock("Češka"), 4);
+
+ // Testni kriterij, ki vraca toliko tock, kot je crk v imenu drzave
+ Kriterij mojKriterij = new Kriterij() {
+ @Override
+ public int steviloTock(Tekmovanje tekmovanje, String drzava) {
+ return drzava.length();
+ }
+ };
+
+ // Testiranje nastavljanja kriterija
+ tekmovanje.setKriterij(mojKriterij);
+ Assert.assertEquals(tekmovanje.steviloTock("Slovenija"), 9);
+ Assert.assertEquals(tekmovanje.steviloTock("Švedska"), 7);
+ Assert.assertEquals(tekmovanje.steviloTock("Irska"), 5);
+ }
+
+ @Test
+ public void testIzpis(){
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ miniTekmovanje.izpisiTocke();
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Seznam tekmovalcev in njihovih tock:\n" +
+ "(Češka) Vesna - My Sister's Crown: 4t\n" +
+ "(Armenija) Brunette - Future Lover: 0t\n" +
+ "(Islandija) Diljá - Power: 12t\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+ System.out.println(expected);
+ }
+
+ @Test
+ public void testIzpisPrazna(){
+ // Testira `izpisiTekmovalce()` in `izpisiGlasove()` v primeru prazenga tekmovanja
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ praznoTekmovanje.izpisiTocke();
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Seznam tekmovalcev je prazen.\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+ System.out.println(expected);
+ }
+
+}
\ No newline at end of file
diff --git a/src/DN09Test03.java b/src/DN09Test03.java
new file mode 100644
index 0000000..2ae8970
--- /dev/null
+++ b/src/DN09Test03.java
@@ -0,0 +1,130 @@
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class DN09Test03 {
+
+ Tekmovanje miniTekmovanje;
+ Tekmovanje praznoTekmovanje;
+
+
+ @Before
+ public void init() {
+ ArrayList seznamTekmovalcev = new ArrayList<>(Arrays.asList(
+ new Tekmovalec("Češka", "Vesna", "My Sister's Crown"),
+ new Tekmovalec("Armenija", "Brunette", "Future Lover"),
+ new Tekmovalec("Islandija", "Diljá", "Power")
+ ));
+
+ ArrayList seznamGlasov = new ArrayList<>(Arrays.asList(
+ new Glas("Češka", "Islandija", 6),
+ new Glas("Armenija", "Islandija", 6),
+ new Glas("Armenija", "Češka", 4),
+ new Glas("Islandija", "Češka", 0)
+ ));
+
+ miniTekmovanje = new Tekmovanje(seznamTekmovalcev, seznamGlasov);
+
+ // Prazno tekmovanje
+ praznoTekmovanje = new Tekmovanje(new ArrayList<>(), new ArrayList<>());
+ }
+
+ @Test
+ public void testIzpisZmagovalca() {
+ // Testira izpis zmagovalca
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+ OsnovniKriterij k = new OsnovniKriterij();
+
+ tekmovanje.setKriterij(k);
+
+ Tekmovalec zmagovalec = tekmovanje.getZmagovalec();
+ Assert.assertEquals(zmagovalec.getDrzava(), "Švedska");
+
+ Assert.assertEquals(miniTekmovanje.getZmagovalec().getDrzava(), "Islandija");
+ }
+
+ @Test
+ public void testMestoDrzave() {
+ // Testira mesto države
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+ OsnovniKriterij k = new OsnovniKriterij();
+
+ tekmovanje.setKriterij(k);
+
+ int mesto = tekmovanje.getMesto("Nizozemska");
+
+ Assert.assertEquals(mesto, 32);
+
+ // Za manjkajoce drzave metoda vrne -1
+ int mesto2 = tekmovanje.getMesto("Slovenijaaaa");
+
+ Assert.assertEquals(mesto2, -1);
+
+ int mesto3 = tekmovanje.getMesto("Slovenija");
+
+ Assert.assertEquals(mesto3, 21);
+ }
+
+ @Test
+ public void testIzpisNajboljsihDrzav() {
+ // Testira izpis najboljših držav
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+ OsnovniKriterij k = new OsnovniKriterij();
+
+ tekmovanje.setKriterij(k);
+
+ tekmovanje.izpisiRezultateUrejeno(5);
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Najboljse uvrsceni tekmovalci:\n" +
+ "1. (Švedska) Loreen - Tattoo: 583t\n" +
+ "2. (Finska) Käärijä - Cha Cha Cha: 526t\n" +
+ "3. (Izrael) Noa Kirel - Unicorn: 362t\n" +
+ "4. (Italija) Marco Mengoni - Due vite: 350t\n" +
+ "5. (Norveška) Alessandra - Queen of Kings: 268t\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+
+ }
+
+ @Test
+ public void testIzpisNajboljsihDrzav2() {
+ // Testira izpis, ce je držav vec kot argument funkcije
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+
+ OsnovniKriterij k = new OsnovniKriterij();
+
+ miniTekmovanje.setKriterij(k);
+
+ miniTekmovanje.izpisiRezultateUrejeno(5);
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Najboljse uvrsceni tekmovalci:\n" +
+ "1. (Islandija) Diljá - Power: 12t\n" +
+ "2. (Češka) Vesna - My Sister's Crown: 4t\n" +
+ "3. (Armenija) Brunette - Future Lover: 0t\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/DN09Test04.java b/src/DN09Test04.java
new file mode 100644
index 0000000..fea0c91
--- /dev/null
+++ b/src/DN09Test04.java
@@ -0,0 +1,91 @@
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class DN09Test04 {
+
+ Tekmovanje miniTekmovanje;
+ Tekmovanje praznoTekmovanje;
+
+
+ @Before
+ public void init() {
+ ArrayList seznamTekmovalcev = new ArrayList<>(Arrays.asList(
+ new Tekmovalec("Češka", "Vesna", "My Sister's Crown"),
+ new Tekmovalec("Armenija", "Brunette", "Future Lover"),
+ new Tekmovalec("Islandija", "Diljá", "Power")
+ ));
+
+ ArrayList seznamGlasov = new ArrayList<>(Arrays.asList(
+ new Glas("Češka", "Islandija", 6),
+ new Glas("Armenija", "Islandija", 6),
+ new Glas("Armenija", "Češka", 4),
+ new Glas("Islandija", "Češka", 0)
+ ));
+
+ miniTekmovanje = new Tekmovanje(seznamTekmovalcev, seznamGlasov);
+
+ // Prazno tekmovanje
+ praznoTekmovanje = new Tekmovanje(new ArrayList<>(), new ArrayList<>());
+ }
+
+ @Test
+ public void testLocenGlas() {
+ // Testira locenGlas
+ // Konstruktor mora slediti navodilom
+ LocenGlas locenGlas = new LocenGlas("Islandija", "Češka", 10, 8, 2);
+ Assert.assertNotNull(locenGlas);
+ }
+
+ @Test
+ public void testUtezeniKriterij() {
+ // Testira delovanje uteženega kriterija
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+
+ UtezeniKriterij k = new UtezeniKriterij(0.1f, 5.3f);
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Slovenija"), 179);
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Švedska"), 1826);
+ Assert.assertEquals(k.steviloTock(tekmovanje, "Irska"), 0);
+
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Armenija"), 0);
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Islandija"), 64);
+ Assert.assertEquals(k.steviloTock(miniTekmovanje, "Češka"), 21);
+
+ }
+
+ @Test
+ public void preveriIzpisDrzav() {
+ // Testira izpis držav z uteženim kriterijem
+ PrintStream orig = System.out;
+ final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(myOut));
+
+ Tekmovanje tekmovanje = Tekmovanje.izDatotek("viri/tekmovalci_2023.csv", "viri/glasovi_2023.csv");
+ UtezeniKriterij k = new UtezeniKriterij(0.2f, 12f);
+
+ tekmovanje.setKriterij(k);
+
+ tekmovanje.izpisiRezultateUrejeno(5);
+
+ final String stdOut = myOut.toString();
+ System.setOut(orig);
+
+ String expected = "Najboljse uvrsceni tekmovalci:\n" +
+ "1. (Švedska) Loreen - Tattoo: 4129t\n" +
+ "2. (Izrael) Noa Kirel - Unicorn: 2161t\n" +
+ "3. (Italija) Marco Mengoni - Due vite: 2147t\n" +
+ "4. (Finska) Käärijä - Cha Cha Cha: 1875t\n" +
+ "5. (Estonija) Alika - Bridges: 1756t\n";
+
+ Assert.assertEquals(stdOut.trim().replace("\r", ""), expected.trim().replace("\r", ""));
+
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/viri/glasovi_2023.csv b/viri/glasovi_2023.csv
new file mode 100644
index 0000000..7a1f4b9
--- /dev/null
+++ b/viri/glasovi_2023.csv
@@ -0,0 +1,555 @@
+leto;krog;od_drzave;za_drzavo;skupaj_tocke;glasovanje_tocke;zirija_tocke
+2023;finale;Albanija;Švedska;22;10;12
+2023;finale;Albanija;Finska;6;6;0
+2023;finale;Albanija;Izrael;11;5;6
+2023;finale;Albanija;Italija;14;12;2
+2023;finale;Albanija;Norveška;4;4;0
+2023;finale;Albanija;Belgija;5;0;5
+2023;finale;Albanija;Estonija;8;0;8
+2023;finale;Albanija;Avstralija;3;0;3
+2023;finale;Albanija;Ciper;11;7;4
+2023;finale;Albanija;Hrvaška;8;8;0
+2023;finale;Albanija;Armenija;10;0;10
+2023;finale;Albanija;Francija;3;3;0
+2023;finale;Albanija;Španija;1;0;1
+2023;finale;Albanija;Poljska;1;1;0
+2023;finale;Albanija;Švica;7;0;7
+2023;finale;Albanija;Slovenija;2;2;0
+2023;finale;Armenija;Švedska;17;7;10
+2023;finale;Armenija;Finska;14;6;8
+2023;finale;Armenija;Izrael;24;12;12
+2023;finale;Armenija;Italija;3;3;0
+2023;finale;Armenija;Norveška;8;4;4
+2023;finale;Armenija;Ukrajina;4;1;3
+2023;finale;Armenija;Ciper;13;8;5
+2023;finale;Armenija;Avstrija;2;0;2
+2023;finale;Armenija;Francija;17;10;7
+2023;finale;Armenija;Španija;6;0;6
+2023;finale;Armenija;Poljska;6;5;1
+2023;finale;Armenija;Švica;2;2;0
+2023;finale;Avstralija;Švedska;17;10;7
+2023;finale;Avstralija;Finska;17;12;5
+2023;finale;Avstralija;Izrael;5;5;0
+2023;finale;Avstralija;Italija;1;0;1
+2023;finale;Avstralija;Norveška;6;6;0
+2023;finale;Avstralija;Belgija;15;3;12
+2023;finale;Avstralija;Estonija;8;0;8
+2023;finale;Avstralija;Litva;10;0;10
+2023;finale;Avstralija;Ciper;11;8;3
+2023;finale;Avstralija;Hrvaška;4;4;0
+2023;finale;Avstralija;Avstrija;13;7;6
+2023;finale;Avstralija;Francija;2;2;0
+2023;finale;Avstralija;Španija;4;0;4
+2023;finale;Avstralija;Slovenija;1;1;0
+2023;finale;Avstralija;Portugalska;2;0;2
+2023;finale;Avstrija;Švedska;14;4;10
+2023;finale;Avstrija;Finska;20;12;8
+2023;finale;Avstrija;Izrael;1;1;0
+2023;finale;Avstrija;Italija;20;8;12
+2023;finale;Avstrija;Norveška;7;7;0
+2023;finale;Avstrija;Ukrajina;5;5;0
+2023;finale;Avstrija;Belgija;3;0;3
+2023;finale;Avstrija;Češka;5;0;5
+2023;finale;Avstrija;Litva;7;0;7
+2023;finale;Avstrija;Ciper;2;0;2
+2023;finale;Avstrija;Hrvaška;10;10;0
+2023;finale;Avstrija;Armenija;1;0;1
+2023;finale;Avstrija;Švica;6;2;4
+2023;finale;Avstrija;Slovenija;6;0;6
+2023;finale;Avstrija;Albanija;3;3;0
+2023;finale;Avstrija;Nemčija;6;6;0
+2023;finale;Azerbajdžan;Švedska;20;10;10
+2023;finale;Azerbajdžan;Finska;11;8;3
+2023;finale;Azerbajdžan;Izrael;24;12;12
+2023;finale;Azerbajdžan;Italija;10;4;6
+2023;finale;Azerbajdžan;Norveška;2;2;0
+2023;finale;Azerbajdžan;Ukrajina;9;7;2
+2023;finale;Azerbajdžan;Estonija;1;0;1
+2023;finale;Azerbajdžan;Avstralija;5;0;5
+2023;finale;Azerbajdžan;Češka;3;3;0
+2023;finale;Azerbajdžan;Ciper;6;6;0
+2023;finale;Azerbajdžan;Španija;7;0;7
+2023;finale;Azerbajdžan;Švica;5;1;4
+2023;finale;Azerbajdžan;Slovenija;5;5;0
+2023;finale;Azerbajdžan;Albanija;8;0;8
+2023;finale;Belgija;Švedska;18;10;8
+2023;finale;Belgija;Finska;17;12;5
+2023;finale;Belgija;Izrael;15;5;10
+2023;finale;Belgija;Italija;14;7;7
+2023;finale;Belgija;Norveška;8;8;0
+2023;finale;Belgija;Ukrajina;1;1;0
+2023;finale;Belgija;Avstralija;4;0;4
+2023;finale;Belgija;Češka;3;0;3
+2023;finale;Belgija;Armenija;6;6;0
+2023;finale;Belgija;Avstrija;12;0;12
+2023;finale;Belgija;Francija;3;2;1
+2023;finale;Belgija;Španija;6;0;6
+2023;finale;Belgija;Poljska;6;4;2
+2023;finale;Belgija;Albanija;3;3;0
+2023;finale;Hrvaška;Švedska;12;2;10
+2023;finale;Hrvaška;Finska;17;10;7
+2023;finale;Hrvaška;Izrael;12;4;8
+2023;finale;Hrvaška;Italija;20;8;12
+2023;finale;Hrvaška;Norveška;5;5;0
+2023;finale;Hrvaška;Estonija;3;0;3
+2023;finale;Hrvaška;Češka;3;3;0
+2023;finale;Hrvaška;Španija;6;0;6
+2023;finale;Hrvaška;Moldavija;3;1;2
+2023;finale;Hrvaška;Slovenija;17;12;5
+2023;finale;Hrvaška;Albanija;6;6;0
+2023;finale;Hrvaška;Portugalska;1;0;1
+2023;finale;Hrvaška;Srbija;11;7;4
+2023;finale;Ciper;Švedska;20;8;12
+2023;finale;Ciper;Finska;10;7;3
+2023;finale;Ciper;Izrael;19;12;7
+2023;finale;Ciper;Italija;11;6;5
+2023;finale;Ciper;Norveška;5;5;0
+2023;finale;Ciper;Ukrajina;10;10;0
+2023;finale;Ciper;Avstralija;8;0;8
+2023;finale;Ciper;Češka;1;0;1
+2023;finale;Ciper;Armenija;8;4;4
+2023;finale;Ciper;Avstrija;10;0;10
+2023;finale;Ciper;Francija;3;3;0
+2023;finale;Ciper;Španija;6;0;6
+2023;finale;Ciper;Moldavija;1;1;0
+2023;finale;Ciper;Poljska;2;2;0
+2023;finale;Ciper;Švica;2;0;2
+2023;finale;Češka;Švedska;16;6;10
+2023;finale;Češka;Finska;15;10;5
+2023;finale;Češka;Izrael;8;8;0
+2023;finale;Češka;Italija;5;1;4
+2023;finale;Češka;Norveška;7;7;0
+2023;finale;Češka;Ukrajina;24;12;12
+2023;finale;Češka;Estonija;2;0;2
+2023;finale;Češka;Avstralija;7;0;7
+2023;finale;Češka;Hrvaška;4;4;0
+2023;finale;Češka;Armenija;10;2;8
+2023;finale;Češka;Španija;3;0;3
+2023;finale;Češka;Moldavija;5;5;0
+2023;finale;Češka;Slovenija;9;3;6
+2023;finale;Češka;Nemčija;1;0;1
+2023;finale;Danska;Švedska;20;8;12
+2023;finale;Danska;Finska;20;12;8
+2023;finale;Danska;Italija;3;3;0
+2023;finale;Danska;Norveška;20;10;10
+2023;finale;Danska;Ukrajina;7;7;0
+2023;finale;Danska;Belgija;9;6;3
+2023;finale;Danska;Avstralija;2;0;2
+2023;finale;Danska;Litva;4;0;4
+2023;finale;Danska;Ciper;7;2;5
+2023;finale;Danska;Avstrija;7;0;7
+2023;finale;Danska;Francija;6;0;6
+2023;finale;Danska;Moldavija;1;1;0
+2023;finale;Danska;Poljska;5;5;0
+2023;finale;Danska;Švica;4;4;0
+2023;finale;Danska;Velika Britanija;1;0;1
+2023;finale;Estonija;Švedska;22;10;12
+2023;finale;Estonija;Finska;22;12;10
+2023;finale;Estonija;Izrael;4;0;4
+2023;finale;Estonija;Italija;7;2;5
+2023;finale;Estonija;Norveška;7;7;0
+2023;finale;Estonija;Ukrajina;15;8;7
+2023;finale;Estonija;Belgija;6;0;6
+2023;finale;Estonija;Avstralija;14;6;8
+2023;finale;Estonija;Litva;6;5;1
+2023;finale;Estonija;Armenija;3;0;3
+2023;finale;Estonija;Španija;2;0;2
+2023;finale;Estonija;Poljska;3;3;0
+2023;finale;Estonija;Švica;4;4;0
+2023;finale;Estonija;Slovenija;1;1;0
+2023;finale;Finska;Švedska;12;0;12
+2023;finale;Finska;Italija;6;0;6
+2023;finale;Finska;Norveška;12;12;0
+2023;finale;Finska;Belgija;5;0;5
+2023;finale;Finska;Estonija;6;6;0
+2023;finale;Finska;Avstralija;8;8;0
+2023;finale;Finska;Češka;18;10;8
+2023;finale;Finska;Ciper;1;0;1
+2023;finale;Finska;Hrvaška;4;4;0
+2023;finale;Finska;Avstrija;4;2;2
+2023;finale;Finska;Francija;7;0;7
+2023;finale;Finska;Moldavija;3;3;0
+2023;finale;Finska;Švica;11;1;10
+2023;finale;Finska;Slovenija;7;7;0
+2023;finale;Finska;Portugalska;3;0;3
+2023;finale;Finska;Velika Britanija;4;0;4
+2023;finale;Finska;Nemčija;5;5;0
+2023;finale;Francija;Švedska;9;3;6
+2023;finale;Francija;Finska;14;6;8
+2023;finale;Francija;Izrael;22;10;12
+2023;finale;Francija;Italija;9;7;2
+2023;finale;Francija;Norveška;1;1;0
+2023;finale;Francija;Ukrajina;5;4;1
+2023;finale;Francija;Belgija;2;2;0
+2023;finale;Francija;Češka;4;0;4
+2023;finale;Francija;Armenija;19;12;7
+2023;finale;Francija;Avstrija;10;0;10
+2023;finale;Francija;Moldavija;8;8;0
+2023;finale;Francija;Švica;3;0;3
+2023;finale;Francija;Portugalska;10;5;5
+2023;finale;Gruzija;Švedska;11;7;4
+2023;finale;Gruzija;Finska;9;8;1
+2023;finale;Gruzija;Izrael;13;6;7
+2023;finale;Gruzija;Italija;13;5;8
+2023;finale;Gruzija;Norveška;2;2;0
+2023;finale;Gruzija;Ukrajina;10;10;0
+2023;finale;Gruzija;Belgija;12;0;12
+2023;finale;Gruzija;Estonija;5;0;5
+2023;finale;Gruzija;Avstralija;2;0;2
+2023;finale;Gruzija;Litva;10;4;6
+2023;finale;Gruzija;Ciper;3;0;3
+2023;finale;Gruzija;Hrvaška;1;1;0
+2023;finale;Gruzija;Armenija;22;12;10
+2023;finale;Gruzija;Moldavija;3;3;0
+2023;finale;Nemčija;Švedska;13;1;12
+2023;finale;Nemčija;Finska;12;12;0
+2023;finale;Nemčija;Italija;14;10;4
+2023;finale;Nemčija;Norveška;11;5;6
+2023;finale;Nemčija;Ukrajina;7;7;0
+2023;finale;Nemčija;Belgija;2;2;0
+2023;finale;Nemčija;Estonija;10;0;10
+2023;finale;Nemčija;Avstralija;8;0;8
+2023;finale;Nemčija;Češka;5;0;5
+2023;finale;Nemčija;Litva;1;0;1
+2023;finale;Nemčija;Hrvaška;6;6;0
+2023;finale;Nemčija;Avstrija;2;0;2
+2023;finale;Nemčija;Španija;7;0;7
+2023;finale;Nemčija;Poljska;4;4;0
+2023;finale;Nemčija;Švica;3;3;0
+2023;finale;Nemčija;Albanija;8;8;0
+2023;finale;Nemčija;Srbija;3;0;3
+2023;finale;Grčija;Švedska;14;8;6
+2023;finale;Grčija;Finska;10;10;0
+2023;finale;Grčija;Izrael;15;7;8
+2023;finale;Grčija;Italija;5;5;0
+2023;finale;Grčija;Norveška;6;6;0
+2023;finale;Grčija;Belgija;12;0;12
+2023;finale;Grčija;Avstralija;5;0;5
+2023;finale;Grčija;Češka;1;1;0
+2023;finale;Grčija;Ciper;16;12;4
+2023;finale;Grčija;Armenija;2;2;0
+2023;finale;Grčija;Avstrija;7;0;7
+2023;finale;Grčija;Francija;3;3;0
+2023;finale;Grčija;Švica;2;0;2
+2023;finale;Grčija;Albanija;7;4;3
+2023;finale;Grčija;Portugalska;10;0;10
+2023;finale;Grčija;Srbija;1;0;1
+2023;finale;Islandija;Švedska;17;10;7
+2023;finale;Islandija;Finska;22;12;10
+2023;finale;Islandija;Italija;1;1;0
+2023;finale;Islandija;Norveška;12;8;4
+2023;finale;Islandija;Ukrajina;2;2;0
+2023;finale;Islandija;Belgija;11;6;5
+2023;finale;Islandija;Avstralija;15;3;12
+2023;finale;Islandija;Češka;6;0;6
+2023;finale;Islandija;Hrvaška;5;5;0
+2023;finale;Islandija;Avstrija;8;0;8
+2023;finale;Islandija;Francija;4;4;0
+2023;finale;Islandija;Španija;3;0;3
+2023;finale;Islandija;Poljska;7;7;0
+2023;finale;Islandija;Srbija;1;0;1
+2023;finale;Islandija;Nemčija;2;0;2
+2023;finale;Irska;Švedska;18;6;12
+2023;finale;Irska;Finska;20;12;8
+2023;finale;Irska;Izrael;8;1;7
+2023;finale;Irska;Norveška;5;5;0
+2023;finale;Irska;Ukrajina;7;7;0
+2023;finale;Irska;Belgija;13;3;10
+2023;finale;Irska;Avstralija;4;0;4
+2023;finale;Irska;Češka;3;0;3
+2023;finale;Irska;Litva;11;10;1
+2023;finale;Irska;Hrvaška;2;2;0
+2023;finale;Irska;Armenija;6;0;6
+2023;finale;Irska;Francija;5;0;5
+2023;finale;Irska;Moldavija;4;4;0
+2023;finale;Irska;Poljska;8;8;0
+2023;finale;Irska;Velika Britanija;2;0;2
+2023;finale;Izrael;Švedska;16;4;12
+2023;finale;Izrael;Finska;20;12;8
+2023;finale;Izrael;Italija;7;7;0
+2023;finale;Izrael;Norveška;20;10;10
+2023;finale;Izrael;Ukrajina;15;8;7
+2023;finale;Izrael;Belgija;3;0;3
+2023;finale;Izrael;Estonija;5;0;5
+2023;finale;Izrael;Češka;6;2;4
+2023;finale;Izrael;Ciper;1;0;1
+2023;finale;Izrael;Hrvaška;6;6;0
+2023;finale;Izrael;Armenija;3;3;0
+2023;finale;Izrael;Avstrija;6;0;6
+2023;finale;Izrael;Francija;1;1;0
+2023;finale;Izrael;Moldavija;5;5;0
+2023;finale;Izrael;Poljska;2;0;2
+2023;finale;Italija;Švedska;11;3;8
+2023;finale;Italija;Finska;6;6;0
+2023;finale;Italija;Izrael;17;5;12
+2023;finale;Italija;Norveška;10;10;0
+2023;finale;Italija;Ukrajina;18;8;10
+2023;finale;Italija;Belgija;2;0;2
+2023;finale;Italija;Estonija;6;0;6
+2023;finale;Italija;Češka;9;2;7
+2023;finale;Italija;Litva;3;0;3
+2023;finale;Italija;Hrvaška;4;4;0
+2023;finale;Italija;Armenija;5;0;5
+2023;finale;Italija;Moldavija;12;12;0
+2023;finale;Italija;Švica;5;1;4
+2023;finale;Italija;Albanija;7;7;0
+2023;finale;Italija;Srbija;1;0;1
+2023;finale;Latvija;Švedska;18;8;10
+2023;finale;Latvija;Finska;12;12;0
+2023;finale;Latvija;Izrael;10;5;5
+2023;finale;Latvija;Italija;3;0;3
+2023;finale;Latvija;Norveška;3;3;0
+2023;finale;Latvija;Ukrajina;11;7;4
+2023;finale;Latvija;Belgija;2;0;2
+2023;finale;Latvija;Estonija;18;6;12
+2023;finale;Latvija;Češka;1;1;0
+2023;finale;Latvija;Litva;17;10;7
+2023;finale;Latvija;Ciper;6;0;6
+2023;finale;Latvija;Hrvaška;4;4;0
+2023;finale;Latvija;Armenija;1;0;1
+2023;finale;Latvija;Španija;8;0;8
+2023;finale;Latvija;Slovenija;2;2;0
+2023;finale;Litva;Švedska;19;7;12
+2023;finale;Litva;Finska;15;12;3
+2023;finale;Litva;Izrael;13;3;10
+2023;finale;Litva;Italija;6;6;0
+2023;finale;Litva;Ukrajina;12;10;2
+2023;finale;Litva;Belgija;7;0;7
+2023;finale;Litva;Estonija;10;5;5
+2023;finale;Litva;Avstralija;4;0;4
+2023;finale;Litva;Ciper;1;0;1
+2023;finale;Litva;Hrvaška;4;4;0
+2023;finale;Litva;Avstrija;8;0;8
+2023;finale;Litva;Francija;7;1;6
+2023;finale;Litva;Moldavija;2;2;0
+2023;finale;Litva;Poljska;8;8;0
+2023;finale;Malta;Švedska;22;10;12
+2023;finale;Malta;Finska;16;8;8
+2023;finale;Malta;Izrael;13;6;7
+2023;finale;Malta;Italija;22;12;10
+2023;finale;Malta;Norveška;9;7;2
+2023;finale;Malta;Ukrajina;5;5;0
+2023;finale;Malta;Litva;4;0;4
+2023;finale;Malta;Ciper;5;0;5
+2023;finale;Malta;Avstrija;1;0;1
+2023;finale;Malta;Francija;1;1;0
+2023;finale;Malta;Švica;6;0;6
+2023;finale;Malta;Albanija;3;3;0
+2023;finale;Malta;Portugalska;3;0;3
+2023;finale;Malta;Srbija;2;2;0
+2023;finale;Malta;Velika Britanija;4;4;0
+2023;finale;Moldavija;Švedska;20;8;12
+2023;finale;Moldavija;Finska;7;7;0
+2023;finale;Moldavija;Izrael;10;10;0
+2023;finale;Moldavija;Italija;15;5;10
+2023;finale;Moldavija;Norveška;6;6;0
+2023;finale;Moldavija;Ukrajina;18;12;6
+2023;finale;Moldavija;Estonija;7;0;7
+2023;finale;Moldavija;Avstralija;5;0;5
+2023;finale;Moldavija;Češka;1;1;0
+2023;finale;Moldavija;Ciper;7;3;4
+2023;finale;Moldavija;Armenija;4;2;2
+2023;finale;Moldavija;Španija;3;0;3
+2023;finale;Moldavija;Poljska;4;4;0
+2023;finale;Moldavija;Albanija;1;0;1
+2023;finale;Moldavija;Portugalska;8;0;8
+2023;finale;Nizozemska;Švedska;20;8;12
+2023;finale;Nizozemska;Finska;22;12;10
+2023;finale;Nizozemska;Izrael;8;6;2
+2023;finale;Nizozemska;Italija;3;3;0
+2023;finale;Nizozemska;Norveška;7;7;0
+2023;finale;Nizozemska;Belgija;14;10;4
+2023;finale;Nizozemska;Estonija;5;5;0
+2023;finale;Nizozemska;Avstralija;1;1;0
+2023;finale;Nizozemska;Češka;8;0;8
+2023;finale;Nizozemska;Avstrija;5;4;1
+2023;finale;Nizozemska;Francija;3;0;3
+2023;finale;Nizozemska;Španija;7;0;7
+2023;finale;Nizozemska;Poljska;2;2;0
+2023;finale;Nizozemska;Švica;6;0;6
+2023;finale;Nizozemska;Portugalska;5;0;5
+2023;finale;Norveška;Švedska;20;10;10
+2023;finale;Norveška;Finska;24;12;12
+2023;finale;Norveška;Izrael;6;3;3
+2023;finale;Norveška;Italija;13;7;6
+2023;finale;Norveška;Ukrajina;1;1;0
+2023;finale;Norveška;Belgija;4;4;0
+2023;finale;Norveška;Avstralija;5;0;5
+2023;finale;Norveška;Češka;4;0;4
+2023;finale;Norveška;Ciper;9;2;7
+2023;finale;Norveška;Francija;8;8;0
+2023;finale;Norveška;Španija;1;0;1
+2023;finale;Norveška;Moldavija;8;0;8
+2023;finale;Norveška;Poljska;6;6;0
+2023;finale;Norveška;Švica;7;5;2
+2023;finale;Poljska;Švedska;14;7;7
+2023;finale;Poljska;Finska;10;10;0
+2023;finale;Poljska;Izrael;17;5;12
+2023;finale;Poljska;Italija;6;0;6
+2023;finale;Poljska;Norveška;8;8;0
+2023;finale;Poljska;Ukrajina;12;12;0
+2023;finale;Poljska;Belgija;5;0;5
+2023;finale;Poljska;Estonija;8;0;8
+2023;finale;Poljska;Avstralija;4;0;4
+2023;finale;Poljska;Češka;3;3;0
+2023;finale;Poljska;Litva;4;1;3
+2023;finale;Poljska;Ciper;14;4;10
+2023;finale;Poljska;Hrvaška;6;6;0
+2023;finale;Poljska;Armenija;1;0;1
+2023;finale;Poljska;Švica;2;0;2
+2023;finale;Poljska;Slovenija;2;2;0
+2023;finale;Portugalska;Švedska;12;7;5
+2023;finale;Portugalska;Finska;10;10;0
+2023;finale;Portugalska;Izrael;5;5;0
+2023;finale;Portugalska;Italija;6;6;0
+2023;finale;Portugalska;Norveška;5;4;1
+2023;finale;Portugalska;Ukrajina;12;12;0
+2023;finale;Portugalska;Belgija;7;1;6
+2023;finale;Portugalska;Estonija;8;0;8
+2023;finale;Portugalska;Avstralija;12;0;12
+2023;finale;Portugalska;Češka;7;0;7
+2023;finale;Portugalska;Hrvaška;3;0;3
+2023;finale;Portugalska;Francija;2;2;0
+2023;finale;Portugalska;Španija;13;3;10
+2023;finale;Portugalska;Moldavija;8;8;0
+2023;finale;Portugalska;Švica;2;0;2
+2023;finale;Portugalska;Srbija;4;0;4
+2023;finale;Romunija;Švedska;18;8;10
+2023;finale;Romunija;Finska;10;10;0
+2023;finale;Romunija;Izrael;10;6;4
+2023;finale;Romunija;Italija;19;7;12
+2023;finale;Romunija;Norveška;5;5;0
+2023;finale;Romunija;Ukrajina;4;4;0
+2023;finale;Romunija;Belgija;2;0;2
+2023;finale;Romunija;Estonija;8;0;8
+2023;finale;Romunija;Avstralija;3;0;3
+2023;finale;Romunija;Ciper;7;1;6
+2023;finale;Romunija;Francija;3;3;0
+2023;finale;Romunija;Moldavija;19;12;7
+2023;finale;Romunija;Poljska;1;0;1
+2023;finale;Romunija;Slovenija;2;2;0
+2023;finale;Romunija;Albanija;5;0;5
+2023;finale;San Marino;Švedska;12;8;4
+2023;finale;San Marino;Finska;12;12;0
+2023;finale;San Marino;Izrael;10;10;0
+2023;finale;San Marino;Italija;19;7;12
+2023;finale;San Marino;Norveška;5;4;1
+2023;finale;San Marino;Ukrajina;6;6;0
+2023;finale;San Marino;Belgija;7;0;7
+2023;finale;San Marino;Estonija;10;0;10
+2023;finale;San Marino;Avstralija;5;0;5
+2023;finale;San Marino;Litva;10;2;8
+2023;finale;San Marino;Ciper;5;5;0
+2023;finale;San Marino;Avstrija;6;0;6
+2023;finale;San Marino;Španija;2;0;2
+2023;finale;San Marino;Moldavija;6;3;3
+2023;finale;San Marino;Poljska;1;1;0
+2023;finale;Srbija;Švedska;11;6;5
+2023;finale;Srbija;Finska;19;12;7
+2023;finale;Srbija;Izrael;17;7;10
+2023;finale;Srbija;Italija;4;2;2
+2023;finale;Srbija;Norveška;5;5;0
+2023;finale;Srbija;Češka;5;4;1
+2023;finale;Srbija;Hrvaška;18;10;8
+2023;finale;Srbija;Avstrija;9;3;6
+2023;finale;Srbija;Francija;5;1;4
+2023;finale;Srbija;Španija;3;0;3
+2023;finale;Srbija;Slovenija;20;8;12
+2023;finale;Slovenija;Švedska;11;4;7
+2023;finale;Slovenija;Finska;10;10;0
+2023;finale;Slovenija;Italija;20;8;12
+2023;finale;Slovenija;Norveška;5;5;0
+2023;finale;Slovenija;Belgija;7;2;5
+2023;finale;Slovenija;Estonija;10;0;10
+2023;finale;Slovenija;Avstralija;4;0;4
+2023;finale;Slovenija;Češka;6;0;6
+2023;finale;Slovenija;Litva;8;0;8
+2023;finale;Slovenija;Hrvaška;12;12;0
+2023;finale;Slovenija;Avstrija;3;0;3
+2023;finale;Slovenija;Francija;3;3;0
+2023;finale;Slovenija;Španija;2;0;2
+2023;finale;Slovenija;Poljska;1;1;0
+2023;finale;Slovenija;Švica;1;0;1
+2023;finale;Slovenija;Albanija;7;7;0
+2023;finale;Slovenija;Srbija;6;6;0
+2023;finale;Španija;Švedska;17;5;12
+2023;finale;Španija;Finska;13;12;1
+2023;finale;Španija;Izrael;15;7;8
+2023;finale;Španija;Italija;16;6;10
+2023;finale;Španija;Norveška;10;8;2
+2023;finale;Španija;Ukrajina;10;10;0
+2023;finale;Španija;Belgija;7;3;4
+2023;finale;Španija;Estonija;7;0;7
+2023;finale;Španija;Armenija;5;2;3
+2023;finale;Španija;Francija;5;0;5
+2023;finale;Španija;Moldavija;1;1;0
+2023;finale;Španija;Portugalska;10;4;6
+2023;finale;Švedska;Finska;24;12;12
+2023;finale;Švedska;Izrael;5;0;5
+2023;finale;Švedska;Italija;13;6;7
+2023;finale;Švedska;Norveška;18;10;8
+2023;finale;Švedska;Ukrajina;4;4;0
+2023;finale;Švedska;Belgija;7;7;0
+2023;finale;Švedska;Estonija;2;0;2
+2023;finale;Švedska;Avstralija;1;1;0
+2023;finale;Švedska;Češka;6;3;3
+2023;finale;Švedska;Ciper;1;0;1
+2023;finale;Švedska;Hrvaška;5;5;0
+2023;finale;Švedska;Francija;12;2;10
+2023;finale;Švedska;Švica;14;8;6
+2023;finale;Švedska;Velika Britanija;4;0;4
+2023;finale;Švica;Švedska;11;5;6
+2023;finale;Švica;Finska;8;8;0
+2023;finale;Švica;Izrael;4;3;1
+2023;finale;Švica;Italija;18;10;8
+2023;finale;Švica;Norveška;6;2;4
+2023;finale;Švica;Estonija;10;0;10
+2023;finale;Švica;Avstralija;2;0;2
+2023;finale;Švica;Češka;12;0;12
+2023;finale;Švica;Hrvaška;6;6;0
+2023;finale;Švica;Armenija;5;0;5
+2023;finale;Švica;Avstrija;7;0;7
+2023;finale;Švica;Španija;3;0;3
+2023;finale;Švica;Albanija;12;12;0
+2023;finale;Švica;Portugalska;7;7;0
+2023;finale;Švica;Srbija;1;1;0
+2023;finale;Švica;Nemčija;4;4;0
+2023;finale;Ukrajina;Švedska;15;3;12
+2023;finale;Ukrajina;Finska;10;10;0
+2023;finale;Ukrajina;Izrael;2;1;1
+2023;finale;Ukrajina;Italija;2;0;2
+2023;finale;Ukrajina;Norveška;7;7;0
+2023;finale;Ukrajina;Estonija;5;0;5
+2023;finale;Ukrajina;Avstralija;8;0;8
+2023;finale;Ukrajina;Češka;9;2;7
+2023;finale;Ukrajina;Litva;14;4;10
+2023;finale;Ukrajina;Hrvaška;8;8;0
+2023;finale;Ukrajina;Moldavija;6;6;0
+2023;finale;Ukrajina;Poljska;18;12;6
+2023;finale;Ukrajina;Slovenija;3;0;3
+2023;finale;Ukrajina;Velika Britanija;9;5;4
+2023;finale;Velika Britanija;Švedska;17;5;12
+2023;finale;Velika Britanija;Finska;12;12;0
+2023;finale;Velika Britanija;Izrael;7;3;4
+2023;finale;Velika Britanija;Italija;2;0;2
+2023;finale;Velika Britanija;Norveška;7;7;0
+2023;finale;Velika Britanija;Ukrajina;4;4;0
+2023;finale;Velika Britanija;Belgija;13;6;7
+2023;finale;Velika Britanija;Estonija;6;0;6
+2023;finale;Velika Britanija;Avstralija;12;2;10
+2023;finale;Velika Britanija;Litva;18;10;8
+2023;finale;Velika Britanija;Armenija;3;0;3
+2023;finale;Velika Britanija;Španija;5;0;5
+2023;finale;Velika Britanija;Moldavija;1;1;0
+2023;finale;Velika Britanija;Poljska;8;8;0
+2023;finale;Velika Britanija;Slovenija;1;0;1
+2023;finale;Svet;Švedska;7;7;
+2023;finale;Svet;Finska;10;10;
+2023;finale;Svet;Izrael;12;12;
+2023;finale;Svet;Norveška;4;4;
+2023;finale;Svet;Ukrajina;5;5;
+2023;finale;Svet;Hrvaška;3;3;
+2023;finale;Svet;Armenija;8;8;
+2023;finale;Svet;Francija;1;1;
+2023;finale;Svet;Španija;2;2;
+2023;finale;Svet;Albanija;6;6;
diff --git a/viri/glasovi_sample.csv b/viri/glasovi_sample.csv
new file mode 100644
index 0000000..fbdc2d8
--- /dev/null
+++ b/viri/glasovi_sample.csv
@@ -0,0 +1,1185 @@
+leto;krog;od_drzave;za_drzavo;skupaj_tocke;glasovanje_tocke;zirija_tocke
+1999;finale;Avstrija;Švedska;6;;
+1999;finale;Avstrija;Islandija;2;;
+1999;finale;Avstrija;Nemčija;10;;
+1999;finale;Avstrija;Hrvaška;8;;
+1999;finale;Avstrija;Izrael;1;;
+1999;finale;Avstrija;Estonija;3;;
+1999;finale;Avstrija;Bosna in Hercegovina;12;;
+1999;finale;Avstrija;Danska;5;;
+1999;finale;Avstrija;Nizozemska;4;;
+1999;finale;Avstrija;Malta;7;;
+1999;finale;Belgija;Švedska;7;;
+1999;finale;Belgija;Islandija;8;;
+1999;finale;Belgija;Nemčija;10;;
+1999;finale;Belgija;Hrvaška;5;;
+1999;finale;Belgija;Izrael;3;;
+1999;finale;Belgija;Estonija;4;;
+1999;finale;Belgija;Bosna in Hercegovina;1;;
+1999;finale;Belgija;Nizozemska;12;;
+1999;finale;Belgija;Avstrija;6;;
+1999;finale;Belgija;Slovenija;2;;
+1999;finale;Bosna in Hercegovina;Švedska;12;;
+1999;finale;Bosna in Hercegovina;Nemčija;10;;
+1999;finale;Bosna in Hercegovina;Hrvaška;8;;
+1999;finale;Bosna in Hercegovina;Izrael;2;;
+1999;finale;Bosna in Hercegovina;Estonija;3;;
+1999;finale;Bosna in Hercegovina;Nizozemska;4;;
+1999;finale;Bosna in Hercegovina;Slovenija;5;;
+1999;finale;Bosna in Hercegovina;Velika Britanija;1;;
+1999;finale;Bosna in Hercegovina;Malta;7;;
+1999;finale;Bosna in Hercegovina;Poljska;6;;
+1999;finale;Hrvaška;Nemčija;3;;
+1999;finale;Hrvaška;Izrael;8;;
+1999;finale;Hrvaška;Bosna in Hercegovina;10;;
+1999;finale;Hrvaška;Slovenija;12;;
+1999;finale;Hrvaška;Belgija;4;;
+1999;finale;Hrvaška;Velika Britanija;5;;
+1999;finale;Hrvaška;Norveška;7;;
+1999;finale;Hrvaška;Malta;6;;
+1999;finale;Hrvaška;Litva;2;;
+1999;finale;Hrvaška;Španija;1;;
+1999;finale;Ciper;Švedska;6;;
+1999;finale;Ciper;Islandija;12;;
+1999;finale;Ciper;Hrvaška;2;;
+1999;finale;Ciper;Izrael;10;;
+1999;finale;Ciper;Danska;8;;
+1999;finale;Ciper;Avstrija;1;;
+1999;finale;Ciper;Velika Britanija;4;;
+1999;finale;Ciper;Norveška;7;;
+1999;finale;Ciper;Malta;3;;
+1999;finale;Ciper;Litva;5;;
+1999;finale;Danska;Švedska;10;;
+1999;finale;Danska;Islandija;12;;
+1999;finale;Danska;Nemčija;5;;
+1999;finale;Danska;Izrael;2;;
+1999;finale;Danska;Estonija;4;;
+1999;finale;Danska;Bosna in Hercegovina;8;;
+1999;finale;Danska;Nizozemska;7;;
+1999;finale;Danska;Avstrija;3;;
+1999;finale;Danska;Velika Britanija;1;;
+1999;finale;Danska;Norveška;6;;
+1999;finale;Estonija;Švedska;12;;
+1999;finale;Estonija;Islandija;10;;
+1999;finale;Estonija;Nemčija;7;;
+1999;finale;Estonija;Hrvaška;3;;
+1999;finale;Estonija;Izrael;4;;
+1999;finale;Estonija;Danska;6;;
+1999;finale;Estonija;Avstrija;8;;
+1999;finale;Estonija;Belgija;5;;
+1999;finale;Estonija;Malta;1;;
+1999;finale;Estonija;Litva;2;;
+1999;finale;Francija;Švedska;3;;
+1999;finale;Francija;Nemčija;8;;
+1999;finale;Francija;Hrvaška;7;;
+1999;finale;Francija;Izrael;10;;
+1999;finale;Francija;Estonija;4;;
+1999;finale;Francija;Bosna in Hercegovina;6;;
+1999;finale;Francija;Slovenija;1;;
+1999;finale;Francija;Belgija;2;;
+1999;finale;Francija;Turčija;5;;
+1999;finale;Francija;Portugalska;12;;
+1999;finale;Nemčija;Švedska;2;;
+1999;finale;Nemčija;Islandija;3;;
+1999;finale;Nemčija;Hrvaška;10;;
+1999;finale;Nemčija;Izrael;7;;
+1999;finale;Nemčija;Estonija;6;;
+1999;finale;Nemčija;Bosna in Hercegovina;8;;
+1999;finale;Nemčija;Avstrija;5;;
+1999;finale;Nemčija;Malta;1;;
+1999;finale;Nemčija;Turčija;12;;
+1999;finale;Nemčija;Poljska;4;;
+1999;finale;Islandija;Švedska;10;;
+1999;finale;Islandija;Nemčija;5;;
+1999;finale;Islandija;Hrvaška;4;;
+1999;finale;Islandija;Izrael;1;;
+1999;finale;Islandija;Estonija;2;;
+1999;finale;Islandija;Bosna in Hercegovina;3;;
+1999;finale;Islandija;Danska;12;;
+1999;finale;Islandija;Nizozemska;6;;
+1999;finale;Islandija;Avstrija;8;;
+1999;finale;Islandija;Norveška;7;;
+1999;finale;Irska;Švedska;5;;
+1999;finale;Irska;Islandija;4;;
+1999;finale;Irska;Hrvaška;6;;
+1999;finale;Irska;Estonija;8;;
+1999;finale;Irska;Danska;7;;
+1999;finale;Irska;Nizozemska;1;;
+1999;finale;Irska;Slovenija;12;;
+1999;finale;Irska;Belgija;10;;
+1999;finale;Irska;Norveška;3;;
+1999;finale;Irska;Francija;2;;
+1999;finale;Izrael;Švedska;8;;
+1999;finale;Izrael;Islandija;10;;
+1999;finale;Izrael;Nemčija;12;;
+1999;finale;Izrael;Hrvaška;7;;
+1999;finale;Izrael;Estonija;1;;
+1999;finale;Izrael;Danska;2;;
+1999;finale;Izrael;Nizozemska;6;;
+1999;finale;Izrael;Belgija;5;;
+1999;finale;Izrael;Velika Britanija;4;;
+1999;finale;Izrael;Litva;3;;
+1999;finale;Litva;Švedska;3;;
+1999;finale;Litva;Islandija;8;;
+1999;finale;Litva;Hrvaška;6;;
+1999;finale;Litva;Estonija;1;;
+1999;finale;Litva;Nizozemska;4;;
+1999;finale;Litva;Slovenija;10;;
+1999;finale;Litva;Velika Britanija;5;;
+1999;finale;Litva;Irska;12;;
+1999;finale;Litva;Poljska;7;;
+1999;finale;Litva;Francija;2;;
+1999;finale;Malta;Švedska;12;;
+1999;finale;Malta;Islandija;10;;
+1999;finale;Malta;Nemčija;3;;
+1999;finale;Malta;Hrvaška;5;;
+1999;finale;Malta;Izrael;6;;
+1999;finale;Malta;Estonija;7;;
+1999;finale;Malta;Danska;4;;
+1999;finale;Malta;Nizozemska;2;;
+1999;finale;Malta;Velika Britanija;8;;
+1999;finale;Malta;Litva;1;;
+1999;finale;Nizozemska;Švedska;8;;
+1999;finale;Nizozemska;Islandija;7;;
+1999;finale;Nizozemska;Nemčija;12;;
+1999;finale;Nizozemska;Hrvaška;1;;
+1999;finale;Nizozemska;Izrael;4;;
+1999;finale;Nizozemska;Estonija;5;;
+1999;finale;Nizozemska;Bosna in Hercegovina;3;;
+1999;finale;Nizozemska;Avstrija;2;;
+1999;finale;Nizozemska;Slovenija;6;;
+1999;finale;Nizozemska;Belgija;10;;
+1999;finale;Norveška;Švedska;12;;
+1999;finale;Norveška;Islandija;10;;
+1999;finale;Norveška;Nemčija;3;;
+1999;finale;Norveška;Izrael;2;;
+1999;finale;Norveška;Estonija;5;;
+1999;finale;Norveška;Bosna in Hercegovina;7;;
+1999;finale;Norveška;Avstrija;6;;
+1999;finale;Norveška;Turčija;4;;
+1999;finale;Norveška;Irska;1;;
+1999;finale;Norveška;Francija;8;;
+1999;finale;Poljska;Švedska;6;;
+1999;finale;Poljska;Islandija;4;;
+1999;finale;Poljska;Nemčija;12;;
+1999;finale;Poljska;Hrvaška;7;;
+1999;finale;Poljska;Izrael;10;;
+1999;finale;Poljska;Estonija;8;;
+1999;finale;Poljska;Bosna in Hercegovina;5;;
+1999;finale;Poljska;Danska;1;;
+1999;finale;Poljska;Avstrija;3;;
+1999;finale;Poljska;Belgija;2;;
+1999;finale;Portugalska;Švedska;10;;
+1999;finale;Portugalska;Islandija;4;;
+1999;finale;Portugalska;Nemčija;12;;
+1999;finale;Portugalska;Hrvaška;6;;
+1999;finale;Portugalska;Izrael;8;;
+1999;finale;Portugalska;Estonija;7;;
+1999;finale;Portugalska;Danska;3;;
+1999;finale;Portugalska;Nizozemska;2;;
+1999;finale;Portugalska;Avstrija;5;;
+1999;finale;Portugalska;Malta;1;;
+1999;finale;Slovenija;Švedska;7;;
+1999;finale;Slovenija;Nemčija;6;;
+1999;finale;Slovenija;Hrvaška;12;;
+1999;finale;Slovenija;Izrael;1;;
+1999;finale;Slovenija;Estonija;8;;
+1999;finale;Slovenija;Bosna in Hercegovina;10;;
+1999;finale;Slovenija;Danska;5;;
+1999;finale;Slovenija;Nizozemska;3;;
+1999;finale;Slovenija;Avstrija;4;;
+1999;finale;Slovenija;Velika Britanija;2;;
+1999;finale;Španija;Švedska;6;;
+1999;finale;Španija;Islandija;10;;
+1999;finale;Španija;Nemčija;7;;
+1999;finale;Španija;Hrvaška;12;;
+1999;finale;Španija;Izrael;8;;
+1999;finale;Španija;Estonija;1;;
+1999;finale;Španija;Danska;5;;
+1999;finale;Španija;Nizozemska;3;;
+1999;finale;Španija;Slovenija;2;;
+1999;finale;Španija;Velika Britanija;4;;
+1999;finale;Švedska;Islandija;12;;
+1999;finale;Švedska;Nemčija;2;;
+1999;finale;Švedska;Hrvaška;1;;
+1999;finale;Švedska;Izrael;3;;
+1999;finale;Švedska;Estonija;10;;
+1999;finale;Švedska;Bosna in Hercegovina;6;;
+1999;finale;Švedska;Danska;8;;
+1999;finale;Švedska;Nizozemska;4;;
+1999;finale;Švedska;Avstrija;7;;
+1999;finale;Švedska;Norveška;5;;
+1999;finale;Turčija;Švedska;6;;
+1999;finale;Turčija;Islandija;10;;
+1999;finale;Turčija;Nemčija;12;;
+1999;finale;Turčija;Hrvaška;8;;
+1999;finale;Turčija;Izrael;3;;
+1999;finale;Turčija;Bosna in Hercegovina;7;;
+1999;finale;Turčija;Nizozemska;5;;
+1999;finale;Turčija;Velika Britanija;4;;
+1999;finale;Turčija;Irska;1;;
+1999;finale;Turčija;Francija;2;;
+1999;finale;Velika Britanija;Švedska;12;;
+1999;finale;Velika Britanija;Islandija;10;;
+1999;finale;Velika Britanija;Nemčija;1;;
+1999;finale;Velika Britanija;Estonija;3;;
+1999;finale;Velika Britanija;Danska;5;;
+1999;finale;Velika Britanija;Nizozemska;8;;
+1999;finale;Velika Britanija;Avstrija;7;;
+1999;finale;Velika Britanija;Malta;6;;
+1999;finale;Velika Britanija;Irska;4;;
+1999;finale;Velika Britanija;Ciper;2;;
+2015;finale;Albanija;Švedska;7;;
+2015;finale;Albanija;Rusija;8;;
+2015;finale;Albanija;Italija;12;;
+2015;finale;Albanija;Belgija;1;;
+2015;finale;Albanija;Avstralija;3;;
+2015;finale;Albanija;Estonija;4;;
+2015;finale;Albanija;Izrael;5;;
+2015;finale;Albanija;Srbija;2;;
+2015;finale;Albanija;Črna gora;6;;
+2015;finale;Albanija;Grčija;10;;
+2015;finale;Armenija;Švedska;7;;
+2015;finale;Armenija;Rusija;12;;
+2015;finale;Armenija;Italija;6;;
+2015;finale;Armenija;Belgija;4;;
+2015;finale;Armenija;Avstralija;1;;
+2015;finale;Armenija;Latvija;2;;
+2015;finale;Armenija;Gruzija;10;;
+2015;finale;Armenija;Črna gora;8;;
+2015;finale;Armenija;Grčija;5;;
+2015;finale;Armenija;Francija;3;;
+2015;finale;Avstralija;Švedska;12;;
+2015;finale;Avstralija;Rusija;10;;
+2015;finale;Avstralija;Italija;8;;
+2015;finale;Avstralija;Belgija;6;;
+2015;finale;Avstralija;Latvija;7;;
+2015;finale;Avstralija;Estonija;3;;
+2015;finale;Avstralija;Norveška;4;;
+2015;finale;Avstralija;Izrael;2;;
+2015;finale;Avstralija;Srbija;5;;
+2015;finale;Avstralija;Gruzija;1;;
+2015;finale;Avstrija;Švedska;7;;
+2015;finale;Avstrija;Rusija;8;;
+2015;finale;Avstrija;Italija;10;;
+2015;finale;Avstrija;Belgija;5;;
+2015;finale;Avstrija;Avstralija;12;;
+2015;finale;Avstrija;Latvija;1;;
+2015;finale;Avstrija;Estonija;6;;
+2015;finale;Avstrija;Norveška;4;;
+2015;finale;Avstrija;Izrael;2;;
+2015;finale;Avstrija;Srbija;3;;
+2015;finale;Azerbajdžan;Švedska;6;;
+2015;finale;Azerbajdžan;Rusija;12;;
+2015;finale;Azerbajdžan;Italija;8;;
+2015;finale;Azerbajdžan;Latvija;5;;
+2015;finale;Azerbajdžan;Estonija;4;;
+2015;finale;Azerbajdžan;Izrael;7;;
+2015;finale;Azerbajdžan;Gruzija;10;;
+2015;finale;Azerbajdžan;Črna gora;2;;
+2015;finale;Azerbajdžan;Slovenija;3;;
+2015;finale;Azerbajdžan;Španija;1;;
+2015;finale;Belorusija;Švedska;10;;
+2015;finale;Belorusija;Rusija;12;;
+2015;finale;Belorusija;Italija;1;;
+2015;finale;Belorusija;Belgija;8;;
+2015;finale;Belorusija;Avstralija;6;;
+2015;finale;Belorusija;Latvija;5;;
+2015;finale;Belorusija;Estonija;7;;
+2015;finale;Belorusija;Izrael;2;;
+2015;finale;Belorusija;Gruzija;3;;
+2015;finale;Belorusija;Armenija;4;;
+2015;finale;Belgija;Švedska;12;;
+2015;finale;Belgija;Rusija;10;;
+2015;finale;Belgija;Italija;8;;
+2015;finale;Belgija;Avstralija;4;;
+2015;finale;Belgija;Latvija;7;;
+2015;finale;Belgija;Estonija;2;;
+2015;finale;Belgija;Gruzija;1;;
+2015;finale;Belgija;Romunija;5;;
+2015;finale;Belgija;Armenija;3;;
+2015;finale;Belgija;Albanija;6;;
+2015;finale;Ciper;Švedska;10;;
+2015;finale;Ciper;Rusija;5;;
+2015;finale;Ciper;Italija;12;;
+2015;finale;Ciper;Belgija;7;;
+2015;finale;Ciper;Avstralija;4;;
+2015;finale;Ciper;Latvija;3;;
+2015;finale;Ciper;Estonija;2;;
+2015;finale;Ciper;Izrael;6;;
+2015;finale;Ciper;Romunija;1;;
+2015;finale;Ciper;Grčija;8;;
+2015;finale;Češka;Švedska;10;;
+2015;finale;Češka;Rusija;8;;
+2015;finale;Češka;Italija;7;;
+2015;finale;Češka;Belgija;6;;
+2015;finale;Češka;Latvija;5;;
+2015;finale;Češka;Srbija;3;;
+2015;finale;Češka;Gruzija;4;;
+2015;finale;Češka;Azerbajdžan;12;;
+2015;finale;Češka;Armenija;2;;
+2015;finale;Češka;Madžarska;1;;
+2015;finale;Danska;Švedska;12;;
+2015;finale;Danska;Rusija;10;;
+2015;finale;Danska;Italija;5;;
+2015;finale;Danska;Belgija;7;;
+2015;finale;Danska;Avstralija;8;;
+2015;finale;Danska;Latvija;4;;
+2015;finale;Danska;Estonija;6;;
+2015;finale;Danska;Norveška;3;;
+2015;finale;Danska;Romunija;2;;
+2015;finale;Danska;Litva;1;;
+2015;finale;Estonija;Švedska;10;;
+2015;finale;Estonija;Rusija;12;;
+2015;finale;Estonija;Italija;3;;
+2015;finale;Estonija;Belgija;7;;
+2015;finale;Estonija;Avstralija;5;;
+2015;finale;Estonija;Latvija;6;;
+2015;finale;Estonija;Norveška;4;;
+2015;finale;Estonija;Gruzija;1;;
+2015;finale;Estonija;Litva;2;;
+2015;finale;Estonija;Madžarska;8;;
+2015;finale;Finska;Švedska;12;;
+2015;finale;Finska;Rusija;8;;
+2015;finale;Finska;Italija;2;;
+2015;finale;Finska;Belgija;7;;
+2015;finale;Finska;Avstralija;5;;
+2015;finale;Finska;Latvija;6;;
+2015;finale;Finska;Estonija;10;;
+2015;finale;Finska;Norveška;4;;
+2015;finale;Finska;Izrael;3;;
+2015;finale;Finska;Slovenija;1;;
+2015;finale;Francija;Švedska;8;;
+2015;finale;Francija;Rusija;10;;
+2015;finale;Francija;Italija;6;;
+2015;finale;Francija;Belgija;12;;
+2015;finale;Francija;Avstralija;2;;
+2015;finale;Francija;Latvija;7;;
+2015;finale;Francija;Armenija;3;;
+2015;finale;Francija;Madžarska;1;;
+2015;finale;Francija;Španija;5;;
+2015;finale;Francija;Poljska;4;;
+2015;finale;Gruzija;Švedska;7;;
+2015;finale;Gruzija;Rusija;5;;
+2015;finale;Gruzija;Italija;8;;
+2015;finale;Gruzija;Belgija;6;;
+2015;finale;Gruzija;Latvija;4;;
+2015;finale;Gruzija;Estonija;2;;
+2015;finale;Gruzija;Izrael;1;;
+2015;finale;Gruzija;Azerbajdžan;10;;
+2015;finale;Gruzija;Armenija;12;;
+2015;finale;Gruzija;Litva;3;;
+2015;finale;Nemčija;Švedska;10;;
+2015;finale;Nemčija;Rusija;12;;
+2015;finale;Nemčija;Italija;3;;
+2015;finale;Nemčija;Belgija;8;;
+2015;finale;Nemčija;Avstralija;7;;
+2015;finale;Nemčija;Latvija;6;;
+2015;finale;Nemčija;Estonija;2;;
+2015;finale;Nemčija;Norveška;4;;
+2015;finale;Nemčija;Izrael;5;;
+2015;finale;Nemčija;Madžarska;1;;
+2015;finale;Grčija;Švedska;4;;
+2015;finale;Grčija;Rusija;8;;
+2015;finale;Grčija;Italija;12;;
+2015;finale;Grčija;Belgija;7;;
+2015;finale;Grčija;Avstralija;5;;
+2015;finale;Grčija;Latvija;3;;
+2015;finale;Grčija;Gruzija;2;;
+2015;finale;Grčija;Armenija;1;;
+2015;finale;Grčija;Albanija;6;;
+2015;finale;Grčija;Ciper;10;;
+2015;finale;Madžarska;Švedska;10;;
+2015;finale;Madžarska;Rusija;6;;
+2015;finale;Madžarska;Italija;2;;
+2015;finale;Madžarska;Belgija;12;;
+2015;finale;Madžarska;Avstralija;8;;
+2015;finale;Madžarska;Latvija;5;;
+2015;finale;Madžarska;Estonija;7;;
+2015;finale;Madžarska;Norveška;4;;
+2015;finale;Madžarska;Gruzija;3;;
+2015;finale;Madžarska;Romunija;1;;
+2015;finale;Islandija;Švedska;12;;
+2015;finale;Islandija;Rusija;3;;
+2015;finale;Islandija;Italija;6;;
+2015;finale;Islandija;Belgija;4;;
+2015;finale;Islandija;Avstralija;8;;
+2015;finale;Islandija;Latvija;7;;
+2015;finale;Islandija;Estonija;1;;
+2015;finale;Islandija;Norveška;10;;
+2015;finale;Islandija;Izrael;5;;
+2015;finale;Islandija;Slovenija;2;;
+2015;finale;Irska;Švedska;10;;
+2015;finale;Irska;Rusija;8;;
+2015;finale;Irska;Italija;6;;
+2015;finale;Irska;Belgija;2;;
+2015;finale;Irska;Avstralija;5;;
+2015;finale;Irska;Latvija;12;;
+2015;finale;Irska;Norveška;4;;
+2015;finale;Irska;Litva;7;;
+2015;finale;Irska;Poljska;3;;
+2015;finale;Irska;Velika Britanija;1;;
+2015;finale;Izrael;Švedska;10;;
+2015;finale;Izrael;Rusija;8;;
+2015;finale;Izrael;Italija;12;;
+2015;finale;Izrael;Belgija;4;;
+2015;finale;Izrael;Avstralija;7;;
+2015;finale;Izrael;Estonija;3;;
+2015;finale;Izrael;Srbija;2;;
+2015;finale;Izrael;Slovenija;6;;
+2015;finale;Izrael;Romunija;5;;
+2015;finale;Izrael;Španija;1;;
+2015;finale;Italija;Švedska;12;;
+2015;finale;Italija;Rusija;10;;
+2015;finale;Italija;Belgija;7;;
+2015;finale;Italija;Avstralija;6;;
+2015;finale;Italija;Latvija;4;;
+2015;finale;Italija;Estonija;2;;
+2015;finale;Italija;Norveška;5;;
+2015;finale;Italija;Izrael;8;;
+2015;finale;Italija;Srbija;3;;
+2015;finale;Italija;Poljska;1;;
+2015;finale;Latvija;Švedska;12;;
+2015;finale;Latvija;Rusija;10;;
+2015;finale;Latvija;Italija;8;;
+2015;finale;Latvija;Belgija;4;;
+2015;finale;Latvija;Avstralija;5;;
+2015;finale;Latvija;Estonija;6;;
+2015;finale;Latvija;Norveška;2;;
+2015;finale;Latvija;Izrael;1;;
+2015;finale;Latvija;Slovenija;3;;
+2015;finale;Latvija;Litva;7;;
+2015;finale;Litva;Švedska;10;;
+2015;finale;Litva;Italija;1;;
+2015;finale;Litva;Belgija;7;;
+2015;finale;Litva;Avstralija;3;;
+2015;finale;Litva;Latvija;12;;
+2015;finale;Litva;Estonija;8;;
+2015;finale;Litva;Norveška;5;;
+2015;finale;Litva;Gruzija;6;;
+2015;finale;Litva;Azerbajdžan;2;;
+2015;finale;Litva;Slovenija;4;;
+2015;finale;Malta;Švedska;10;;
+2015;finale;Malta;Rusija;7;;
+2015;finale;Malta;Italija;12;;
+2015;finale;Malta;Avstralija;6;;
+2015;finale;Malta;Latvija;4;;
+2015;finale;Malta;Estonija;3;;
+2015;finale;Malta;Norveška;2;;
+2015;finale;Malta;Izrael;5;;
+2015;finale;Malta;Azerbajdžan;8;;
+2015;finale;Malta;Velika Britanija;1;;
+2015;finale;Moldavija;Švedska;8;;
+2015;finale;Moldavija;Rusija;10;;
+2015;finale;Moldavija;Italija;7;;
+2015;finale;Moldavija;Belgija;6;;
+2015;finale;Moldavija;Avstralija;4;;
+2015;finale;Moldavija;Latvija;2;;
+2015;finale;Moldavija;Gruzija;5;;
+2015;finale;Moldavija;Azerbajdžan;3;;
+2015;finale;Moldavija;Romunija;12;;
+2015;finale;Moldavija;Španija;1;;
+2015;finale;Črna gora;Švedska;5;;
+2015;finale;Črna gora;Rusija;7;;
+2015;finale;Črna gora;Italija;6;;
+2015;finale;Črna gora;Estonija;1;;
+2015;finale;Črna gora;Izrael;3;;
+2015;finale;Črna gora;Srbija;12;;
+2015;finale;Črna gora;Azerbajdžan;8;;
+2015;finale;Črna gora;Slovenija;4;;
+2015;finale;Črna gora;Albanija;10;;
+2015;finale;Črna gora;Španija;2;;
+2015;finale;Nizozemska;Švedska;10;;
+2015;finale;Nizozemska;Rusija;6;;
+2015;finale;Nizozemska;Italija;7;;
+2015;finale;Nizozemska;Belgija;12;;
+2015;finale;Nizozemska;Avstralija;8;;
+2015;finale;Nizozemska;Latvija;2;;
+2015;finale;Nizozemska;Estonija;4;;
+2015;finale;Nizozemska;Norveška;3;;
+2015;finale;Nizozemska;Izrael;5;;
+2015;finale;Nizozemska;Srbija;1;;
+2015;finale;Severna Makedonija;Švedska;5;;
+2015;finale;Severna Makedonija;Rusija;6;;
+2015;finale;Severna Makedonija;Italija;7;;
+2015;finale;Severna Makedonija;Belgija;1;;
+2015;finale;Severna Makedonija;Estonija;2;;
+2015;finale;Severna Makedonija;Srbija;10;;
+2015;finale;Severna Makedonija;Črna gora;4;;
+2015;finale;Severna Makedonija;Slovenija;8;;
+2015;finale;Severna Makedonija;Armenija;3;;
+2015;finale;Severna Makedonija;Albanija;12;;
+2015;finale;Norveška;Švedska;12;;
+2015;finale;Norveška;Rusija;2;;
+2015;finale;Norveška;Italija;5;;
+2015;finale;Norveška;Belgija;7;;
+2015;finale;Norveška;Avstralija;10;;
+2015;finale;Norveška;Latvija;8;;
+2015;finale;Norveška;Estonija;3;;
+2015;finale;Norveška;Izrael;4;;
+2015;finale;Norveška;Slovenija;1;;
+2015;finale;Norveška;Litva;6;;
+2015;finale;Poljska;Švedska;12;;
+2015;finale;Poljska;Rusija;6;;
+2015;finale;Poljska;Italija;7;;
+2015;finale;Poljska;Belgija;5;;
+2015;finale;Poljska;Avstralija;8;;
+2015;finale;Poljska;Latvija;10;;
+2015;finale;Poljska;Estonija;2;;
+2015;finale;Poljska;Norveška;3;;
+2015;finale;Poljska;Izrael;4;;
+2015;finale;Poljska;Slovenija;1;;
+2015;finale;Portugalska;Švedska;8;;
+2015;finale;Portugalska;Rusija;10;;
+2015;finale;Portugalska;Italija;12;;
+2015;finale;Portugalska;Belgija;5;;
+2015;finale;Portugalska;Latvija;2;;
+2015;finale;Portugalska;Estonija;1;;
+2015;finale;Portugalska;Norveška;6;;
+2015;finale;Portugalska;Izrael;7;;
+2015;finale;Portugalska;Romunija;4;;
+2015;finale;Portugalska;Španija;3;;
+2015;finale;Romunija;Švedska;8;;
+2015;finale;Romunija;Rusija;10;;
+2015;finale;Romunija;Italija;12;;
+2015;finale;Romunija;Belgija;7;;
+2015;finale;Romunija;Avstralija;2;;
+2015;finale;Romunija;Latvija;5;;
+2015;finale;Romunija;Norveška;6;;
+2015;finale;Romunija;Izrael;1;;
+2015;finale;Romunija;Azerbajdžan;3;;
+2015;finale;Romunija;Madžarska;4;;
+2015;finale;Rusija;Švedska;8;;
+2015;finale;Rusija;Italija;12;;
+2015;finale;Rusija;Belgija;10;;
+2015;finale;Rusija;Avstralija;4;;
+2015;finale;Rusija;Latvija;2;;
+2015;finale;Rusija;Estonija;7;;
+2015;finale;Rusija;Gruzija;5;;
+2015;finale;Rusija;Azerbajdžan;3;;
+2015;finale;Rusija;Armenija;6;;
+2015;finale;Rusija;Španija;1;;
+2015;finale;San Marino;Švedska;7;;
+2015;finale;San Marino;Italija;10;;
+2015;finale;San Marino;Belgija;5;;
+2015;finale;San Marino;Avstralija;8;;
+2015;finale;San Marino;Latvija;12;;
+2015;finale;San Marino;Norveška;6;;
+2015;finale;San Marino;Izrael;2;;
+2015;finale;San Marino;Madžarska;4;;
+2015;finale;San Marino;Velika Britanija;3;;
+2015;finale;San Marino;Francija;1;;
+2015;finale;Srbija;Švedska;8;;
+2015;finale;Srbija;Rusija;10;;
+2015;finale;Srbija;Italija;7;;
+2015;finale;Srbija;Belgija;4;;
+2015;finale;Srbija;Avstralija;3;;
+2015;finale;Srbija;Latvija;1;;
+2015;finale;Srbija;Estonija;2;;
+2015;finale;Srbija;Izrael;6;;
+2015;finale;Srbija;Črna gora;12;;
+2015;finale;Srbija;Slovenija;5;;
+2015;finale;Slovenija;Švedska;12;;
+2015;finale;Slovenija;Rusija;5;;
+2015;finale;Slovenija;Italija;8;;
+2015;finale;Slovenija;Belgija;3;;
+2015;finale;Slovenija;Avstralija;2;;
+2015;finale;Slovenija;Latvija;7;;
+2015;finale;Slovenija;Norveška;4;;
+2015;finale;Slovenija;Srbija;6;;
+2015;finale;Slovenija;Črna gora;10;;
+2015;finale;Slovenija;Ciper;1;;
+2015;finale;Španija;Švedska;8;;
+2015;finale;Španija;Rusija;10;;
+2015;finale;Španija;Italija;12;;
+2015;finale;Španija;Belgija;6;;
+2015;finale;Španija;Avstralija;7;;
+2015;finale;Španija;Latvija;4;;
+2015;finale;Španija;Estonija;3;;
+2015;finale;Španija;Norveška;2;;
+2015;finale;Španija;Izrael;1;;
+2015;finale;Španija;Romunija;5;;
+2015;finale;Švedska;Rusija;6;;
+2015;finale;Švedska;Italija;8;;
+2015;finale;Švedska;Belgija;10;;
+2015;finale;Švedska;Avstralija;12;;
+2015;finale;Švedska;Latvija;5;;
+2015;finale;Švedska;Estonija;3;;
+2015;finale;Švedska;Norveška;7;;
+2015;finale;Švedska;Izrael;4;;
+2015;finale;Švedska;Črna gora;2;;
+2015;finale;Švedska;Slovenija;1;;
+2015;finale;Švica;Švedska;12;;
+2015;finale;Švica;Rusija;7;;
+2015;finale;Švica;Italija;6;;
+2015;finale;Švica;Belgija;2;;
+2015;finale;Švica;Avstralija;8;;
+2015;finale;Švica;Latvija;4;;
+2015;finale;Švica;Norveška;10;;
+2015;finale;Švica;Izrael;3;;
+2015;finale;Švica;Srbija;5;;
+2015;finale;Švica;Španija;1;;
+2015;finale;Velika Britanija;Švedska;12;;
+2015;finale;Velika Britanija;Rusija;6;;
+2015;finale;Velika Britanija;Italija;8;;
+2015;finale;Velika Britanija;Belgija;3;;
+2015;finale;Velika Britanija;Avstralija;10;;
+2015;finale;Velika Britanija;Latvija;7;;
+2015;finale;Velika Britanija;Izrael;5;;
+2015;finale;Velika Britanija;Srbija;1;;
+2015;finale;Velika Britanija;Litva;4;;
+2015;finale;Velika Britanija;Poljska;2;;
+2023;finale;Albanija;Švedska;22;10;12
+2023;finale;Albanija;Finska;6;6;0
+2023;finale;Albanija;Izrael;11;5;6
+2023;finale;Albanija;Italija;14;12;2
+2023;finale;Albanija;Norveška;4;4;0
+2023;finale;Albanija;Belgija;5;0;5
+2023;finale;Albanija;Estonija;8;0;8
+2023;finale;Albanija;Avstralija;3;0;3
+2023;finale;Albanija;Ciper;11;7;4
+2023;finale;Albanija;Hrvaška;8;8;0
+2023;finale;Albanija;Armenija;10;0;10
+2023;finale;Albanija;Francija;3;3;0
+2023;finale;Albanija;Španija;1;0;1
+2023;finale;Albanija;Poljska;1;1;0
+2023;finale;Albanija;Švica;7;0;7
+2023;finale;Albanija;Slovenija;2;2;0
+2023;finale;Armenija;Švedska;17;7;10
+2023;finale;Armenija;Finska;14;6;8
+2023;finale;Armenija;Izrael;24;12;12
+2023;finale;Armenija;Italija;3;3;0
+2023;finale;Armenija;Norveška;8;4;4
+2023;finale;Armenija;Ukrajina;4;1;3
+2023;finale;Armenija;Ciper;13;8;5
+2023;finale;Armenija;Avstrija;2;0;2
+2023;finale;Armenija;Francija;17;10;7
+2023;finale;Armenija;Španija;6;0;6
+2023;finale;Armenija;Poljska;6;5;1
+2023;finale;Armenija;Švica;2;2;0
+2023;finale;Avstralija;Švedska;17;10;7
+2023;finale;Avstralija;Finska;17;12;5
+2023;finale;Avstralija;Izrael;5;5;0
+2023;finale;Avstralija;Italija;1;0;1
+2023;finale;Avstralija;Norveška;6;6;0
+2023;finale;Avstralija;Belgija;15;3;12
+2023;finale;Avstralija;Estonija;8;0;8
+2023;finale;Avstralija;Litva;10;0;10
+2023;finale;Avstralija;Ciper;11;8;3
+2023;finale;Avstralija;Hrvaška;4;4;0
+2023;finale;Avstralija;Avstrija;13;7;6
+2023;finale;Avstralija;Francija;2;2;0
+2023;finale;Avstralija;Španija;4;0;4
+2023;finale;Avstralija;Slovenija;1;1;0
+2023;finale;Avstralija;Portugalska;2;0;2
+2023;finale;Avstrija;Švedska;14;4;10
+2023;finale;Avstrija;Finska;20;12;8
+2023;finale;Avstrija;Izrael;1;1;0
+2023;finale;Avstrija;Italija;20;8;12
+2023;finale;Avstrija;Norveška;7;7;0
+2023;finale;Avstrija;Ukrajina;5;5;0
+2023;finale;Avstrija;Belgija;3;0;3
+2023;finale;Avstrija;Češka;5;0;5
+2023;finale;Avstrija;Litva;7;0;7
+2023;finale;Avstrija;Ciper;2;0;2
+2023;finale;Avstrija;Hrvaška;10;10;0
+2023;finale;Avstrija;Armenija;1;0;1
+2023;finale;Avstrija;Švica;6;2;4
+2023;finale;Avstrija;Slovenija;6;0;6
+2023;finale;Avstrija;Albanija;3;3;0
+2023;finale;Avstrija;Nemčija;6;6;0
+2023;finale;Azerbajdžan;Švedska;20;10;10
+2023;finale;Azerbajdžan;Finska;11;8;3
+2023;finale;Azerbajdžan;Izrael;24;12;12
+2023;finale;Azerbajdžan;Italija;10;4;6
+2023;finale;Azerbajdžan;Norveška;2;2;0
+2023;finale;Azerbajdžan;Ukrajina;9;7;2
+2023;finale;Azerbajdžan;Estonija;1;0;1
+2023;finale;Azerbajdžan;Avstralija;5;0;5
+2023;finale;Azerbajdžan;Češka;3;3;0
+2023;finale;Azerbajdžan;Ciper;6;6;0
+2023;finale;Azerbajdžan;Španija;7;0;7
+2023;finale;Azerbajdžan;Švica;5;1;4
+2023;finale;Azerbajdžan;Slovenija;5;5;0
+2023;finale;Azerbajdžan;Albanija;8;0;8
+2023;finale;Belgija;Švedska;18;10;8
+2023;finale;Belgija;Finska;17;12;5
+2023;finale;Belgija;Izrael;15;5;10
+2023;finale;Belgija;Italija;14;7;7
+2023;finale;Belgija;Norveška;8;8;0
+2023;finale;Belgija;Ukrajina;1;1;0
+2023;finale;Belgija;Avstralija;4;0;4
+2023;finale;Belgija;Češka;3;0;3
+2023;finale;Belgija;Armenija;6;6;0
+2023;finale;Belgija;Avstrija;12;0;12
+2023;finale;Belgija;Francija;3;2;1
+2023;finale;Belgija;Španija;6;0;6
+2023;finale;Belgija;Poljska;6;4;2
+2023;finale;Belgija;Albanija;3;3;0
+2023;finale;Hrvaška;Švedska;12;2;10
+2023;finale;Hrvaška;Finska;17;10;7
+2023;finale;Hrvaška;Izrael;12;4;8
+2023;finale;Hrvaška;Italija;20;8;12
+2023;finale;Hrvaška;Norveška;5;5;0
+2023;finale;Hrvaška;Estonija;3;0;3
+2023;finale;Hrvaška;Češka;3;3;0
+2023;finale;Hrvaška;Španija;6;0;6
+2023;finale;Hrvaška;Moldavija;3;1;2
+2023;finale;Hrvaška;Slovenija;17;12;5
+2023;finale;Hrvaška;Albanija;6;6;0
+2023;finale;Hrvaška;Portugalska;1;0;1
+2023;finale;Hrvaška;Srbija;11;7;4
+2023;finale;Ciper;Švedska;20;8;12
+2023;finale;Ciper;Finska;10;7;3
+2023;finale;Ciper;Izrael;19;12;7
+2023;finale;Ciper;Italija;11;6;5
+2023;finale;Ciper;Norveška;5;5;0
+2023;finale;Ciper;Ukrajina;10;10;0
+2023;finale;Ciper;Avstralija;8;0;8
+2023;finale;Ciper;Češka;1;0;1
+2023;finale;Ciper;Armenija;8;4;4
+2023;finale;Ciper;Avstrija;10;0;10
+2023;finale;Ciper;Francija;3;3;0
+2023;finale;Ciper;Španija;6;0;6
+2023;finale;Ciper;Moldavija;1;1;0
+2023;finale;Ciper;Poljska;2;2;0
+2023;finale;Ciper;Švica;2;0;2
+2023;finale;Češka;Švedska;16;6;10
+2023;finale;Češka;Finska;15;10;5
+2023;finale;Češka;Izrael;8;8;0
+2023;finale;Češka;Italija;5;1;4
+2023;finale;Češka;Norveška;7;7;0
+2023;finale;Češka;Ukrajina;24;12;12
+2023;finale;Češka;Estonija;2;0;2
+2023;finale;Češka;Avstralija;7;0;7
+2023;finale;Češka;Hrvaška;4;4;0
+2023;finale;Češka;Armenija;10;2;8
+2023;finale;Češka;Španija;3;0;3
+2023;finale;Češka;Moldavija;5;5;0
+2023;finale;Češka;Slovenija;9;3;6
+2023;finale;Češka;Nemčija;1;0;1
+2023;finale;Danska;Švedska;20;8;12
+2023;finale;Danska;Finska;20;12;8
+2023;finale;Danska;Italija;3;3;0
+2023;finale;Danska;Norveška;20;10;10
+2023;finale;Danska;Ukrajina;7;7;0
+2023;finale;Danska;Belgija;9;6;3
+2023;finale;Danska;Avstralija;2;0;2
+2023;finale;Danska;Litva;4;0;4
+2023;finale;Danska;Ciper;7;2;5
+2023;finale;Danska;Avstrija;7;0;7
+2023;finale;Danska;Francija;6;0;6
+2023;finale;Danska;Moldavija;1;1;0
+2023;finale;Danska;Poljska;5;5;0
+2023;finale;Danska;Švica;4;4;0
+2023;finale;Danska;Velika Britanija;1;0;1
+2023;finale;Estonija;Švedska;22;10;12
+2023;finale;Estonija;Finska;22;12;10
+2023;finale;Estonija;Izrael;4;0;4
+2023;finale;Estonija;Italija;7;2;5
+2023;finale;Estonija;Norveška;7;7;0
+2023;finale;Estonija;Ukrajina;15;8;7
+2023;finale;Estonija;Belgija;6;0;6
+2023;finale;Estonija;Avstralija;14;6;8
+2023;finale;Estonija;Litva;6;5;1
+2023;finale;Estonija;Armenija;3;0;3
+2023;finale;Estonija;Španija;2;0;2
+2023;finale;Estonija;Poljska;3;3;0
+2023;finale;Estonija;Švica;4;4;0
+2023;finale;Estonija;Slovenija;1;1;0
+2023;finale;Finska;Švedska;12;0;12
+2023;finale;Finska;Italija;6;0;6
+2023;finale;Finska;Norveška;12;12;0
+2023;finale;Finska;Belgija;5;0;5
+2023;finale;Finska;Estonija;6;6;0
+2023;finale;Finska;Avstralija;8;8;0
+2023;finale;Finska;Češka;18;10;8
+2023;finale;Finska;Ciper;1;0;1
+2023;finale;Finska;Hrvaška;4;4;0
+2023;finale;Finska;Avstrija;4;2;2
+2023;finale;Finska;Francija;7;0;7
+2023;finale;Finska;Moldavija;3;3;0
+2023;finale;Finska;Švica;11;1;10
+2023;finale;Finska;Slovenija;7;7;0
+2023;finale;Finska;Portugalska;3;0;3
+2023;finale;Finska;Velika Britanija;4;0;4
+2023;finale;Finska;Nemčija;5;5;0
+2023;finale;Francija;Švedska;9;3;6
+2023;finale;Francija;Finska;14;6;8
+2023;finale;Francija;Izrael;22;10;12
+2023;finale;Francija;Italija;9;7;2
+2023;finale;Francija;Norveška;1;1;0
+2023;finale;Francija;Ukrajina;5;4;1
+2023;finale;Francija;Belgija;2;2;0
+2023;finale;Francija;Češka;4;0;4
+2023;finale;Francija;Armenija;19;12;7
+2023;finale;Francija;Avstrija;10;0;10
+2023;finale;Francija;Moldavija;8;8;0
+2023;finale;Francija;Švica;3;0;3
+2023;finale;Francija;Portugalska;10;5;5
+2023;finale;Gruzija;Švedska;11;7;4
+2023;finale;Gruzija;Finska;9;8;1
+2023;finale;Gruzija;Izrael;13;6;7
+2023;finale;Gruzija;Italija;13;5;8
+2023;finale;Gruzija;Norveška;2;2;0
+2023;finale;Gruzija;Ukrajina;10;10;0
+2023;finale;Gruzija;Belgija;12;0;12
+2023;finale;Gruzija;Estonija;5;0;5
+2023;finale;Gruzija;Avstralija;2;0;2
+2023;finale;Gruzija;Litva;10;4;6
+2023;finale;Gruzija;Ciper;3;0;3
+2023;finale;Gruzija;Hrvaška;1;1;0
+2023;finale;Gruzija;Armenija;22;12;10
+2023;finale;Gruzija;Moldavija;3;3;0
+2023;finale;Nemčija;Švedska;13;1;12
+2023;finale;Nemčija;Finska;12;12;0
+2023;finale;Nemčija;Italija;14;10;4
+2023;finale;Nemčija;Norveška;11;5;6
+2023;finale;Nemčija;Ukrajina;7;7;0
+2023;finale;Nemčija;Belgija;2;2;0
+2023;finale;Nemčija;Estonija;10;0;10
+2023;finale;Nemčija;Avstralija;8;0;8
+2023;finale;Nemčija;Češka;5;0;5
+2023;finale;Nemčija;Litva;1;0;1
+2023;finale;Nemčija;Hrvaška;6;6;0
+2023;finale;Nemčija;Avstrija;2;0;2
+2023;finale;Nemčija;Španija;7;0;7
+2023;finale;Nemčija;Poljska;4;4;0
+2023;finale;Nemčija;Švica;3;3;0
+2023;finale;Nemčija;Albanija;8;8;0
+2023;finale;Nemčija;Srbija;3;0;3
+2023;finale;Grčija;Švedska;14;8;6
+2023;finale;Grčija;Finska;10;10;0
+2023;finale;Grčija;Izrael;15;7;8
+2023;finale;Grčija;Italija;5;5;0
+2023;finale;Grčija;Norveška;6;6;0
+2023;finale;Grčija;Belgija;12;0;12
+2023;finale;Grčija;Avstralija;5;0;5
+2023;finale;Grčija;Češka;1;1;0
+2023;finale;Grčija;Ciper;16;12;4
+2023;finale;Grčija;Armenija;2;2;0
+2023;finale;Grčija;Avstrija;7;0;7
+2023;finale;Grčija;Francija;3;3;0
+2023;finale;Grčija;Švica;2;0;2
+2023;finale;Grčija;Albanija;7;4;3
+2023;finale;Grčija;Portugalska;10;0;10
+2023;finale;Grčija;Srbija;1;0;1
+2023;finale;Islandija;Švedska;17;10;7
+2023;finale;Islandija;Finska;22;12;10
+2023;finale;Islandija;Italija;1;1;0
+2023;finale;Islandija;Norveška;12;8;4
+2023;finale;Islandija;Ukrajina;2;2;0
+2023;finale;Islandija;Belgija;11;6;5
+2023;finale;Islandija;Avstralija;15;3;12
+2023;finale;Islandija;Češka;6;0;6
+2023;finale;Islandija;Hrvaška;5;5;0
+2023;finale;Islandija;Avstrija;8;0;8
+2023;finale;Islandija;Francija;4;4;0
+2023;finale;Islandija;Španija;3;0;3
+2023;finale;Islandija;Poljska;7;7;0
+2023;finale;Islandija;Srbija;1;0;1
+2023;finale;Islandija;Nemčija;2;0;2
+2023;finale;Irska;Švedska;18;6;12
+2023;finale;Irska;Finska;20;12;8
+2023;finale;Irska;Izrael;8;1;7
+2023;finale;Irska;Norveška;5;5;0
+2023;finale;Irska;Ukrajina;7;7;0
+2023;finale;Irska;Belgija;13;3;10
+2023;finale;Irska;Avstralija;4;0;4
+2023;finale;Irska;Češka;3;0;3
+2023;finale;Irska;Litva;11;10;1
+2023;finale;Irska;Hrvaška;2;2;0
+2023;finale;Irska;Armenija;6;0;6
+2023;finale;Irska;Francija;5;0;5
+2023;finale;Irska;Moldavija;4;4;0
+2023;finale;Irska;Poljska;8;8;0
+2023;finale;Irska;Velika Britanija;2;0;2
+2023;finale;Izrael;Švedska;16;4;12
+2023;finale;Izrael;Finska;20;12;8
+2023;finale;Izrael;Italija;7;7;0
+2023;finale;Izrael;Norveška;20;10;10
+2023;finale;Izrael;Ukrajina;15;8;7
+2023;finale;Izrael;Belgija;3;0;3
+2023;finale;Izrael;Estonija;5;0;5
+2023;finale;Izrael;Češka;6;2;4
+2023;finale;Izrael;Ciper;1;0;1
+2023;finale;Izrael;Hrvaška;6;6;0
+2023;finale;Izrael;Armenija;3;3;0
+2023;finale;Izrael;Avstrija;6;0;6
+2023;finale;Izrael;Francija;1;1;0
+2023;finale;Izrael;Moldavija;5;5;0
+2023;finale;Izrael;Poljska;2;0;2
+2023;finale;Italija;Švedska;11;3;8
+2023;finale;Italija;Finska;6;6;0
+2023;finale;Italija;Izrael;17;5;12
+2023;finale;Italija;Norveška;10;10;0
+2023;finale;Italija;Ukrajina;18;8;10
+2023;finale;Italija;Belgija;2;0;2
+2023;finale;Italija;Estonija;6;0;6
+2023;finale;Italija;Češka;9;2;7
+2023;finale;Italija;Litva;3;0;3
+2023;finale;Italija;Hrvaška;4;4;0
+2023;finale;Italija;Armenija;5;0;5
+2023;finale;Italija;Moldavija;12;12;0
+2023;finale;Italija;Švica;5;1;4
+2023;finale;Italija;Albanija;7;7;0
+2023;finale;Italija;Srbija;1;0;1
+2023;finale;Latvija;Švedska;18;8;10
+2023;finale;Latvija;Finska;12;12;0
+2023;finale;Latvija;Izrael;10;5;5
+2023;finale;Latvija;Italija;3;0;3
+2023;finale;Latvija;Norveška;3;3;0
+2023;finale;Latvija;Ukrajina;11;7;4
+2023;finale;Latvija;Belgija;2;0;2
+2023;finale;Latvija;Estonija;18;6;12
+2023;finale;Latvija;Češka;1;1;0
+2023;finale;Latvija;Litva;17;10;7
+2023;finale;Latvija;Ciper;6;0;6
+2023;finale;Latvija;Hrvaška;4;4;0
+2023;finale;Latvija;Armenija;1;0;1
+2023;finale;Latvija;Španija;8;0;8
+2023;finale;Latvija;Slovenija;2;2;0
+2023;finale;Litva;Švedska;19;7;12
+2023;finale;Litva;Finska;15;12;3
+2023;finale;Litva;Izrael;13;3;10
+2023;finale;Litva;Italija;6;6;0
+2023;finale;Litva;Ukrajina;12;10;2
+2023;finale;Litva;Belgija;7;0;7
+2023;finale;Litva;Estonija;10;5;5
+2023;finale;Litva;Avstralija;4;0;4
+2023;finale;Litva;Ciper;1;0;1
+2023;finale;Litva;Hrvaška;4;4;0
+2023;finale;Litva;Avstrija;8;0;8
+2023;finale;Litva;Francija;7;1;6
+2023;finale;Litva;Moldavija;2;2;0
+2023;finale;Litva;Poljska;8;8;0
+2023;finale;Malta;Švedska;22;10;12
+2023;finale;Malta;Finska;16;8;8
+2023;finale;Malta;Izrael;13;6;7
+2023;finale;Malta;Italija;22;12;10
+2023;finale;Malta;Norveška;9;7;2
+2023;finale;Malta;Ukrajina;5;5;0
+2023;finale;Malta;Litva;4;0;4
+2023;finale;Malta;Ciper;5;0;5
+2023;finale;Malta;Avstrija;1;0;1
+2023;finale;Malta;Francija;1;1;0
+2023;finale;Malta;Švica;6;0;6
+2023;finale;Malta;Albanija;3;3;0
+2023;finale;Malta;Portugalska;3;0;3
+2023;finale;Malta;Srbija;2;2;0
+2023;finale;Malta;Velika Britanija;4;4;0
+2023;finale;Moldavija;Švedska;20;8;12
+2023;finale;Moldavija;Finska;7;7;0
+2023;finale;Moldavija;Izrael;10;10;0
+2023;finale;Moldavija;Italija;15;5;10
+2023;finale;Moldavija;Norveška;6;6;0
+2023;finale;Moldavija;Ukrajina;18;12;6
+2023;finale;Moldavija;Estonija;7;0;7
+2023;finale;Moldavija;Avstralija;5;0;5
+2023;finale;Moldavija;Češka;1;1;0
+2023;finale;Moldavija;Ciper;7;3;4
+2023;finale;Moldavija;Armenija;4;2;2
+2023;finale;Moldavija;Španija;3;0;3
+2023;finale;Moldavija;Poljska;4;4;0
+2023;finale;Moldavija;Albanija;1;0;1
+2023;finale;Moldavija;Portugalska;8;0;8
+2023;finale;Nizozemska;Švedska;20;8;12
+2023;finale;Nizozemska;Finska;22;12;10
+2023;finale;Nizozemska;Izrael;8;6;2
+2023;finale;Nizozemska;Italija;3;3;0
+2023;finale;Nizozemska;Norveška;7;7;0
+2023;finale;Nizozemska;Belgija;14;10;4
+2023;finale;Nizozemska;Estonija;5;5;0
+2023;finale;Nizozemska;Avstralija;1;1;0
+2023;finale;Nizozemska;Češka;8;0;8
+2023;finale;Nizozemska;Avstrija;5;4;1
+2023;finale;Nizozemska;Francija;3;0;3
+2023;finale;Nizozemska;Španija;7;0;7
+2023;finale;Nizozemska;Poljska;2;2;0
+2023;finale;Nizozemska;Švica;6;0;6
+2023;finale;Nizozemska;Portugalska;5;0;5
+2023;finale;Norveška;Švedska;20;10;10
+2023;finale;Norveška;Finska;24;12;12
+2023;finale;Norveška;Izrael;6;3;3
+2023;finale;Norveška;Italija;13;7;6
+2023;finale;Norveška;Ukrajina;1;1;0
+2023;finale;Norveška;Belgija;4;4;0
+2023;finale;Norveška;Avstralija;5;0;5
+2023;finale;Norveška;Češka;4;0;4
+2023;finale;Norveška;Ciper;9;2;7
+2023;finale;Norveška;Francija;8;8;0
+2023;finale;Norveška;Španija;1;0;1
+2023;finale;Norveška;Moldavija;8;0;8
+2023;finale;Norveška;Poljska;6;6;0
+2023;finale;Norveška;Švica;7;5;2
+2023;finale;Poljska;Švedska;14;7;7
+2023;finale;Poljska;Finska;10;10;0
+2023;finale;Poljska;Izrael;17;5;12
+2023;finale;Poljska;Italija;6;0;6
+2023;finale;Poljska;Norveška;8;8;0
+2023;finale;Poljska;Ukrajina;12;12;0
+2023;finale;Poljska;Belgija;5;0;5
+2023;finale;Poljska;Estonija;8;0;8
+2023;finale;Poljska;Avstralija;4;0;4
+2023;finale;Poljska;Češka;3;3;0
+2023;finale;Poljska;Litva;4;1;3
+2023;finale;Poljska;Ciper;14;4;10
+2023;finale;Poljska;Hrvaška;6;6;0
+2023;finale;Poljska;Armenija;1;0;1
+2023;finale;Poljska;Švica;2;0;2
+2023;finale;Poljska;Slovenija;2;2;0
+2023;finale;Portugalska;Švedska;12;7;5
+2023;finale;Portugalska;Finska;10;10;0
+2023;finale;Portugalska;Izrael;5;5;0
+2023;finale;Portugalska;Italija;6;6;0
+2023;finale;Portugalska;Norveška;5;4;1
+2023;finale;Portugalska;Ukrajina;12;12;0
+2023;finale;Portugalska;Belgija;7;1;6
+2023;finale;Portugalska;Estonija;8;0;8
+2023;finale;Portugalska;Avstralija;12;0;12
+2023;finale;Portugalska;Češka;7;0;7
+2023;finale;Portugalska;Hrvaška;3;0;3
+2023;finale;Portugalska;Francija;2;2;0
+2023;finale;Portugalska;Španija;13;3;10
+2023;finale;Portugalska;Moldavija;8;8;0
+2023;finale;Portugalska;Švica;2;0;2
+2023;finale;Portugalska;Srbija;4;0;4
+2023;finale;Romunija;Švedska;18;8;10
+2023;finale;Romunija;Finska;10;10;0
+2023;finale;Romunija;Izrael;10;6;4
+2023;finale;Romunija;Italija;19;7;12
+2023;finale;Romunija;Norveška;5;5;0
+2023;finale;Romunija;Ukrajina;4;4;0
+2023;finale;Romunija;Belgija;2;0;2
+2023;finale;Romunija;Estonija;8;0;8
+2023;finale;Romunija;Avstralija;3;0;3
+2023;finale;Romunija;Ciper;7;1;6
+2023;finale;Romunija;Francija;3;3;0
+2023;finale;Romunija;Moldavija;19;12;7
+2023;finale;Romunija;Poljska;1;0;1
+2023;finale;Romunija;Slovenija;2;2;0
+2023;finale;Romunija;Albanija;5;0;5
+2023;finale;San Marino;Švedska;12;8;4
+2023;finale;San Marino;Finska;12;12;0
+2023;finale;San Marino;Izrael;10;10;0
+2023;finale;San Marino;Italija;19;7;12
+2023;finale;San Marino;Norveška;5;4;1
+2023;finale;San Marino;Ukrajina;6;6;0
+2023;finale;San Marino;Belgija;7;0;7
+2023;finale;San Marino;Estonija;10;0;10
+2023;finale;San Marino;Avstralija;5;0;5
+2023;finale;San Marino;Litva;10;2;8
+2023;finale;San Marino;Ciper;5;5;0
+2023;finale;San Marino;Avstrija;6;0;6
+2023;finale;San Marino;Španija;2;0;2
+2023;finale;San Marino;Moldavija;6;3;3
+2023;finale;San Marino;Poljska;1;1;0
+2023;finale;Srbija;Švedska;11;6;5
+2023;finale;Srbija;Finska;19;12;7
+2023;finale;Srbija;Izrael;17;7;10
+2023;finale;Srbija;Italija;4;2;2
+2023;finale;Srbija;Norveška;5;5;0
+2023;finale;Srbija;Češka;5;4;1
+2023;finale;Srbija;Hrvaška;18;10;8
+2023;finale;Srbija;Avstrija;9;3;6
+2023;finale;Srbija;Francija;5;1;4
+2023;finale;Srbija;Španija;3;0;3
+2023;finale;Srbija;Slovenija;20;8;12
+2023;finale;Slovenija;Švedska;11;4;7
+2023;finale;Slovenija;Finska;10;10;0
+2023;finale;Slovenija;Italija;20;8;12
+2023;finale;Slovenija;Norveška;5;5;0
+2023;finale;Slovenija;Belgija;7;2;5
+2023;finale;Slovenija;Estonija;10;0;10
+2023;finale;Slovenija;Avstralija;4;0;4
+2023;finale;Slovenija;Češka;6;0;6
+2023;finale;Slovenija;Litva;8;0;8
+2023;finale;Slovenija;Hrvaška;12;12;0
+2023;finale;Slovenija;Avstrija;3;0;3
+2023;finale;Slovenija;Francija;3;3;0
+2023;finale;Slovenija;Španija;2;0;2
+2023;finale;Slovenija;Poljska;1;1;0
+2023;finale;Slovenija;Švica;1;0;1
+2023;finale;Slovenija;Albanija;7;7;0
+2023;finale;Slovenija;Srbija;6;6;0
+2023;finale;Španija;Švedska;17;5;12
+2023;finale;Španija;Finska;13;12;1
+2023;finale;Španija;Izrael;15;7;8
+2023;finale;Španija;Italija;16;6;10
+2023;finale;Španija;Norveška;10;8;2
+2023;finale;Španija;Ukrajina;10;10;0
+2023;finale;Španija;Belgija;7;3;4
+2023;finale;Španija;Estonija;7;0;7
+2023;finale;Španija;Armenija;5;2;3
+2023;finale;Španija;Francija;5;0;5
+2023;finale;Španija;Moldavija;1;1;0
+2023;finale;Španija;Portugalska;10;4;6
+2023;finale;Švedska;Finska;24;12;12
+2023;finale;Švedska;Izrael;5;0;5
+2023;finale;Švedska;Italija;13;6;7
+2023;finale;Švedska;Norveška;18;10;8
+2023;finale;Švedska;Ukrajina;4;4;0
+2023;finale;Švedska;Belgija;7;7;0
+2023;finale;Švedska;Estonija;2;0;2
+2023;finale;Švedska;Avstralija;1;1;0
+2023;finale;Švedska;Češka;6;3;3
+2023;finale;Švedska;Ciper;1;0;1
+2023;finale;Švedska;Hrvaška;5;5;0
+2023;finale;Švedska;Francija;12;2;10
+2023;finale;Švedska;Švica;14;8;6
+2023;finale;Švedska;Velika Britanija;4;0;4
+2023;finale;Švica;Švedska;11;5;6
+2023;finale;Švica;Finska;8;8;0
+2023;finale;Švica;Izrael;4;3;1
+2023;finale;Švica;Italija;18;10;8
+2023;finale;Švica;Norveška;6;2;4
+2023;finale;Švica;Estonija;10;0;10
+2023;finale;Švica;Avstralija;2;0;2
+2023;finale;Švica;Češka;12;0;12
+2023;finale;Švica;Hrvaška;6;6;0
+2023;finale;Švica;Armenija;5;0;5
+2023;finale;Švica;Avstrija;7;0;7
+2023;finale;Švica;Španija;3;0;3
+2023;finale;Švica;Albanija;12;12;0
+2023;finale;Švica;Portugalska;7;7;0
+2023;finale;Švica;Srbija;1;1;0
+2023;finale;Švica;Nemčija;4;4;0
+2023;finale;Ukrajina;Švedska;15;3;12
+2023;finale;Ukrajina;Finska;10;10;0
+2023;finale;Ukrajina;Izrael;2;1;1
+2023;finale;Ukrajina;Italija;2;0;2
+2023;finale;Ukrajina;Norveška;7;7;0
+2023;finale;Ukrajina;Estonija;5;0;5
+2023;finale;Ukrajina;Avstralija;8;0;8
+2023;finale;Ukrajina;Češka;9;2;7
+2023;finale;Ukrajina;Litva;14;4;10
+2023;finale;Ukrajina;Hrvaška;8;8;0
+2023;finale;Ukrajina;Moldavija;6;6;0
+2023;finale;Ukrajina;Poljska;18;12;6
+2023;finale;Ukrajina;Slovenija;3;0;3
+2023;finale;Ukrajina;Velika Britanija;9;5;4
+2023;finale;Velika Britanija;Švedska;17;5;12
+2023;finale;Velika Britanija;Finska;12;12;0
+2023;finale;Velika Britanija;Izrael;7;3;4
+2023;finale;Velika Britanija;Italija;2;0;2
+2023;finale;Velika Britanija;Norveška;7;7;0
+2023;finale;Velika Britanija;Ukrajina;4;4;0
+2023;finale;Velika Britanija;Belgija;13;6;7
+2023;finale;Velika Britanija;Estonija;6;0;6
+2023;finale;Velika Britanija;Avstralija;12;2;10
+2023;finale;Velika Britanija;Litva;18;10;8
+2023;finale;Velika Britanija;Armenija;3;0;3
+2023;finale;Velika Britanija;Španija;5;0;5
+2023;finale;Velika Britanija;Moldavija;1;1;0
+2023;finale;Velika Britanija;Poljska;8;8;0
+2023;finale;Velika Britanija;Slovenija;1;0;1
+2023;finale;Svet;Švedska;7;7;
+2023;finale;Svet;Finska;10;10;
+2023;finale;Svet;Izrael;12;12;
+2023;finale;Svet;Norveška;4;4;
+2023;finale;Svet;Ukrajina;5;5;
+2023;finale;Svet;Hrvaška;3;3;
+2023;finale;Svet;Armenija;8;8;
+2023;finale;Svet;Francija;1;1;
+2023;finale;Svet;Španija;2;2;
+2023;finale;Svet;Albanija;6;6;
diff --git a/viri/tekmovalci_2023.csv b/viri/tekmovalci_2023.csv
new file mode 100644
index 0000000..855c986
--- /dev/null
+++ b/viri/tekmovalci_2023.csv
@@ -0,0 +1,38 @@
+leto;drzava;tekmovalec;pesem
+2023;Albanija;Albina & Familja Kelmendi;Duje
+2023;Izrael;Noa Kirel;Unicorn
+2023;Avstrija;Teya & Salena;Who The Hell Is Edgar?
+2023;Srbija;Luke Black;Samo mi se spava
+2023;Italija;Marco Mengoni;Due vite
+2023;Češka;Vesna;My Sister's Crown
+2023;Ciper;Andrew Lambrou;Break a Broken Heart
+2023;Armenija;Brunette;Future Lover
+2023;Malta;The Busker;Dance (Our Own Party)
+2023;Latvija;Sudden Lights;Aijā
+2023;Gruzija;Iru;Echo
+2023;Moldavija;Pasha Parfeni;Soarele și Luna
+2023;Hrvaška;Let 3;Mama ŠČ!
+2023;San Marino;Piqued Jacks;Like An Animal
+2023;Belgija;Gustaph;Because of You
+2023;Azerbajdžan;TuralTuranX;Tell Me More
+2023;Francija;La Zarra;Évidemment
+2023;Španija;Blanca Paloma;Eaea
+2023;Estonija;Alika;Bridges
+2023;Litva;Monika Linkytė;Stay
+2023;Avstralija;Voyager;Promise
+2023;Norveška;Alessandra;Queen of Kings
+2023;Nizozemska;Mia Nicolai & Dion Cooper;Burning Daylight
+2023;Poljska;Blanka;Solo
+2023;Švedska;Loreen;Tattoo
+2023;Romunija;Theodor Andrei;D.G.T. (Off and On)
+2023;Islandija;Diljá;Power
+2023;Finska;Käärijä;Cha Cha Cha
+2023;Velika Britanija;Mae Muller;I Wrote A Song
+2023;Irska;Wild Youth;We Are One
+2023;Nemčija;Lord Of The Lost;Blood & Glitter
+2023;Ukrajina;Tvorchi;Heart of Steel
+2023;Slovenija;Joker Out;Carpe Diem
+2023;Danska;Reiley;Breaking My Heart
+2023;Portugalska;Mimicat;Ai Coração
+2023;Grčija;Victor Vernicos;What They Say
+2023;Švica;Remo Forrer;Watergun
diff --git a/viri/tekmovalci_sample.csv b/viri/tekmovalci_sample.csv
new file mode 100644
index 0000000..2687825
--- /dev/null
+++ b/viri/tekmovalci_sample.csv
@@ -0,0 +1,101 @@
+leto;drzava;tekmovalec;pesem
+1999;Švedska;Charlotte Nilsson;Take Me To Your Heaven
+1999;Islandija;Selma Björnsdóttir;All Out Of Luck
+1999;Nemčija;Sürpriz;Reise Nach Jerusalem - Kudüs'e Seyahat
+1999;Hrvaška;Doris Dragović;Marija Magdalena
+1999;Izrael;Eden;Yom Huledeth
+1999;Estonija;Evelin Samuel and Camille;Diamond Of Night
+1999;Bosna in Hercegovina;Dino and Beatrice;Putnici
+1999;Danska;Trine Jepsen & Michael Teschl;This Time (i Mean It)
+1999;Nizozemska;Marlayne;One Good Reason
+1999;Avstrija;Bobbie Singer;Reflection
+1999;Slovenija;Darja Svajger;For A Thousand Years
+1999;Belgija;Venessa Chinitor;Like The Wind
+1999;Velika Britanija;Precious;Say It Again
+1999;Norveška;Stig André Van Eijk;Living My Life Without You
+1999;Malta;Times 3;Believe 'n Peace
+1999;Turčija;Tuba Önal & Grup Mystik;Dön Artik
+1999;Irska;The Mullan's;When You Need Me
+1999;Poljska;Mietek Szczesniak;Przytul Mnie Mocno
+1999;Francija;Nayah;Je Veux Donner Ma Voix
+1999;Litva;Aiste Smilgeviciute;Strazdas
+1999;Portugalska;Rui Bandeira;Como Tudo Começou
+1999;Ciper;Marlain Angelidou;Tha'nai Erotas
+1999;Španija;Lydia;No Quiero Escuchar
+2015;Švedska;Måns Zelmerlöw;Heroes
+2015;Rusija;Polina Gagarina;A Million Voices
+2015;Italija;Il Volo;Grande Amore
+2015;Belgija;Loïc Nottet;Rhythm Inside
+2015;Avstralija;Guy Sebastian;Tonight Again
+2015;Latvija;Aminata Savadogo;Love Injected
+2015;Estonija;Elina Born & Stig Rästa;Goodbye to Yesterday
+2015;Norveška;Mørland & Debrah Scarlett;A Monster Like Me
+2015;Izrael;Nadav Guedj;Golden Boy
+2015;Srbija;Bojana Stamenov;Beauty Never Lies
+2015;Gruzija;Nina Sublatti;Warrior
+2015;Azerbajdžan;Elnur Hüseynov;Hour Of The Wolf
+2015;Črna gora;Knez;Adio
+2015;Slovenija;Maraaya;Here for You
+2015;Romunija;Voltaj;De La Capăt / All Over Again
+2015;Armenija;Genealogy;Face The Shadow
+2015;Albanija;Elhaida Dani;I'm Alive
+2015;Litva;Monika & Vaidas;This Time
+2015;Grčija;Maria Elena Kyriakou;One Last Breath
+2015;Madžarska;Boggie;Wars For Nothing
+2015;Španija;Edurne;Amanecer
+2015;Ciper;John Karayiannis;One Thing I Should Have Done
+2015;Poljska;Monika Kuszyńska;In The Name Of Love
+2015;Velika Britanija;Electro Velvet;Still in Love with You
+2015;Francija;Lisa Angell;N’oubliez pas
+2015;Avstrija;The Makemakes;I Am Yours
+2015;Nemčija;Ann Sophie;Black Smoke
+2015;Moldavija;Eduard Romanyuta;I Want Your Love
+2015;Malta;Amber;Warrior
+2015;Belorusija;Uzari & Maimuna;Time
+2015;Irska;Molly Sterling;Playing With Numbers
+2015;Danska;Anti Social Media;The Way You Are
+2015;Nizozemska;Trijntje Oosterhuis;Walk Along
+2015;Češka;Marta Jandová & Václav Noid Bárta;Hope Never Dies
+2015;Severna Makedonija;Daniel Kajmakoski;Autumn Leaves
+2015;Portugalska;Leonor Andrade;Há um mar que nos Separa
+2015;Islandija;María Ólafsdóttir;Unbroken
+2015;Finska;Pertti Kurikan Nimipäivät;Aina Mun Pitää
+2015;San Marino;Michele Perniola & Anita Simoncini;Chain Of Lights
+2015;Švica;Mélanie René;Time To Shine
+2023;Švedska;Loreen;Tattoo
+2023;Finska;Käärijä;Cha Cha Cha
+2023;Izrael;Noa Kirel;Unicorn
+2023;Italija;Marco Mengoni;Due vite
+2023;Norveška;Alessandra;Queen of Kings
+2023;Ukrajina;Tvorchi;Heart of Steel
+2023;Belgija;Gustaph;Because of You
+2023;Estonija;Alika;Bridges
+2023;Avstralija;Voyager;Promise
+2023;Češka;Vesna;My Sister's Crown
+2023;Litva;Monika Linkytė;Stay
+2023;Ciper;Andrew Lambrou;Break a Broken Heart
+2023;Hrvaška;Let 3;Mama ŠČ!
+2023;Armenija;Brunette;Future Lover
+2023;Avstrija;Teya & Salena;Who The Hell Is Edgar?
+2023;Francija;La Zarra;Évidemment
+2023;Španija;Blanca Paloma;Eaea
+2023;Moldavija;Pasha Parfeni;Soarele și Luna
+2023;Poljska;Blanka;Solo
+2023;Švica;Remo Forrer;Watergun
+2023;Slovenija;Joker Out;Carpe Diem
+2023;Albanija;Albina & Familja Kelmendi;Duje
+2023;Portugalska;Mimicat;Ai Coração
+2023;Srbija;Luke Black;Samo mi se spava
+2023;Velika Britanija;Mae Muller;I Wrote A Song
+2023;Nemčija;Lord Of The Lost;Blood & Glitter
+2023;Islandija;Diljá;Power
+2023;Latvija;Sudden Lights;Aijā
+2023;Gruzija;Iru;Echo
+2023;Grčija;Victor Vernicos;What They Say
+2023;Irska;Wild Youth;We Are One
+2023;Nizozemska;Mia Nicolai & Dion Cooper;Burning Daylight
+2023;Danska;Reiley;Breaking My Heart
+2023;Azerbajdžan;TuralTuranX;Tell Me More
+2023;Malta;The Busker;Dance (Our Own Party)
+2023;Romunija;Theodor Andrei;D.G.T. (Off and On)
+2023;San Marino;Piqued Jacks;Like An Animal