diff --git a/test/functional/src/test_quote_name01.c b/test/functional/src/test_quote_name01.c new file mode 100644 index 00000000..8db43410 --- /dev/null +++ b/test/functional/src/test_quote_name01.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name01.xlsx"); + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + char *sheetnames[] = { + "Sheet 1", + "Sheet 2", + "Sheet!3", + "Sheet\"4", + "Sheet#5", + "Sheet$6", + "Sheet%7", + "Sheet&8", + }; + + for (int i = 0; i < 8; i++) + { + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetnames[i]); + + for (int row = 0; row < 5; row++) + for (int col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_PIE); + lxw_chart_series *series = chart_add_series(chart, NULL, NULL); + chart_series_set_values(series, sheetnames[i], 0, 0, 4, 0); + + lxw_chart_options options = {.x_offset = 26, .y_offset = 17}; + worksheet_insert_chart_opt(worksheet, CELL("E6"), chart, &options); + } + + return workbook_close(workbook); +} diff --git a/test/functional/src/test_quote_name02.c b/test/functional/src/test_quote_name02.c new file mode 100644 index 00000000..cfd4ac4b --- /dev/null +++ b/test/functional/src/test_quote_name02.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name02.xlsx"); + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + char *sheetnames[] = { + "Sheet'1", + "S'heet'2", + "Sheet(3", + "Sheet)4", + "Sheet+5", + "Sheet,6", + "Sheet-7", + "Sheet;8", + }; + + for (int i = 0; i < 8; i++) + { + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetnames[i]); + + for (int row = 0; row < 5; row++) + for (int col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_PIE); + lxw_chart_series *series = chart_add_series(chart, NULL, NULL); + chart_series_set_values(series, sheetnames[i], 0, 0, 4, 0); + + lxw_chart_options options = {.x_offset = 26, .y_offset = 17}; + worksheet_insert_chart_opt(worksheet, CELL("E6"), chart, &options); + } + + return workbook_close(workbook); +} diff --git a/test/functional/src/test_quote_name03.c b/test/functional/src/test_quote_name03.c new file mode 100644 index 00000000..591c6960 --- /dev/null +++ b/test/functional/src/test_quote_name03.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name03.xlsx"); + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + char *sheetnames[] = { + "Sheet<1", + "Sheet>2", + "Sheet=3", + "Sheet@4", + "Sheet^5", + "Sheet`6", + "Sheet_7", + "Sheet~8", + }; + + for (int i = 0; i < 8; i++) + { + + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetnames[i]); + + for (int row = 0; row < 5; row++) for (int col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_PIE); + lxw_chart_series *series = chart_add_series(chart, NULL, NULL); + chart_series_set_values(series, sheetnames[i], 0, 0, 4, 0); + + lxw_chart_options options = {.x_offset = 26, .y_offset = 17}; + worksheet_insert_chart_opt(worksheet, CELL("E6"), chart, &options); + } + + return workbook_close(workbook); +} diff --git a/test/functional/src/test_quote_name04.c b/test/functional/src/test_quote_name04.c new file mode 100644 index 00000000..5432e40b --- /dev/null +++ b/test/functional/src/test_quote_name04.c @@ -0,0 +1,41 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name04.xlsx"); + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + char *sheetname = "Sheet 1"; + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetname); + + for (int row = 0; row < 5; row++) + for (int col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_PIE); + + lxw_chart_series *series = chart_add_series(chart, NULL, NULL); + chart_series_set_values(series, sheetname, 0, 0, 4, 0); + chart_series_set_name_range(series, sheetname, 0, 0); + + chart_title_set_name(chart, "Foo"); + + worksheet_insert_chart(worksheet, CELL("E9"), chart); + + return workbook_close(workbook); +} \ No newline at end of file diff --git a/test/functional/src/test_quote_name05.c b/test/functional/src/test_quote_name05.c new file mode 100644 index 00000000..8db9261c --- /dev/null +++ b/test/functional/src/test_quote_name05.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name05.xlsx"); + + char *sheetname = "Sheet1"; + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetname); + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN); + + /* For testing, copy the randomly generated axis ids in the target file. */ + chart->axis_id_1 = 54437760; + chart->axis_id_2 = 59195776; + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + int row, col; + for (row = 0; row < 5; row++) + for (col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + worksheet_repeat_rows(worksheet, 0, 1); + worksheet_set_portrait(worksheet); + worksheet->vertical_dpi = 200; + + lxw_chart_series *series1 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series2 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series3 = chart_add_series(chart, NULL, NULL); + + chart_series_set_values(series1, sheetname, 0, 0, 4, 0); + chart_series_set_values(series2, sheetname, 0, 1, 4, 1); + chart_series_set_values(series3, sheetname, 0, 2, 4, 2); + + worksheet_insert_chart(worksheet, CELL("E9"), chart); + + return workbook_close(workbook); +} diff --git a/test/functional/src/test_quote_name06.c b/test/functional/src/test_quote_name06.c new file mode 100644 index 00000000..32327508 --- /dev/null +++ b/test/functional/src/test_quote_name06.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name06.xlsx"); + + char *sheetname = "Sheet-1"; + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetname); + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN); + + /* For testing, copy the randomly generated axis ids in the target file. */ + chart->axis_id_1 = 62284544; + chart->axis_id_2 = 83429248; + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + int row, col; + for (row = 0; row < 5; row++) + for (col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + worksheet_repeat_rows(worksheet, 0, 1); + worksheet_set_portrait(worksheet); + worksheet->vertical_dpi = 200; + + lxw_chart_series *series1 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series2 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series3 = chart_add_series(chart, NULL, NULL); + + chart_series_set_values(series1, sheetname, 0, 0, 4, 0); + chart_series_set_values(series2, sheetname, 0, 1, 4, 1); + chart_series_set_values(series3, sheetname, 0, 2, 4, 2); + + worksheet_insert_chart(worksheet, CELL("E9"), chart); + + return workbook_close(workbook); +} \ No newline at end of file diff --git a/test/functional/src/test_quote_name07.c b/test/functional/src/test_quote_name07.c new file mode 100644 index 00000000..e047a518 --- /dev/null +++ b/test/functional/src/test_quote_name07.c @@ -0,0 +1,51 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2024, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() +{ + lxw_workbook *workbook = workbook_new("test_quote_name07.xlsx"); + + char *sheetname = "Sheet'1"; + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, sheetname); + lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN); + + /* For testing, copy the randomly generated axis ids in the target file. */ + chart->axis_id_1 = 48135552; + chart->axis_id_2 = 54701056; + + uint8_t data[5][3] = { + {1, 2, 3}, + {2, 4, 6}, + {3, 6, 9}, + {4, 8, 12}, + {5, 10, 15}}; + + int row, col; + for (row = 0; row < 5; row++) + for (col = 0; col < 3; col++) + worksheet_write_number(worksheet, row, col, data[row][col], NULL); + + worksheet_repeat_rows(worksheet, 0, 1); + worksheet_set_portrait(worksheet); + worksheet->vertical_dpi = 200; + + lxw_chart_series *series1 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series2 = chart_add_series(chart, NULL, NULL); + lxw_chart_series *series3 = chart_add_series(chart, NULL, NULL); + + chart_series_set_values(series1, sheetname, 0, 0, 4, 0); + chart_series_set_values(series2, sheetname, 0, 1, 4, 1); + chart_series_set_values(series3, sheetname, 0, 2, 4, 2); + + worksheet_insert_chart(worksheet, CELL("E9"), chart); + + return workbook_close(workbook); +} diff --git a/test/functional/test_quote_name.py b/test/functional/test_quote_name.py new file mode 100644 index 00000000..ffc1578c --- /dev/null +++ b/test/functional/test_quote_name.py @@ -0,0 +1,36 @@ +############################################################################### +# +# Tests for libxlsxwriter. +# +# SPDX-License-Identifier: BSD-2-Clause +# Copyright 2014-2024, John McNamara, jmcnamara@cpan.org. +# + +import base_test_class + +class TestCompareXLSXFiles(base_test_class.XLSXBaseTest): + """ + Test file created with libxlsxwriter against a file created by Excel. + + """ + + def test_quote_name01(self): + self.run_exe_test('test_quote_name01') + + def test_quote_name02(self): + self.run_exe_test('test_quote_name02') + + def test_quote_name03(self): + self.run_exe_test('test_quote_name03') + + def test_quote_name04(self): + self.run_exe_test('test_quote_name04') + + def test_quote_name05(self): + self.run_exe_test('test_quote_name05') + + def test_quote_name06(self): + self.run_exe_test('test_quote_name06') + + def test_quote_name07(self): + self.run_exe_test('test_quote_name07') diff --git a/test/functional/xlsx_files/quote_name01.xlsx b/test/functional/xlsx_files/quote_name01.xlsx new file mode 100644 index 00000000..64e56fb6 Binary files /dev/null and b/test/functional/xlsx_files/quote_name01.xlsx differ diff --git a/test/functional/xlsx_files/quote_name02.xlsx b/test/functional/xlsx_files/quote_name02.xlsx new file mode 100644 index 00000000..3dd02ce9 Binary files /dev/null and b/test/functional/xlsx_files/quote_name02.xlsx differ diff --git a/test/functional/xlsx_files/quote_name03.xlsx b/test/functional/xlsx_files/quote_name03.xlsx new file mode 100644 index 00000000..cee466b8 Binary files /dev/null and b/test/functional/xlsx_files/quote_name03.xlsx differ diff --git a/test/functional/xlsx_files/quote_name04.xlsx b/test/functional/xlsx_files/quote_name04.xlsx new file mode 100644 index 00000000..2f7b9c9d Binary files /dev/null and b/test/functional/xlsx_files/quote_name04.xlsx differ diff --git a/test/functional/xlsx_files/quote_name05.xlsx b/test/functional/xlsx_files/quote_name05.xlsx new file mode 100644 index 00000000..dc059265 Binary files /dev/null and b/test/functional/xlsx_files/quote_name05.xlsx differ diff --git a/test/functional/xlsx_files/quote_name06.xlsx b/test/functional/xlsx_files/quote_name06.xlsx new file mode 100644 index 00000000..1b49fd8d Binary files /dev/null and b/test/functional/xlsx_files/quote_name06.xlsx differ diff --git a/test/functional/xlsx_files/quote_name07.xlsx b/test/functional/xlsx_files/quote_name07.xlsx new file mode 100644 index 00000000..2277fce0 Binary files /dev/null and b/test/functional/xlsx_files/quote_name07.xlsx differ