Skip to content

Commit 5f92d16

Browse files
authored
Merge pull request #530 from vizzuhq/release_fix
Fix empty datacube calculation
2 parents 8331adc + cead275 commit 5f92d16

File tree

4 files changed

+54
-5
lines changed

4 files changed

+54
-5
lines changed

src/dataframe/old/datatable.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ SeriesIndex::SeriesIndex(std::string const &str,
120120

121121
DataCube::iterator_t DataCube::begin() const
122122
{
123-
if (df->get_record_count() == 0) return {};
123+
if (!has_element) return {};
124124
iterator_t res{this,
125125
{},
126126
{{}, std::vector<std::size_t>(dim_reindex.size())}};
@@ -201,13 +201,14 @@ DataCube::DataCube(const DataTable &table,
201201
}
202202

203203
df->finalize();
204+
has_element = true;
204205
for (std::size_t ix{}; const auto &dim : dimensions) {
205206
auto &&dimName = dim.getColIndex();
206207
auto &&cats = table.getDf().get_categories(dimName);
207-
dim_reindex.push_back(DimensionInfo{dimName,
208-
cats,
209-
cats.size() + df->has_na(dimName),
210-
ix++});
208+
auto &&size = cats.size() + df->has_na(dimName);
209+
dim_reindex.push_back(
210+
DimensionInfo{dimName, cats, size, ix++});
211+
has_element &= size > 0;
211212
}
212213

213214
auto stackInhibitingShape =

src/dataframe/old/datatable.h

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class DataCube
8484
}
8585
};
8686
Type::UniqueList<DimensionInfo> dim_reindex;
87+
bool has_element{};
8788

8889
std::map<Gen::ChannelId,
8990
std::shared_ptr<dataframe::dataframe_interface>>

test/e2e/tests/fixes.json

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"450": {
2929
"refs": ["761380e"]
3030
},
31+
"530": {
32+
"refs": ["1ad4684"]
33+
},
3134
"32303048": {
3235
"refs": ["b5d95ea"]
3336
},

test/e2e/tests/fixes/530.mjs

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const testSteps = [
2+
(chart) =>
3+
chart.animate({
4+
data: {
5+
series: [
6+
{
7+
name: 'Year',
8+
type: 'dimension',
9+
values: ['2005', 'Total']
10+
},
11+
{
12+
name: 'Result',
13+
type: 'dimension',
14+
values: ['Won', 'Lost']
15+
}
16+
]
17+
}
18+
}),
19+
(chart) =>
20+
chart.animate({
21+
data: {
22+
filter: (record) => {
23+
return record.Year !== 'Total'
24+
}
25+
},
26+
config: {
27+
x: 'Year'
28+
}
29+
}),
30+
31+
(chart) =>
32+
chart.animate({
33+
data: {
34+
filter: (record) => {
35+
return record.Year === 'Total'
36+
}
37+
},
38+
config: {
39+
y: 'Result'
40+
}
41+
})
42+
]
43+
44+
export default testSteps

0 commit comments

Comments
 (0)