1- import { assert } from "chai"
2- import { DataFrame } from '../../src/core/frame'
3- import { merge } from '../../src/core/merge'
1+ import { assert } from "chai" ;
2+ import { DataFrame } from '../../src/core/frame' ;
3+ import { merge } from '../../src/core/merge' ;
44// import { Series } from "../../src/core/series";
55
66
77describe ( "Merge" , function ( ) {
88
9- it ( "test outer merge" , function ( ) {
10- let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
11- [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ]
9+ it ( "test outer merge" , function ( ) {
10+ let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
11+ [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ] ;
1212
13- let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
14- [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ]
13+ let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
14+ [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ] ;
1515
16- let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ]
17- let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ]
16+ let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ] ;
17+ let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ] ;
1818
19- let df1 = new DataFrame ( data , { columns : colum1 } )
20- let df2 = new DataFrame ( data2 , { columns : colum2 } )
21- let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "outer" } )
19+ let df1 = new DataFrame ( data , { columns : colum1 } ) ;
20+ let df2 = new DataFrame ( data2 , { columns : colum2 } ) ;
21+ let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "outer" } ) ;
2222
23- let output_data = [
24- [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
25- [ 'k0' , 'K1' , 'A1' , 'B1' , NaN , NaN ] ,
26- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
27- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
28- [ 'K2' , 'K2' , 'A3' , 'B3' , NaN , NaN ] ,
29- [ 'K2' , 'K0' , NaN , NaN , 'C3' , 'D3' ]
30- ] ;
23+ let output_data = [
24+ [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
25+ [ 'k0' , 'K1' , 'A1' , 'B1' , NaN , NaN ] ,
26+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
27+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
28+ [ 'K2' , 'K2' , 'A3' , 'B3' , NaN , NaN ] ,
29+ [ 'K2' , 'K0' , NaN , NaN , 'C3' , 'D3' ]
30+ ] ;
3131
3232
33- assert . deepEqual ( merge_df . values , output_data ) ;
34- } )
33+ assert . deepEqual ( merge_df . values , output_data ) ;
34+ } ) ;
3535
36- it ( "test inner merge" , function ( ) {
37- let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
38- [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ]
36+ it ( "test inner merge" , function ( ) {
37+ let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
38+ [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ] ;
3939
40- let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
41- [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ]
40+ let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
41+ [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ] ;
4242
43- let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ]
44- let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ]
43+ let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ] ;
44+ let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ] ;
4545
46- let df1 = new DataFrame ( data , { columns : colum1 } )
47- let df2 = new DataFrame ( data2 , { columns : colum2 } )
48- let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "inner" } )
46+ let df1 = new DataFrame ( data , { columns : colum1 } ) ;
47+ let df2 = new DataFrame ( data2 , { columns : colum2 } ) ;
48+ let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "inner" } ) ;
4949
50- let output_data = [
51- [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
52- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
53- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ]
54- ] ;
50+ let output_data = [
51+ [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
52+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
53+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ]
54+ ] ;
5555
56- assert . deepEqual ( merge_df . values , output_data ) ;
57- } )
56+ assert . deepEqual ( merge_df . values , output_data ) ;
57+ } ) ;
5858
59- it ( "test left merge" , function ( ) {
60- let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
61- [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ]
59+ it ( "test left merge" , function ( ) {
60+ let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
61+ [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ] ;
6262
63- let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
64- [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ]
63+ let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
64+ [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ] ;
6565
66- let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ]
67- let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ]
66+ let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ] ;
67+ let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ] ;
6868
69- let df1 = new DataFrame ( data , { columns : colum1 } )
70- let df2 = new DataFrame ( data2 , { columns : colum2 } )
71- let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "left" } )
69+ let df1 = new DataFrame ( data , { columns : colum1 } ) ;
70+ let df2 = new DataFrame ( data2 , { columns : colum2 } ) ;
71+ let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "left" } ) ;
7272
73- let output_data = [
74- [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
75- [ 'k0' , 'K1' , 'A1' , 'B1' , NaN , NaN ] ,
76- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
77- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
78- [ 'K2' , 'K2' , 'A3' , 'B3' , NaN , NaN ]
79- ] ;
73+ let output_data = [
74+ [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
75+ [ 'k0' , 'K1' , 'A1' , 'B1' , NaN , NaN ] ,
76+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
77+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
78+ [ 'K2' , 'K2' , 'A3' , 'B3' , NaN , NaN ]
79+ ] ;
8080
81- assert . deepEqual ( merge_df . values , output_data ) ;
82- } )
81+ assert . deepEqual ( merge_df . values , output_data ) ;
82+ } ) ;
8383
84- it ( "test right merge" , function ( ) {
85- let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
86- [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ]
84+ it ( "test right merge" , function ( ) {
85+ let data = [ [ 'K0' , 'k0' , 'A0' , 'B0' ] , [ 'k0' , 'K1' , 'A1' , 'B1' ] ,
86+ [ 'K1' , 'K0' , 'A2' , 'B2' ] , [ 'K2' , 'K2' , 'A3' , 'B3' ] ] ;
8787
88- let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
89- [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ]
88+ let data2 = [ [ 'K0' , 'k0' , 'C0' , 'D0' ] , [ 'K1' , 'K0' , 'C1' , 'D1' ] ,
89+ [ 'K1' , 'K0' , 'C2' , 'D2' ] , [ 'K2' , 'K0' , 'C3' , 'D3' ] ] ;
9090
91- let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ]
92- let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ]
91+ let colum1 = [ 'Key1' , 'Key2' , 'A' , 'B' ] ;
92+ let colum2 = [ 'Key1' , 'Key2' , 'A' , 'D' ] ;
9393
94- let df1 = new DataFrame ( data , { columns : colum1 } )
95- let df2 = new DataFrame ( data2 , { columns : colum2 } )
96- let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "right" } )
94+ let df1 = new DataFrame ( data , { columns : colum1 } ) ;
95+ let df2 = new DataFrame ( data2 , { columns : colum2 } ) ;
96+ let merge_df = merge ( { "left" : df1 , "right" : df2 , "on" : [ "Key1" , "Key2" ] , "how" : "right" } ) ;
9797
98- let output_data = [
99- [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
100- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
101- [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
102- [ 'K2' , 'K0' , NaN , NaN , 'C3' , 'D3' ]
103- ] ;
98+ let output_data = [
99+ [ 'K0' , 'k0' , 'A0' , 'B0' , 'C0' , 'D0' ] ,
100+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C1' , 'D1' ] ,
101+ [ 'K1' , 'K0' , 'A2' , 'B2' , 'C2' , 'D2' ] ,
102+ [ 'K2' , 'K0' , NaN , NaN , 'C3' , 'D3' ]
103+ ] ;
104104
105- assert . deepEqual ( merge_df . values , output_data ) ;
106- } )
107- } ) ;
105+ assert . deepEqual ( merge_df . values , output_data ) ;
106+ } ) ;
107+ } ) ;
0 commit comments