Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.
/ project-li3 Public archive

Data-parsing program for reading and interpreting csv files using efficient modular design within Computer Labs III environment.

License

Notifications You must be signed in to change notification settings

migueltc13/project-li3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Automatic testing Valgrind

Projeto LI3

Este projeto resultou no desenvolvimento de um programa para leitura e interpretação de três ficheiros de entrada: users.csv, drivers.csv e rides.csv.

A aplicação foi dividida em módulos que realizam as seguintes tarefas:

  • Parsing de dados
  • Interpretação de comandos
  • Armazenamento de informações em catálogos:
    • Usuários
    • Motoristas
    • Viagens
    • Estatísticas

Cada catálogo é responsável por armazenar informações relevantes dos ficheiros de entrada, enquanto o módulo de estatísticas permite relacionar os principais modelos e fornecer acesso rápido a dados e resultados.

Arquitetura do projeto

Diagrama

Relatórios

Requerimentos

  • glib2 para manipulação das coleções de dados;
Instalação
apt install gcc make libglib2.0-dev libgtk2.0-dev gdb valgrind -y

Utilização

cd trabalho-pratico/
make

Modo Batch:

./programa-principal <dir_with_csvs> <input_file_path> 

Modo Interativo:

./programa-principal
Exemplo de utilização
Enter dataset path: dataset
Number of drivers parsed: 10000
Number of users parsed:  100000
Number of rides parsed: 1000000
$ 1 SaCruz110
Santiago Cruz;M;31;3.200;5;50.340
$ 3 2    
Anita-PetPinto38;Anita-Petra Pinto;240
REsteves70;Raquel Esteves;234
$ 4 Braga
10.062
$ (Ctrl + D) 
Exit with success

Testagem

programa-testes:

make programa-testes
./programa-testes <dir_with_csvs> <dir_with_input_and_outputs>
Exemplo de output
Teste de desempenho - Parsing dos dados
Number of drivers parsed: 10000
Number of users parsed:  100000
Number of rides parsed: 1000000
Parsing data time: 4.11s

Teste de desempenho - Avaliação de queries
Query 1 | 0.00000075s | "1 SaCruz110"
Query 2 | 0.00000800s | "2 50"
Query 3 | 0.00000600s | "3 50"
Query 4 | 0.00000025s | "4 Braga"
Query 5 | 0.01275250s | "5 01/01/2021 01/02/2021"
Query 6 | 0.02461975s | "6 Porto 01/01/2021 01/02/2021"
Query 7 | 0.00000700s | "7 50 Lisboa"
Query 8 | 0.00283650s | "8 M 12"
Query 9 | 0.01340325s | "9 01/01/2021 01/02/2021"

Teste funcional - Validação de queries
command1_output.txt:	Pass ✔
command2_output.txt:	Pass ✔
command3_output.txt:	Pass ✔
command4_output.txt:	Pass ✔
command5_output.txt:	Pass ✔
command6_output.txt:	Pass ✔
command7_output.txt:	Pass ✔
command8_output.txt:	Pass ✔
command9_output.txt:	Pass ✔
command10_output.txt:	Pass ✔
command11_output.txt:	Pass ✔
command12_output.txt:	Pass ✔
command13_output.txt:	Pass ✔
command14_output.txt:	Pass ✔
command15_output.txt:	Pass ✔
command16_output.txt:	Pass ✔
command17_output.txt:	Pass ✔
command18_output.txt:	Pass ✔
command19_output.txt:	Pass ✔

malloc_stats
Arena 0:
system bytes     =  550182912
in use bytes     =  550137440
Total (incl. mmap):
system bytes     = 1071362048
in use bytes     = 1071316576
max mmap regions =         30
max mmap bytes   =  588943360

malloc_stats after freeing memory
Arena 0:
system bytes     =  550182912
in use bytes     =  259894208
Total (incl. mmap):
system bytes     = 1021255680
in use bytes     =  730966976
max mmap regions =         30
max mmap bytes   =  588943360

Debug

make debug
gdb ./programa-principal
valgrind ./programa-principal <dir_with_csvs> <input_file_path>

Time

command time -v ./programa-principal <dir_with_csvs> <input_file_path>

Memusage

memusage ./programa-principal <dir_with_csvs> <input_file_path>

About

Data-parsing program for reading and interpreting csv files using efficient modular design within Computer Labs III environment.

Topics

Resources

License

Stars

Watchers

Forks