php-ext-xlswriter/library/libxlsxwriter/test/unit/styles/test_styles_write_xf.c

852 lines
21 KiB
C

/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/styles.h"
#include "../../../include/xlsxwriter/format.h"
// Test the _write_xf() method. Default properties.
CTEST(styles, write_xf01) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Has font but is first XF.
CTEST(styles, write_xf02) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format->has_font = 1;
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Has font but isn't first XF.
CTEST(styles, write_xf03) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyFont=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format->has_font = 1;
format->font_index = 1;
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Uses built-in number format.
CTEST(styles, write_xf04) {
char* got;
char exp[] = "<xf numFmtId=\"2\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyNumberFormat=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_num_format_index(format, 2);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Uses built-in number format + font.
CTEST(styles, write_xf05) {
char* got;
char exp[] = "<xf numFmtId=\"2\" fontId=\"1\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyNumberFormat=\"1\" applyFont=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_num_format_index(format, 2);
format->has_font = 1;
format->font_index = 1;
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Vertical alignment = top.
CTEST(styles, write_xf06) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment vertical=\"top\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_VERTICAL_TOP);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Vertical alignment = centre.
CTEST(styles, write_xf07) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment vertical=\"center\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_VERTICAL_CENTER);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Vertical alignment = bottom.
CTEST(styles, write_xf08) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_VERTICAL_BOTTOM);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Vertical alignment = justify.
CTEST(styles, write_xf09) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment vertical=\"justify\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_VERTICAL_JUSTIFY);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Vertical alignment = distributed.
CTEST(styles, write_xf10) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment vertical=\"distributed\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_VERTICAL_DISTRIBUTED);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = left.
CTEST(styles, write_xf11) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"left\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_LEFT);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = center.
CTEST(styles, write_xf12) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"center\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_CENTER);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = right.
CTEST(styles, write_xf13) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"right\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_RIGHT);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = left + indent.
CTEST(styles, write_xf14) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"left\" indent=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_LEFT);
format->indent = 1;
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = right + indent.
CTEST(styles, write_xf15) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"right\" indent=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_RIGHT);
format_set_indent(format, 1);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = fill.
CTEST(styles, write_xf16) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"fill\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_FILL);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = justify.
CTEST(styles, write_xf17) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"justify\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_JUSTIFY);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = center across.
CTEST(styles, write_xf18) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"centerContinuous\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_CENTER_ACROSS);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = distributed.
CTEST(styles, write_xf19) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"distributed\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_DISTRIBUTED);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = distributed + indent.
CTEST(styles, write_xf20) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"distributed\" indent=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_DISTRIBUTED);
format_set_indent(format, 1);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = justify distributed.
CTEST(styles, write_xf21) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"distributed\" justifyLastLine=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_DISTRIBUTED);
format->just_distrib = 1;
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = indent only.
// This should default to left alignment.
CTEST(styles, write_xf22) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"left\" indent=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_indent(format, 1);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Horizontal alignment = distributed + indent.
// The justify_distributed should drop back to plain distributed if there
// is an indent.
CTEST(styles, write_xf23) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment horizontal=\"distributed\" indent=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_DISTRIBUTED);
format_set_indent(format, 1);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = text wrap
CTEST(styles, write_xf24) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment wrapText=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_text_wrap(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = shrink to fit
CTEST(styles, write_xf25) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment shrinkToFit=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_shrink(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = reading order
CTEST(styles, write_xf26) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment readingOrder=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_reading_order(format, 1);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = reading order
CTEST(styles, write_xf27) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment readingOrder=\"2\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_reading_order(format, 2);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = rotation
CTEST(styles, write_xf28) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment textRotation=\"45\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_rotation(format, 45);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = rotation
CTEST(styles, write_xf29) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment textRotation=\"135\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_rotation(format, -45);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = rotation
CTEST(styles, write_xf30) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment textRotation=\"255\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_rotation(format, 270);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = rotation
CTEST(styles, write_xf31) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment textRotation=\"90\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_rotation(format, 90);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. Alignment = rotation
CTEST(styles, write_xf32) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\"><alignment textRotation=\"180\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_rotation(format, -90);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. With cell protection.
CTEST(styles, write_xf33) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyProtection=\"1\"><protection locked=\"0\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_unlocked(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. With cell protection.
CTEST(styles, write_xf34) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyProtection=\"1\"><protection hidden=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_hidden(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. With cell protection.
CTEST(styles, write_xf35) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyProtection=\"1\"><protection locked=\"0\" hidden=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_unlocked(format);
format_set_hidden(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}
// Test the _write_xf() method. With cell protection + align.
CTEST(styles, write_xf36) {
char* got;
char exp[] = "<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyAlignment=\"1\" applyProtection=\"1\"><alignment horizontal=\"right\"/><protection locked=\"0\" hidden=\"1\"/></xf>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_styles *styles = lxw_styles_new();
lxw_format *format = lxw_format_new();
format_set_align(format, LXW_ALIGN_RIGHT);
format_set_unlocked(format);
format_set_hidden(format);
styles->file = testfile;
_write_xf(styles, format);
RUN_XLSX_STREQ(exp, got);
lxw_styles_free(styles);
lxw_format_free(format);
}