Prg1 orientoivat tehtävät

Harjoitusten tarkoituksena on varmistaa, että opiskelija ymmärtää olennaisimmat asiat prg1-ohjeistuksesta ja perehtyy dokumentaatioon riittävän ajoissa, mikä helpottaa työn loppuunsaattamisessa. Toinen tavoite on perehdyttää opiskelija myös työn lokaaliin testaukseen, mikä paitsi nopeuttaa testaamista vähentää myös Plussan kuormitusta.

Kaikki kysymykset liittyvät prg1-dokumentaatioon.

Paikalla on
Paikka …
Alueella on
Alueella ..
Kuinka monta alialuetta yksittäisellä alueella voi olla?
Mitkä ovat hyviä valintoja paikan tietojen tallentamiseen?
Miten voit muuttaa työhakemistoa Qt Creatorissa?

PRG1-testausohjeet

Kaikki kysymykset koskevat prg1-testausohjeita. Perftest-tulosteet tässä harjoituksessa eivät ole todellisia lukuja, eikä niitä tule käyttää vertailuun oman toteutuksen kanssa.

Toiminnallisuuden testaaminen voidaan suorittaa
Suorituskykytesti voidaan suorittaa
Toiminnallisuustestit näyttävät eroja, mitä tehdä seuraavaksi?
Mitä on tärkeää huomioida suorittaessa perftestejä?
Mitä sanotaan komentolaskureiden käytöstä suorituskyvyn mittarina?

Seuraavat kysymykset koskevat seuraavaa perftest-tulostetta

> perftest 10*all_places 10 100;1000;10000;100000
Timeout for each N is 10 sec (for ADD and test functions).
For each N perform command(s):
all_places

     N ,    add (sec) ,   cmds (sec) ,  total (sec)
   100 ,    0.5000000 ,  1.000000000 ,    1.5000000
  1000 ,     1.000000 ,   2.00000000 ,     3.000000
 10000 ,      5.00000 ,    4.0000000 ,      9.00000
100000 , ADD Timeout!
>
Mitä funktiota perftestataan?
Aikaraja ylittyi/perftesti epäonnistui. Jos kyllä, miksi?

Seuraavat kysymykset koskevat seuraavaa perftest-tulostetta

> perftest 10*all_places 20 100;1000;10000;100000
Timeout for each N is 20 sec (for ADD and test functions).
For each N perform command(s):
all_places

     N ,    add (sec) ,   cmds (sec) ,  total (sec)
   100 ,  0.500000000 ,     3.000000 ,     3.500000
  1000 ,   1.00000000 ,      6.00000 ,      7.00000
 10000 ,    5.0000000 ,      12.0000 ,       17.000
100000 ,    8.0000000 , Timeout!
>
Mikä on aikaraja (sekunneissa) kullekin N:lle?
Kuinka monta kertaa testattava komento suoritetaan kullekin N:lle?
Miksi komento tulosti Timeout!?

Seuraavat kysymykset koskevat seuraavaa perftest-tulostetta

> perftest 10*get_place_name 10 5;10;50;100
Timeout for each N is 10 sec (for ADD and test functions).
For each N perform command(s):
get_place_name

      N ,    add (sec) ,   cmds (sec) ,  total (sec)
      5 ,   2.9655e-05 , terminate called after throwing an instance of 'std::out_of_range'
  what():  unordered_map::at
Aborted (core dumped)
Mitä tapahtui perftestissä?

Seuraavat kysymykset koskevat seuraavaa perftest-tulostetta

> perftest 10*all_places 10 100;1000;10000;100000
Timeout for each N is 10 sec (for ADD and test functions).
For each N perform command(s):
all_places

     N ,    add (sec) ,  add (count) ,   cmds (sec) , cmds (count) ,  total (sec) , total (count)
   100 ,  0,000112247 ,       280203 ,   3,5244e-05 ,        43740 ,  0,000147491 ,       323943
  1000 ,  0,000116914 ,       569395 ,   3,8864e-05 ,        74040 ,  0,000155778 ,       643435
 10000 ,   0,00051654 ,      2740514 ,   8,6724e-05 ,       317460 ,  0,000603264 ,      3057974
100000 ,  0,000976794 ,      5443984 ,  0,000131009 ,       619420 ,    0,0011078 ,      6063404
>
Mikä on käskylukulaskurin arvo, eli ajettujen komentojen määrä, kun ajetaan 10 kertaa all_places ja paikkojen lukumäärä (N) on 10000?
Kuinka kauan edellisen kysymyksen tapauksen suorittamiseen kaikkiaan kului, kun aikaan lasketaan komentojen suorittamiseen käytetyn ajan lisäksi testiaineiston lisäämiseen käytetty aika? (sekunteina, samassa formaatissa kuin tulosteessa)
Kuinka monta komentoa ajettiin lisäysvaiheessa, kun lisättiin 1000 paikkaa (N) ja alueita?
Kuinka monta komentoa ajettiin yhteensä lisäysvaiheessa JA suoritettaessa all_places 10 kertaa kun N=100000?
Mitä voidaan sanoa perftest-tulosteesta: