@@ -12,15 +12,15 @@ describe('TSV', function(){
1212
1313 it ( 'should not allow empty values saved as empty cells.' , function ( ) {
1414 var tsv = "1.0\t\t0.2\tresponse 1\t12.32" ;
15- validate . TSV ( file , tsv , [ ] , function ( issues ) {
15+ validate . TSV . TSV ( file , tsv , [ ] , function ( issues ) {
1616 assert ( issues . length === 1 && issues [ 0 ] . code === 23 ) ;
1717 } ) ;
1818
1919 } ) ;
2020
2121 it ( 'should not allow missing values that are specified by something other than "n/a".' , function ( ) {
2222 var tsv = "1.0\tNA\t0.2\tresponse 1\t12.32" ;
23- validate . TSV ( file , tsv , [ ] , function ( issues ) {
23+ validate . TSV . TSV ( file , tsv , [ ] , function ( issues ) {
2424 assert ( issues . length === 1 && issues [ 0 ] . code === 24 ) ;
2525 } ) ;
2626 } ) ;
@@ -29,7 +29,7 @@ describe('TSV', function(){
2929 var tsv = 'header-one\theader-two\theader-three\n' +
3030 'value-one\tvalue-two\n' +
3131 'value-one\tvalue-two\tvalue-three' ;
32- validate . TSV ( file , tsv , [ ] , function ( issues ) {
32+ validate . TSV . TSV ( file , tsv , [ ] , function ( issues ) {
3333 assert ( issues . length === 1 && issues [ 0 ] . code === 22 ) ;
3434 } ) ;
3535 } ) ;
@@ -44,23 +44,23 @@ describe('TSV', function(){
4444 it ( 'should require events files to have "onset" as first header' , function ( ) {
4545 var tsv = 'header-one\tduration\t4eader-three\n' +
4646 'value-one\tvalue-two\tvalue-three' ;
47- validate . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
47+ validate . TSV . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
4848 assert ( issues . length === 1 && issues [ 0 ] . code === 20 ) ;
4949 } ) ;
5050 } ) ;
5151
5252 it ( 'should require events files to have "duration" as second header' , function ( ) {
5353 var tsv = 'onset\theader-two\t4eader-three\n' +
5454 'value-one\tvalue-two\tvalue-three' ;
55- validate . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
55+ validate . TSV . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
5656 assert ( issues . length === 1 && issues [ 0 ] . code === 21 ) ;
5757 } ) ;
5858 } ) ;
5959
6060 it ( 'should not throw issues for a valid events file' , function ( ) {
6161 var tsv = 'onset\tduration\t4eader-three\n' +
6262 'value-one\tvalue-two\tvalue-three' ;
63- validate . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
63+ validate . TSV . TSV ( eventsFile , tsv , [ ] , function ( issues ) {
6464 assert . deepEqual ( issues , [ ] ) ;
6565 } ) ;
6666 } ) ;
@@ -69,12 +69,12 @@ describe('TSV', function(){
6969 var tsv = 'onset\tduration\tstim_file\n' +
7070 'value-one\tvalue-two\timages/red-square.jpg' ;
7171 var fileList = [ { relativePath : '/stimuli/images/blue-square.jpg' } ] ;
72- validate . TSV ( eventsFile , tsv , fileList , function ( issues ) {
72+ validate . TSV . TSV ( eventsFile , tsv , fileList , function ( issues ) {
7373 assert ( issues . length === 1 && issues [ 0 ] . code === 52 ) ;
7474 } ) ;
7575
7676 fileList . push ( { relativePath : '/stimuli/images/red-square.jpg' } ) ;
77- validate . TSV ( eventsFile , tsv , fileList , function ( issues ) {
77+ validate . TSV . TSV ( eventsFile , tsv , fileList , function ( issues ) {
7878 assert . deepEqual ( issues , [ ] ) ;
7979 } ) ;
8080 } ) ;
@@ -89,24 +89,51 @@ describe('TSV', function(){
8989 it ( "should not allow participants.tsv files without participant_id columns" , function ( ) {
9090 var tsv = 'subject_id\theader-two\t4eader-three\n' +
9191 'value-one\tvalue-two\tvalue-three' ;
92- validate . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
92+ validate . TSV . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
9393 assert ( issues . length === 1 && issues [ 0 ] . code === 48 ) ;
9494 } ) ;
9595 } ) ;
9696
9797 it ( "should allow a valid participants.tsv file" , function ( ) {
9898 var tsv = 'participant_id\theader-two\t4eader-three\n' +
9999 'value-one\tvalue-two\tvalue-three' ;
100- validate . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
100+ validate . TSV . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
101101 assert . deepEqual ( issues , [ ] ) ;
102102 } ) ;
103103 } ) ;
104104
105105 it ( "should not allow particpants with age 89 and above in participants.tsv file" , function ( ) {
106106 var tsv = 'participant_id\theader-two\tage\n' + 'sub-01\tvalue-two\t89' ;
107- validate . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
107+ validate . TSV . TSV ( participantsFile , tsv , [ ] , function ( issues ) {
108108 assert ( issues . length === 1 && issues [ 0 ] . code === 56 ) ;
109109 } ) ;
110110 } ) ;
111111
112+ it ( "should check participants listed in phenotype/*tsv and sub-ids " , function ( ) {
113+ var phenotypeParticipants = [ {
114+ list :
115+ [
116+ '10159' ,
117+ '10171' ,
118+ '10189'
119+ ] ,
120+ file :
121+ { name : 'vmnm.tsv' ,
122+ path : '/corral-repl/utexas/poldracklab/openfmri/shared2/ds000030/ds030_R1.0.5/ds000030_R1.0.5//phenotype/vmnm.tsv' ,
123+ relativePath : '/phenotype/vmnm.tsv' } } ] ;
124+ var summary = { sessions : [ ] ,
125+ subjects :
126+ [
127+ '10159' ,
128+ '10171'
129+ ] ,
130+ tasks : [ ] ,
131+ totalFiles : 43 ,
132+ size : 11845 } ;
133+ var issues = [ ] ;
134+ validate . TSV . checkphenotype ( phenotypeParticipants , summary , issues , function ( issues ) {
135+ assert ( issues . length === 1 && issues [ 0 ] . code === 51 ) ;
136+ } ) ;
137+ } ) ;
138+
112139} ) ;
0 commit comments