Closed RaniAgus closed 2 years ago
Hola! Cómo va? Ví tu issue y se me ocurrio una forma de implementar esto que mencionás y desarrollé una solución en un fork, si te parece, fijate si es en lo que estabas pensando :)
Mi idea fue crear una variable de tipo t_temporal
que maneje milisegundos, sobre esa variable es posible obtener el tiempo desde que fué inicializada, calcular la diferencia con una variable del mismo tipo, poder pausarla y reanudarla cuando uno quiera.
saludos!
¡Buenas @julian-salinas!
Genioo 🎉, mandanos un Pull Request y cuando tenga un ratito te hago code review 😉
También si podés subir un par de tests a tests/integration-tests con casos de uso simulados con sleep
s a modo de ejemplo sería un golazo, se me ocurre algo tipo:
void test_temporal_gettime() {
t_temporal *temporal = temporal_create();
sleep(2);
printf("test_temporal_gettime: %ldms (expected: ~2000ms)\n", temporal_gettime(temporal));
temporal_destroy(temporal);
}
void test_temporal_stop() {
t_temporal *temporal = temporal_create();
sleep(1);
temporal_stop(temporal);
sleep(2);
printf("test_temporal_stop: %ldms (expected: ~1000ms)\n", temporal_gettime(temporal));
temporal_destroy(temporal);
}
void test_temporal_resume() {
// detendría y reiniciaría el temporal un par de veces
}
void test_temporal_diff() {
// crearía 2 temporal, los detendría en distintos momentos y los compararía
}
// algún otro caso de uso?
int main() {
test_temporal_gettime();
test_temporal_stop();
test_temporal_resume();
test_temporal_diff();
...
}
No los pondría en tests/unit-tests porque entiendo que es difícil hacerlo determinísitico, y si incluimos
sleeps
las pruebas tardarían bastante como para ser unitarias.
Abrazo
Genial! Gracias Agus!
Podría ser algo simple que permita comparar dos timestamps:
O algo más complejo, parecido a un
StopWatch
de Apache Commons.