| Line | Branch | Exec | Source | 
|---|---|---|---|
| 1 | /* | ||
| 2 | ** EPITECH PROJECT, 2023 | ||
| 3 | ** my_printf | ||
| 4 | ** File description: | ||
| 5 | ** Modify a string (float) and round it | ||
| 6 | */ | ||
| 7 | /** | ||
| 8 | * @file my_round_float_str.c | ||
| 9 | * @brief The file containing the my_round_float_str function | ||
| 10 | * @author Nicolas TORO | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include "my.h" | ||
| 14 | |||
| 15 | 3 | static void add_number(char *float_nb) | |
| 16 | { | ||
| 17 | 3 | char *temp_float_str = malloc(sizeof(char) * my_strlen(float_nb + 1)); | |
| 18 | |||
| 19 | 3 | temp_float_str[0] = '1'; | |
| 20 | 3 | my_strcat(temp_float_str, float_nb); | |
| 21 | 3 | my_strcpy(float_nb, temp_float_str); | |
| 22 | 2/2✓ Branch 0 taken 1 times. ✓ Branch 1 taken 2 times. | 3 | if (float_nb[1] == '-') { | 
| 23 | 1 | float_nb[1] = float_nb[0]; | |
| 24 | 1 | float_nb[0] = '-'; | |
| 25 | } | ||
| 26 | 3 | FREE(temp_float_str); | |
| 27 | 3 | } | |
| 28 | |||
| 29 | 82 | void my_round_float_str(char *float_nb, char last_char, int i, int enable) | |
| 30 | { | ||
| 31 | 4/4✓ Branch 0 taken 81 times. ✓ Branch 1 taken 1 times. ✓ Branch 2 taken 2 times. ✓ Branch 3 taken 79 times. | 82 | if (float_nb[i] == '\0' || float_nb[i] == '-') | 
| 32 | 3 | add_number(float_nb); | |
| 33 | 2/2✓ Branch 0 taken 4 times. ✓ Branch 1 taken 78 times. | 82 | if (float_nb[i] == '.') { | 
| 34 | 2/2✓ Branch 0 taken 2 times. ✓ Branch 1 taken 2 times. | 4 | if (float_nb[i - 1] == '9') | 
| 35 | 2 | float_nb[i - 1] = '0'; | |
| 36 | else | ||
| 37 | 2 | float_nb[i - 1] = float_nb[i - 1] + 1; | |
| 38 | 2/2✓ Branch 0 taken 2 times. ✓ Branch 1 taken 2 times. | 4 | if (float_nb[i - 1] == '0') | 
| 39 | 2 | my_round_float_str(float_nb, float_nb[i - 1], i - 2, 0); | |
| 40 | 4 | return; | |
| 41 | } | ||
| 42 | 5/6✓ Branch 0 taken 78 times. ✗ Branch 1 not taken. ✓ Branch 2 taken 66 times. ✓ Branch 3 taken 12 times. ✓ Branch 4 taken 25 times. ✓ Branch 5 taken 41 times. | 78 | if (float_nb[i] != '.' && (last_char > '4' || enable == 1)) { | 
| 43 | 2/2✓ Branch 0 taken 24 times. ✓ Branch 1 taken 13 times. | 37 | if (float_nb[i] == '9') | 
| 44 | 24 | float_nb[i] = '0'; | |
| 45 | else | ||
| 46 | 13 | float_nb[i] = float_nb[i] + 1; | |
| 47 | 2/2✓ Branch 0 taken 24 times. ✓ Branch 1 taken 13 times. | 37 | if (float_nb[i] == '0') | 
| 48 | 24 | my_round_float_str(float_nb, float_nb[i], i - 1, 1); | |
| 49 | } | ||
| 50 | } | ||
| 51 |