Exemplo n.º 1
0
 def test_jarruta_tarvittaessa(self):
     """
     Testaa Kaytosmalli luokan metodia jarruta_tarvittaessa()
     """
     
     eka = Yksilo(60,60)
     eka.voima = Vector(100,100)
     toka = Yksilo(70,60)
     
     self.kaytosmalli.lisaa_yksilo(eka)
     self.kaytosmalli.lisaa_yksilo(toka)
     self.kaytosmalli.jarruta_tarvittaessa(eka)
     self.assertEqual(Vector(0,0),eka.voima, "ei jarruta oikein")
     
     eka.voima = Vector(100,100)
     toka.paikka = Vector(85,60)
     self.kaytosmalli.jarruta_tarvittaessa(eka)
     self.assertEqual(Vector(100,100),eka.voima, "jarruttaa vaikka ei pitaisi")
Exemplo n.º 2
0
    def test_paivita_paikat(self):
        """
        Testaa Kaytosmalli luokan metodia paivita_paikat()
        """

        eka = Yksilo(60,60)
        eka.voima = Vector(100,100)
        toka = Yksilo(70,60)

        self.kaytosmalli.lisaa_yksilo(eka)
        self.kaytosmalli.lisaa_yksilo(toka)
        self.kaytosmalli.paivita_paikat()

        self.assertEqual(toka.paikka, Vector(70,60), "ohausvoima 0, muuttaa silti paikkaa")        
        self.assertNotEqual(eka.paikka, Vector(60,60), "ohausvoima != 0, ei muuta silti paikkaa")
           
        eka.paikka = self.kaytosmalli.KOHDE + Vector(1,0)
        self.kaytosmalli.paivita_paikat()
        self.assertEqual(len(self.kaytosmalli.yksilo_lista), 1, "ei poista yksiloa listasta vaikka on lahella kohdetta") 
Exemplo n.º 3
0
    def test_paivita_kartta(self):
        """
        Testaa Kartta-luokan metodia paivita_kartta() paivittymista visuaalisesti.
        Arpoo yksiloille uusia paikkoja. Jalleen huono testi
        """  


        yksilo_lista = []
        
        for i in range(0,3):
                paikka_x = random.randint(10,390)
                paikka_y = random.randint(10,390)
                yksilo = Yksilo(paikka_x,paikka_y,5) 
                yksilo_lista.append(yksilo)
        


        while (self.kartta.paivita_kartta(yksilo_lista)):

                for yksilo in yksilo_lista:
                        yksilo.paikka[0] = random.randint(380,390)
                        yksilo.paikka[0] = random.randint(380,390)
Exemplo n.º 4
0
    def test_laske_seeking(self):
        """
        Testaa Kaytosmalli luokan metodia laske_seeking()
        """
        eka = Yksilo(0,0)

        #ylospain maksimivoimalla       
        eka.paikka = self.kaytosmalli.KOHDE - Vector(0,-40)   
        ohjausvoima = self.kaytosmalli.laske_seeking(eka)
        ohjausvoima_tarkistus = eka.max_nopeus * (self.kaytosmalli.KOHDE - eka.paikka).normalize()                
        self.assertEqual(ohjausvoima_tarkistus,ohjausvoima, "liikkuminen maksiminopeudella ylospain ei toimi")
        
        #alaspain maksimivoimalla
        eka.paikka = self.kaytosmalli.KOHDE + Vector(0,-40)
        ohjausvoima = self.kaytosmalli.laske_seeking(eka)
        ohjausvoima_tarkistus =  eka.max_nopeus * (self.kaytosmalli.KOHDE - eka.paikka).normalize()              
        self.assertEqual(ohjausvoima_tarkistus,ohjausvoima, "liikkuminen maksiminopeudella alaspain ei toimi")

        #vinottain
        eka.paikka = self.kaytosmalli.KOHDE + Vector(-100,-40) 
        ohjausvoima = self.kaytosmalli.laske_seeking(eka)
        ohjausvoima_tarkistus =  eka.max_nopeus * (self.kaytosmalli.KOHDE - eka.paikka).normalize()              
        self.assertEqual(ohjausvoima_tarkistus,ohjausvoima, "liikkuminen vinottain ei toimi")
