mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
fix range iterator tests
This commit is contained in:
parent
8ef1fe1a28
commit
9a6bcdfc54
|
@ -39,8 +39,6 @@ public:
|
||||||
static utf8string from_utf16(const std::vector<std::uint16_t> &s);
|
static utf8string from_utf16(const std::vector<std::uint16_t> &s);
|
||||||
static utf8string from_utf32(const std::vector<std::uint32_t> &s);
|
static utf8string from_utf32(const std::vector<std::uint32_t> &s);
|
||||||
|
|
||||||
static bool is_valid(const std::string &s);
|
|
||||||
|
|
||||||
bool is_valid() const;
|
bool is_valid() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -48,12 +48,6 @@ enum class limit_style
|
||||||
maximum
|
maximum
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The style of limits to use for reading and writing XLSX files.
|
|
||||||
/// See limit_style for more information.
|
|
||||||
/// </summary>
|
|
||||||
const limit_style xlnt_limit_style = limit_style::openpyxl;
|
|
||||||
|
|
||||||
#ifndef XLNT_API
|
#ifndef XLNT_API
|
||||||
#if !defined(XLNT_STATIC) && defined(_MSC_VER)
|
#if !defined(XLNT_STATIC) && defined(_MSC_VER)
|
||||||
#ifdef XLNT_EXPORT
|
#ifdef XLNT_EXPORT
|
||||||
|
|
|
@ -73,7 +73,7 @@ cell_reference::cell_reference(column_t column_index, row_t row)
|
||||||
{
|
{
|
||||||
throw value_error();
|
throw value_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(row_ <= constants::max_row()) || !(column_ <= constants::max_column()))
|
if (!(row_ <= constants::max_row()) || !(column_ <= constants::max_column()))
|
||||||
{
|
{
|
||||||
throw cell_coordinates_error(column_, row_);
|
throw cell_coordinates_error(column_, row_);
|
||||||
|
|
|
@ -630,8 +630,6 @@ public:
|
||||||
TS_ASSERT_DIFFERS(hash(xlnt::cell_reference("A2")), hash(xlnt::cell_reference(1, 1)));
|
TS_ASSERT_DIFFERS(hash(xlnt::cell_reference("A2")), hash(xlnt::cell_reference(1, 1)));
|
||||||
TS_ASSERT_EQUALS(hash(xlnt::cell_reference("A2")), hash(xlnt::cell_reference(1, 2)));
|
TS_ASSERT_EQUALS(hash(xlnt::cell_reference("A2")), hash(xlnt::cell_reference(1, 2)));
|
||||||
|
|
||||||
TS_ASSERT_THROWS(xlnt::cell_reference(10000000, 10000000), xlnt::cell_coordinates_error);
|
|
||||||
|
|
||||||
TS_ASSERT_EQUALS((xlnt::cell_reference("A1"), xlnt::cell_reference("B2")), xlnt::range_reference("A1:B2"));
|
TS_ASSERT_EQUALS((xlnt::cell_reference("A1"), xlnt::cell_reference("B2")), xlnt::range_reference("A1:B2"));
|
||||||
|
|
||||||
TS_ASSERT_THROWS(xlnt::cell_reference("A1&"), xlnt::cell_coordinates_error);
|
TS_ASSERT_THROWS(xlnt::cell_reference("A1&"), xlnt::cell_coordinates_error);
|
||||||
|
|
|
@ -18,7 +18,6 @@ public:
|
||||||
void test_bad_column()
|
void test_bad_column()
|
||||||
{
|
{
|
||||||
TS_ASSERT_THROWS(xlnt::column_t::column_string_from_index(0), xlnt::column_string_index_error);
|
TS_ASSERT_THROWS(xlnt::column_t::column_string_from_index(0), xlnt::column_string_index_error);
|
||||||
TS_ASSERT_THROWS(xlnt::column_t::column_string_from_index(10000000), xlnt::column_string_index_error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_column_operators()
|
void test_column_operators()
|
||||||
|
|
|
@ -35,11 +35,6 @@ const row_t constants::min_row()
|
||||||
|
|
||||||
const row_t constants::max_row()
|
const row_t constants::max_row()
|
||||||
{
|
{
|
||||||
if(xlnt_limit_style == limit_style::excel)
|
|
||||||
{
|
|
||||||
return 1u << 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
return std::numeric_limits<row_t>::max();
|
return std::numeric_limits<row_t>::max();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,17 +45,7 @@ const column_t constants::min_column()
|
||||||
|
|
||||||
const column_t constants::max_column()
|
const column_t constants::max_column()
|
||||||
{
|
{
|
||||||
switch (xlnt_limit_style)
|
return column_t(std::numeric_limits<column_t::index_t>::max());
|
||||||
{
|
|
||||||
case limit_style::excel:
|
|
||||||
return column_t(1u << 14);
|
|
||||||
|
|
||||||
case limit_style::openpyxl:
|
|
||||||
return column_t(18'278);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return column_t(std::numeric_limits<column_t::index_t>::max());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
|
|
|
@ -21,13 +21,13 @@ public:
|
||||||
auto latin1_valid = xlnt::utf8string::from_latin1("abc");
|
auto latin1_valid = xlnt::utf8string::from_latin1("abc");
|
||||||
TS_ASSERT(latin1_valid.is_valid());
|
TS_ASSERT(latin1_valid.is_valid());
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_utf16()
|
void test_utf16()
|
||||||
{
|
{
|
||||||
auto utf16_valid = xlnt::utf8string::from_utf16({ 'a', 'b', 'c' });
|
auto utf16_valid = xlnt::utf8string::from_utf16({ 'a', 'b', 'c' });
|
||||||
TS_ASSERT(utf16_valid.is_valid());
|
TS_ASSERT(utf16_valid.is_valid());
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_utf32()
|
void test_utf32()
|
||||||
{
|
{
|
||||||
auto utf32_valid = xlnt::utf8string::from_utf32({ 'a', 'b', 'c' });
|
auto utf32_valid = xlnt::utf8string::from_utf32({ 'a', 'b', 'c' });
|
||||||
|
|
|
@ -56,11 +56,6 @@ utf8string utf8string::from_utf32(const std::vector<std::uint32_t> &s)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool utf8string::is_valid(const std::string &s)
|
|
||||||
{
|
|
||||||
return utf8::is_valid(s.begin(), s.end());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool utf8string::is_valid() const
|
bool utf8string::is_valid() const
|
||||||
{
|
{
|
||||||
return utf8::is_valid(bytes_.begin(), bytes_.end());
|
return utf8::is_valid(bytes_.begin(), bytes_.end());
|
||||||
|
|
|
@ -372,4 +372,9 @@ public:
|
||||||
wb_const.get_style("style1");
|
wb_const.get_style("style1");
|
||||||
wb.get_style_by_id(0);
|
wb.get_style_by_id(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_limits()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -158,14 +158,14 @@ worksheet workbook::create_sheet()
|
||||||
title = "Sheet" + std::to_string(++index);
|
title = "Sheet" + std::to_string(++index);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string sheet_filename = "worksheets/sheet" + std::to_string(d_->worksheets_.size() + 1) + ".xml";
|
std::string sheet_filename = "sheet" + std::to_string(d_->worksheets_.size() + 1) + ".xml";
|
||||||
|
|
||||||
d_->worksheets_.push_back(detail::worksheet_impl(this, title));
|
d_->worksheets_.push_back(detail::worksheet_impl(this, title));
|
||||||
create_relationship("rId" + std::to_string(d_->relationships_.size() + 1),
|
create_relationship("rId" + std::to_string(d_->relationships_.size() + 1),
|
||||||
sheet_filename,
|
"worksheets/" + sheet_filename,
|
||||||
relationship::type::worksheet);
|
relationship::type::worksheet);
|
||||||
|
|
||||||
d_->manifest_.add_override_type("/xl/" + sheet_filename, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
|
d_->manifest_.add_override_type("/" + constants::package_worksheets() + "/" + sheet_filename, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
|
||||||
|
|
||||||
return worksheet(&d_->worksheets_.back());
|
return worksheet(&d_->worksheets_.back());
|
||||||
}
|
}
|
||||||
|
|
|
@ -795,6 +795,9 @@ public:
|
||||||
auto second_cell = *first_column_iter;
|
auto second_cell = *first_column_iter;
|
||||||
TS_ASSERT_EQUALS(second_cell.get_value<std::string>(), "A2");
|
TS_ASSERT_EQUALS(second_cell.get_value<std::string>(), "A2");
|
||||||
|
|
||||||
|
TS_ASSERT_EQUALS(first_cell, first_column.front());
|
||||||
|
TS_ASSERT_EQUALS(second_cell, first_column.back());
|
||||||
|
|
||||||
auto last_column = *(--columns.end());
|
auto last_column = *(--columns.end());
|
||||||
auto last_column_iter = last_column.end();
|
auto last_column_iter = last_column.end();
|
||||||
last_column_iter--;
|
last_column_iter--;
|
||||||
|
@ -1070,22 +1073,27 @@ public:
|
||||||
auto range_iter = range.begin();
|
auto range_iter = range.begin();
|
||||||
auto row = *range_iter;
|
auto row = *range_iter;
|
||||||
auto row_iter = row.begin();
|
auto row_iter = row.begin();
|
||||||
auto cell = *row_iter;
|
TS_ASSERT_EQUALS((*row_iter).get_value<double>(), 3.14);
|
||||||
TS_ASSERT_EQUALS(cell.get_value<double>(), 3.14);
|
TS_ASSERT_EQUALS((*row_iter).get_reference(), "A2");
|
||||||
TS_ASSERT_EQUALS(row.front().get_reference(), "A2");
|
TS_ASSERT_EQUALS((*row_iter), row.front());
|
||||||
|
|
||||||
row_iter++;
|
row_iter++;
|
||||||
cell = *row_iter;
|
TS_ASSERT_EQUALS((*row_iter).get_value<std::string>(), "text");
|
||||||
TS_ASSERT_EQUALS(cell.get_value<std::string>(), "text");
|
TS_ASSERT_EQUALS((*row_iter).get_reference(), "B2");
|
||||||
TS_ASSERT_EQUALS(row.back().get_reference(), "B2");
|
TS_ASSERT_EQUALS((*row_iter), row.back());
|
||||||
|
|
||||||
|
range_iter++;
|
||||||
|
row = *range_iter;
|
||||||
|
row_iter = row.begin();
|
||||||
|
TS_ASSERT_EQUALS((*row_iter).get_value<bool>(), true);
|
||||||
|
TS_ASSERT_EQUALS((*row_iter).get_reference(), "A3");
|
||||||
|
|
||||||
range_iter = range.end();
|
range_iter = range.end();
|
||||||
range_iter--;
|
range_iter--;
|
||||||
row = *range_iter;
|
row = *range_iter;
|
||||||
row_iter = row.end();
|
row_iter = row.end();
|
||||||
row_iter--;
|
row_iter--;
|
||||||
cell = *row_iter;
|
TS_ASSERT_EQUALS((*row_iter).get_value<bool>(), false);
|
||||||
TS_ASSERT_EQUALS(cell.get_value<bool>(), false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_get_squared_range()
|
void test_get_squared_range()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user