@@ -344,14 +344,24 @@ describe("Generic (NDFrame)", function () {
344344 describe ( "Empty NDFrame" , function ( ) {
345345 it ( "Can successfully create an empty NDframe from empty array" , function ( ) {
346346 let data : any = [ ] ;
347- let sf = new NDframe ( { data, isSeries : false } ) ;
347+ let df = new NDframe ( { data, isSeries : false } ) ;
348+ assert . deepEqual ( df . shape , [ 0 , 0 ] ) ;
349+ assert . deepEqual ( df . columns , [ ] ) ;
350+ assert . deepEqual ( df . dtypes , [ ] ) ;
351+ assert . deepEqual ( df . values , [ ] ) ;
352+ let sf = new NDframe ( { data, isSeries : true } ) ;
348353 assert . deepEqual ( sf . shape , [ 0 , 0 ] ) ;
349354 assert . deepEqual ( sf . columns , [ ] ) ;
350355 assert . deepEqual ( sf . dtypes , [ ] ) ;
351356 assert . deepEqual ( sf . values , [ ] ) ;
352357 } ) ;
353358 it ( "Can successfully create an empty NDframe from undefined data" , function ( ) {
354359 let data = undefined ;
360+ let df = new NDframe ( { data, isSeries : false } ) ;
361+ assert . deepEqual ( df . shape , [ 0 , 0 ] ) ;
362+ assert . deepEqual ( df . columns , [ ] ) ;
363+ assert . deepEqual ( df . dtypes , [ ] ) ;
364+ assert . deepEqual ( df . values , [ ] ) ;
355365 let sf = new NDframe ( { data, isSeries : true } ) ;
356366 assert . deepEqual ( sf . shape , [ 0 , 0 ] ) ;
357367 assert . deepEqual ( sf . columns , [ ] ) ;
@@ -360,11 +370,59 @@ describe("Generic (NDFrame)", function () {
360370 } ) ;
361371
362372 it ( "Can successfully create an empty NDframe" , function ( ) {
373+ let df = new NDframe ( { data : [ ] , isSeries : false } ) ;
374+ assert . deepEqual ( df . shape , [ 0 , 0 ] ) ;
375+ assert . deepEqual ( df . columns , [ ] ) ;
376+ assert . deepEqual ( df . dtypes , [ ] ) ;
377+ assert . deepEqual ( df . values , [ ] ) ;
363378 let sf = new NDframe ( { data : [ ] , isSeries : true } ) ;
364379 assert . deepEqual ( sf . shape , [ 0 , 0 ] ) ;
365380 assert . deepEqual ( sf . columns , [ ] ) ;
366381 assert . deepEqual ( sf . dtypes , [ ] ) ;
367382 assert . deepEqual ( sf . values , [ ] ) ;
368383 } ) ;
384+
385+ it ( "Can successfully create an empty NDframe with columns names" , function ( ) {
386+ let data : any = [ ] ;
387+ let df = new NDframe ( { data, columns : [ "A" , "B" , "C" ] , isSeries : false } ) ;
388+ assert . deepEqual ( df . shape , [ 0 , 3 ] ) ;
389+ assert . deepEqual ( df . columns , [ "A" , "B" , "C" ] ) ;
390+ assert . deepEqual ( df . dtypes , [ ] ) ;
391+ assert . deepEqual ( df . values , [ ] ) ;
392+ let sf = new NDframe ( { data, columns : [ "A" ] , isSeries : true } ) ;
393+ assert . deepEqual ( sf . shape , [ 0 , 1 ] ) ;
394+ assert . deepEqual ( sf . columns , [ "A" ] ) ;
395+ assert . deepEqual ( sf . dtypes , [ ] ) ;
396+ assert . deepEqual ( sf . values , [ ] ) ;
397+ } ) ;
398+
399+ it ( "Can successfully create an empty NDframe with columns names and dtypes" , function ( ) {
400+ let data : any = [ ] ;
401+ let df = new NDframe ( { data, columns : [ "A" , "B" , "C" ] , dtypes : [ "string" , "string" , "int32" ] , isSeries : false } ) ;
402+ assert . deepEqual ( df . shape , [ 0 , 3 ] ) ;
403+ assert . deepEqual ( df . columns , [ "A" , "B" , "C" ] ) ;
404+ assert . deepEqual ( df . dtypes , [ "string" , "string" , "int32" ] ) ;
405+ assert . deepEqual ( df . values , [ ] ) ;
406+ let sf = new NDframe ( { data, columns : [ "A" ] , dtypes : [ "string" ] , isSeries : true } ) ;
407+ assert . deepEqual ( sf . shape , [ 0 , 1 ] ) ;
408+ assert . deepEqual ( sf . columns , [ "A" ] ) ;
409+ assert . deepEqual ( sf . dtypes , [ "string" ] ) ;
410+ assert . deepEqual ( sf . values , [ ] ) ;
411+ } ) ;
412+
413+ it ( "Cannot successfully create an empty NDframe with only columns dtypes" , function ( ) {
414+ let data : any = [ ] ;
415+ assert . throws (
416+ ( ) => new NDframe ( { data, dtypes : [ "string" , "string" , "int32" ] , isSeries : false } ) ,
417+ Error ,
418+ "DtypeError: columns parameter must be provided when dtypes parameter is provided"
419+ ) ;
420+ assert . throws (
421+ ( ) => new NDframe ( { data, dtypes : [ "string" ] , isSeries : true } ) ,
422+ Error ,
423+ "DtypeError: columns parameter must be provided when dtypes parameter is provided"
424+ ) ;
425+ } ) ;
426+
369427 } ) ;
370428} ) ;
0 commit comments