package no.valg.valgnatt.database.geografi;

import no.valg.valgnatt.database.GrunnlagsdataMockup;
import no.valg.valgnatt.database.Konstanter;
import no.valg.valgnatt.database.domene.ValgType;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "no.valg.valgnatt")
public class FylkeTest {

    private static final float FLOAT_DELTA = 0.0000001f;
    private static GrunnlagsdataMockup gdm;

    @BeforeClass
    public static void initialiser() {
        gdm = new GrunnlagsdataMockup();
        gdm.initialiser(ValgType.ST);
    }

    @Test
    public void getAntallMandater_Oslo_11() throws Exception {
        Assert.assertEquals(31, gdm.getLand().getFylke(Konstanter.OSLO_FNR).getAntallMandater());
    }

    @Test
    public void getStemmekretser_Oslo_4() throws Exception {
        Assert.assertEquals(4, gdm.getLand().getFylke(Konstanter.OSLO_FNR).getStemmekretser().size());
    }

    @Test
    public void beregnFrammoteProsentIaar_Oslo_15Komma25Prosent() throws Exception {
        Assert.assertEquals(0.6f, gdm.getLand().getFylke(Konstanter.OSLO_FNR).beregnFrammoteProsentIaar(), FLOAT_DELTA);
    }

    @Test
    public void getOverordnetOmråde_Oslo_Norge() throws Exception {
        Assert.assertEquals(gdm.getLand(), gdm.getLand().getFylke(Konstanter.OSLO_FNR).getOverordnetOmråde());
    }

    @Test
    public void getUnderordnedeRapportOmråder_Rogaland_2() throws Exception {
        Assert.assertEquals(2, gdm.getLand().getFylke("11").getUnderordnedeRapportOmråder().length);
    }

}