Skip to content

Commit a919675

Browse files
committed
Fixes issue #376 and #379
1 parent c5c0a0a commit a919675

3 files changed

Lines changed: 28 additions & 65 deletions

File tree

src/danfojs-base/shared/utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,8 @@ export default class Utils {
334334
if (
335335
typeof arr[0] == "number" ||
336336
typeof arr[0] == "string" ||
337-
typeof arr[0] == "boolean"
337+
typeof arr[0] == "boolean" ||
338+
arr[0] === null
338339
) {
339340
return true;
340341
} else {

src/danfojs-browser/tests/core/generic.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ describe("Generic (NDFrame)", function () {
7474
"IndexError: Row index must contain unique values";
7575
});
7676
});
77+
78+
it("Successfully create a 2D Frame when first value is empty", function () {
79+
let data = [ [ null, 20, 1 ], [ 20, 25, 3 ] ];
80+
let ndframe = new dfd.NDframe({ data, isSeries: false });
81+
//@ts-ignore
82+
assert.deepEqual(ndframe.values, data);
83+
});
84+
it("Successfully create a 1D Frame when first value is empty", function () {
85+
let data = [ null, 'bval2', 'bval3', 'bval4' ];
86+
let ndframe = new dfd.NDframe({ data, isSeries: true });
87+
//@ts-ignore
88+
assert.deepEqual(ndframe.values, data);
89+
});
7790
});
7891

7992
describe("NDframe Created from JavaScript Object", function () {

src/danfojs-node/test/core/generic.test.ts

Lines changed: 13 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,19 @@ describe("Generic (NDFrame)", function () {
7777
"IndexError: Row index must contain unique values"
7878
});
7979
});
80+
81+
it("Successfully create a 2D Frame when first value is empty", function () {
82+
let data = [[null, 20, 1], [20, 25, 3]];
83+
let ndframe = new NDframe({ data, isSeries: false });
84+
//@ts-ignore
85+
assert.deepEqual(ndframe.values, data);
86+
});
87+
it("Successfully create a 1D Frame when first value is empty", function () {
88+
let data = [null, 'bval2', 'bval3', 'bval4'];
89+
let ndframe = new NDframe({ data, isSeries: true });
90+
//@ts-ignore
91+
assert.deepEqual(ndframe.values, data);
92+
});
8093
})
8194

8295
describe("NDframe Created from JavaScript Object", function () {
@@ -123,70 +136,6 @@ describe("Generic (NDFrame)", function () {
123136
let ndframe = new NDframe({ data, isSeries: false });
124137
assert.deepEqual(ndframe.values as any, [["A", NaN], [NaN, 2]]);
125138
});
126-
// it("NDframe created from json takes key position into consideration", function () {
127-
// let json_data = [{ A: "A", B: "B", C: "C" },
128-
// { A: "A", B: "B", C: "C" },
129-
// { C: "C", B: "B", A: "A" },
130-
// { A: "A", C: "C", B: "B" }];
131-
132-
// let output = [
133-
// [
134-
// 'A',
135-
// 'B',
136-
// 'C'
137-
// ],
138-
// [
139-
// 'A',
140-
// 'B',
141-
// 'C'
142-
// ],
143-
// [
144-
// 'A',
145-
// 'B',
146-
// 'C'
147-
// ],
148-
// [
149-
// 'A',
150-
// 'B',
151-
// 'C'
152-
// ]
153-
// ];
154-
// let ndframe = new NDframe({ data: json_data, isSeries: false });
155-
// assert.deepEqual(ndframe.values, output);
156-
// });
157-
158-
// it("NDframe created from json sets value to NaN if not present", function () {
159-
// let json_data = [{ A: "A", B: "B", C: "C" },
160-
// { A: "A", B: "B", C: "C" },
161-
// { C: "C", B: "B", A: "A" },
162-
// { A: "A", C: "C" }];
163-
164-
// let output = [
165-
// [
166-
// 'A',
167-
// 'B',
168-
// 'C'
169-
// ],
170-
// [
171-
// 'A',
172-
// 'B',
173-
// 'C'
174-
// ],
175-
// [
176-
// 'A',
177-
// 'B',
178-
// 'C'
179-
// ],
180-
// [
181-
// 'A',
182-
// 'B',
183-
// NaN
184-
// ]
185-
// ];
186-
// let ndframe = new NDframe({ data: json_data, isSeries: false });
187-
// assert.deepEqual(ndframe.values, output);
188-
// });
189-
190139
});
191140

192141
describe("Replacing row data", function () {

0 commit comments

Comments
 (0)