Skip to content

Commit 64d979a

Browse files
committed
Fix taller tail
1 parent 1ec079e commit 64d979a

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

src/df_tail.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ dataframe_t *df_tail(dataframe_t *df, int nb_rows)
1616
dataframe_t *new_df;
1717
void ***copy_src_data = df->data;
1818

19-
if (!nb_rows || nb_rows > df->nb_rows)
19+
if (!nb_rows)
2020
return NULL;
2121
new_df = malloc(sizeof(dataframe_t));
2222
if (new_df == NULL)
2323
return NULL;
2424
new_df->nb_columns = df->nb_columns;
25-
df->data += (df->nb_rows - nb_rows);
25+
df->data += df->nb_rows - nb_rows > 0 ? df->nb_rows - nb_rows : 0;
2626
if (!copy_columns_type(new_df, df) ||
2727
!copy_columns_name(new_df, df) ||
2828
!copy_data(new_df, df, nb_rows))

tests/main.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,25 @@ void print_df(int rows, int col, void ***data, column_type_t type)
4242
int main(int ac, char **av)
4343
{
4444
dataframe_t *src = df_read_csv(av[1], ";");
45-
dataframe_t *df = df_sort(src, "age", sort_func);
45+
dataframe_t *df = df_tail(src, 100);
4646

47+
df_write_csv(df, "result.csv");
4748
if (df == NULL)
4849
return 84;
49-
U_DEBUG("nb_columns= %d\n", df->nb_columns);
50-
U_DEBUG("nb_rows= %d\n", df->nb_rows);
51-
U_DEBUG_MSG("columns: ");
50+
printf("nb_columns= %d\n", df->nb_columns);
51+
printf("nb_rows= %d\n", df->nb_rows);
52+
#if defined(U_DEBUG_MODE)
53+
printf("columns: ");
5254
for (int a = 0; a < df->nb_columns; a++)
5355
printf("[%s] [%s]%s", df->column_names[a],
5456
TYPES[df->column_type[a]].name,
5557
a < df->nb_columns - 1 ? ", " : "\n");
58+
#endif
5659
for (int rows = 0; rows < df->nb_rows; rows++) {
5760
for (int columns = 0; columns < df->nb_columns; columns++)
5861
print_df(rows, columns, df->data, df->column_type[columns]);
5962
puts("");
6063
}
61-
df_write_csv(df, "result.csv");
6264
free(df);
6365
return 0;
6466
}

0 commit comments

Comments
 (0)