Exemplo n.º 5
0
    def test_onko_edessa(self):
        """
        Testaa Kaytosmalli luokan metodia onko_edessa()
        """       

        eka = Yksilo(0,0)
        toka = Yksilo(10,0)
        
        self.kaytosmalli.lisaa_yksilo(eka)
        self.kaytosmalli.lisaa_yksilo(toka)
        
        #katsoo suoraan kohti
        eka.suunta = Vector(1,0)
        self.assertEqual(True,self.kaytosmalli.onko_edessa(eka,toka.paikka),"onko_edessa vaara arvo kun naapuri suoraan edessa")
        
        #katsoo vastakkaiseen suuntaan
        eka.suunta = Vector(-1,0)
        self.assertEqual(False,self.kaytosmalli.onko_edessa(eka,toka.paikka),"onko_edessa vaara arvo kun naapuri suoraan takana")

        #pitaisi olla viela katsealueella mutta ei suoraan edessa
        x = 2.
        eka.suunta = Vector(0,1)
        toka.paikka = Vector(x,10)
        self.assertEqual(True,self.kaytosmalli.onko_edessa(eka,toka.paikka),"onko_edessa vaara arvo kun naapuri viela katsealueella")

        #pitaisi olla viela katsealueella mutta ei suoraan edessa
        x = -2.
        eka.suunta = Vector(0,1)
        toka.paikka = Vector(x,10)
        self.assertEqual(True,self.kaytosmalli.onko_edessa(eka,toka.paikka),"onko_edessa vaara arvo kun naapuri viela katsealueella (negatiivinen)")

        #ei pitaisi olla enaa katsealueella mutta ei suoraan edessa

        x = math.tan(math.radians(Input.KATSEALUE/2.))*Input.MIN_JARRUTUSETAISYYS + 0.1
        eka.suunta = Vector(0,1)
        toka.paikka = Vector(x,Input.MIN_JARRUTUSETAISYYS)
        self.assertEqual(False,self.kaytosmalli.onko_edessa(eka,toka.paikka),"onko_edessa vaara arvo kun naapuri ei ole enaa katsealueella")
Exemplo n.º 6
0
 def setUp(self):
     self.yksilo = Yksilo(100,100)
Exemplo n.º 7
0
class Test(unittest.TestCase):


    def setUp(self):
        self.yksilo = Yksilo(100,100)
         
        
        
    
    def test_jarruta(self):
        
        """
        Tarkastaa etta voimavektori on pienempi jarrutuksen jalkeen.
        Jarrutus tarkoittaa siis ohjausvoimavektorin pituuden lyhentamista 
        """

        self.yksilo.voima = Vector(1,1)
        alkuperainen_pituus = self.yksilo.voima.length()
        
        self.yksilo.jarruta()
        jarrutus_pituus = self.yksilo.voima.length()

        self.assertTrue(alkuperainen_pituus > jarrutus_pituus, "Jarrutus ei toimi oikein")



    def test_katkaise_vektori(self):

        """
        Tarkastaa etta vektori lyhennetaan tarvittaessa ja etta sita ei lyhenneta kun ei tarvitse. 
        """


        vektori = Vector(3,3)
        alkuperainen_pituus = vektori.length()
        
        maksimi_pienempi = 0.5*alkuperainen_pituus
        maksimi_isompi = 2*alkuperainen_pituus

        
        self.yksilo.katkaise_vektori(vektori,maksimi_pienempi)        
        self.assertTrue(vektori.length() == maksimi_pienempi, "Vektorin katkaisu ei toimi")


        vektori = Vector(3,3)

        self.yksilo.katkaise_vektori(vektori,maksimi_isompi)        
        self.assertTrue(vektori.length() == alkuperainen_pituus, "Vektorin katkaisemattomuus ei toimi")




    def test_laske_uusi_paikka(self):
        """
        Testaa liikkeen positiivisiin ja negatiivisiin x,y suuntiin sekä että nollavektorilla ei tule virheitä
        """

        #positiivien x 
        self.yksilo.paikka = Vector(100,100)
        self.yksilo.voima = Vector(1,0)
        uusi_paikkavektori = self.yksilo.laske_uusi_paikka()
        self.assertEqual(uusi_paikkavektori,Vector(101,100), "oikealle liike ei toimi")
        self.yksilo.nopeus=Vector(0,0)

        #negatiivinen x
        self.yksilo.paikka = Vector(100,100)
        self.yksilo.voima = Vector(-1,0)
        uusi_paikkavektori = self.yksilo.laske_uusi_paikka()
        self.assertEqual(uusi_paikkavektori,Vector(99,100), "vasemmalle liike ei toimi")
        self.yksilo.nopeus=Vector(0,0)

        #positiivien y 
        self.yksilo.paikka = Vector(100,100)
        self.yksilo.voima = Vector(0,1)
        uusi_paikkavektori = self.yksilo.laske_uusi_paikka()
        self.assertEqual(uusi_paikkavektori,Vector(100,101), "ylospain liike ei toimi")
        self.yksilo.nopeus=Vector(0,0)

        #negatiivinen y 
        self.yksilo.paikka = Vector(100,100)
        self.yksilo.voima = Vector(0,-1)
        uusi_paikkavektori = self.yksilo.laske_uusi_paikka()
        self.assertEqual(uusi_paikkavektori,Vector(100,99), "alaspain liike ei toimi")
        self.yksilo.nopeus=Vector(0,0)
        
        #nollavoimavektori
        self.yksilo.paikka = Vector(100,100)
        self.yksilo.voima = Vector(0,0)
        uusi_paikkavektori = self.yksilo.laske_uusi_paikka()
        self.assertEqual(uusi_paikkavektori,Vector(100,100), "nollavektori ei toimi")
        self.yksilo.nopeus=Vector(0,0)