|
1 | 1 | /* eslint-disable no-undef */ |
2 | | -const fs = require("fs"); |
3 | | - |
4 | | -const testCSVPath = "./tester.csv"; |
5 | 2 |
|
6 | 3 | describe("DataFrame", function () { |
7 | 4 |
|
@@ -164,29 +161,52 @@ describe("DataFrame", function () { |
164 | 161 | }); |
165 | 162 |
|
166 | 163 | describe("sample", function () { |
167 | | - it("Samples n number of random elements from a DataFrame", function () { |
| 164 | + it("Samples n number of random elements from a DataFrame", async function () { |
168 | 165 | let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ], [ 100, 200, 300 ] ]; |
169 | 166 | let cols = [ "A", "B", "C" ]; |
170 | 167 | let df = new dfd.DataFrame(data, { columns: cols }); |
171 | | - assert.deepEqual(df.sample(2).shape, [ 2, 3 ]); |
| 168 | + let expected = [ [ 1, 2, 3 ], [ 20, 30, 40 ] ]; |
| 169 | + let values = (await df.sample(2)).values; |
| 170 | + assert.deepEqual(values, expected); |
172 | 171 | }); |
173 | | - it("Samples n number of random elements from a DataFrame", function () { |
| 172 | + it("Throw error if n is greater than lenght of Dataframe", async function () { |
174 | 173 | let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ], [ 100, 200, 300 ] ]; |
175 | 174 | let cols = [ "A", "B", "C" ]; |
176 | 175 | let df = new dfd.DataFrame(data, { columns: cols }); |
177 | | - assert.deepEqual(df.sample().shape, [ 5, 3 ]); |
178 | | - }); |
179 | | - it("Return all values if n of sample is greater than lenght of Dataframe", function () { |
| 176 | + try { |
| 177 | + await df.sample(100); |
| 178 | + } catch (e) { |
| 179 | + expect(e).to.be.instanceOf(Error); |
| 180 | + expect(e.message).to.eql('Sample size n cannot be bigger than size of dataset'); |
| 181 | + } |
| 182 | + }); |
| 183 | + it("Throw error if n is less than -1", async function () { |
180 | 184 | let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ], [ 100, 200, 300 ] ]; |
181 | 185 | let cols = [ "A", "B", "C" ]; |
182 | 186 | let df = new dfd.DataFrame(data, { columns: cols }); |
183 | | - assert.deepEqual(df.sample(6).shape, [ 5, 3 ]); |
184 | | - }); |
185 | | - it("Return all values if n of sample is less than 1", function () { |
| 187 | + try { |
| 188 | + await df.sample(-2); |
| 189 | + } catch (e) { |
| 190 | + expect(e).to.be.instanceOf(Error); |
| 191 | + expect(e.message).to.eql('Sample size cannot be less than -1 or 0'); |
| 192 | + } |
| 193 | + }); |
| 194 | + it("Throw error if n is 0", async function () { |
| 195 | + let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ], [ 100, 200, 300 ] ]; |
| 196 | + let cols = [ "A", "B", "C" ]; |
| 197 | + let df = new dfd.DataFrame(data, { columns: cols }); |
| 198 | + try { |
| 199 | + await df.sample(0); |
| 200 | + } catch (e) { |
| 201 | + expect(e).to.be.instanceOf(Error); |
| 202 | + expect(e.message).to.eql('Sample size cannot be less than -1 or 0'); |
| 203 | + } |
| 204 | + }); |
| 205 | + it("Return all values if n is -1", async function () { |
186 | 206 | let data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 20, 30, 40 ], [ 39, 89, 78 ], [ 100, 200, 300 ] ]; |
187 | 207 | let cols = [ "A", "B", "C" ]; |
188 | 208 | let df = new dfd.DataFrame(data, { columns: cols }); |
189 | | - assert.deepEqual(df.sample(-1).shape, [ 5, 3 ]); |
| 209 | + assert.deepEqual((await df.sample(-1)).shape, [ 5, 3 ]); |
190 | 210 | }); |
191 | 211 | }); |
192 | 212 |
|
@@ -820,7 +840,7 @@ describe("DataFrame", function () { |
820 | 840 | let expected = [ [ 2, 4, 6, 'c' ], [ 360, 180, 1, 'b' ], [ 0, 2, 4, 'a' ] ]; |
821 | 841 | assert.deepEqual(df.sort_values({ "by": "col4", "ascending": false }).values, expected); |
822 | 842 | }); |
823 | | - it("Sort duplicate DataGrame with duplicate columns", function(){ |
| 843 | + it("Sort duplicate DataGrame with duplicate columns", function () { |
824 | 844 |
|
825 | 845 | let data = { |
826 | 846 | "A": [ 1, 2, 3, 4, 5, 3, 5, 6, 4, 5, 3, 4 ], |
@@ -1025,10 +1045,12 @@ describe("DataFrame", function () { |
1025 | 1045 | df.query({ "column": "B", "is": ">=", "to": 5, inplace: true }); |
1026 | 1046 | assert.deepEqual(df.index, [ 1, 2, 3 ]); |
1027 | 1047 | }); |
1028 | | - it("Wrong query value", function(){ |
1029 | | - let data = { "A": [ 30, 1, 2, 3 ], |
| 1048 | + it("Wrong query value", function () { |
| 1049 | + let data = { |
| 1050 | + "A": [ 30, 1, 2, 3 ], |
1030 | 1051 | "B": [ 34, 4, 5, 6 ], |
1031 | | - "C": [ 20, 20, 30, 40 ] }; |
| 1052 | + "C": [ 20, 20, 30, 40 ] |
| 1053 | + }; |
1032 | 1054 |
|
1033 | 1055 | let cols = [ "A", "B", "C" ]; |
1034 | 1056 | let df = new dfd.DataFrame(data, { columns: cols }); |
|
0 commit comments