@@ -302,7 +302,7 @@ let private tests_ArcTableProcess =
302302 let table = ArcTable.fromProcesses tableName1 processes
303303 Expect.arcTableEqual table t " Table should be equal"
304304 )
305- ftestCase " ParamValueUnitizedNoValue " ( fun () ->
305+ ptestCase " ParamValueUnitizedNoValueNoInputOutput " ( fun () ->
306306 let t = ArcTable.init tableName1
307307 let header = CompositeHeader.Parameter oa_ temperature
308308 let unit = oa_ degreeCel
@@ -321,13 +321,38 @@ let private tests_ArcTableProcess =
321321 Expect.equal resultUnit unit " Unit should match"
322322
323323 let t ' = ArcTable.fromProcesses tableName1 processes
324- Expect.arcTableEqual t t' " Table should be equal"
324+ Expect.arcTableEqual t' t " Table should be equal"
325325 )
326- ftestCase " ParamValueUnitizedEmpty" ( fun () ->
326+ testCase " ParamValueUnitizedNoValue" ( fun () ->
327+ let t = ArcTable.init tableName1
328+ let header = CompositeHeader.Parameter oa_ temperature
329+ let unit = oa_ degreeCel
330+ let cell = CompositeCell.createUnitized ( " " , unit)
331+ t.AddColumn( CompositeHeader.Input( IOType.Source),[| CompositeCell.createFreeText " Source" |])
332+ t.AddColumn( header,[| cell|])
333+ t.AddColumn( CompositeHeader.Output( IOType.Sample),[| CompositeCell.createFreeText " Sample" |])
334+
335+ let processes = t.GetProcesses()
336+ Expect.equal 1 processes.Length " Should have 1 process"
337+ let p = processes.[ 0 ]
338+ Expect.equal 1 p.ParameterValues.Value.Length " Should have 1 parameter value"
339+ let pv = p.ParameterValues.Value.[ 0 ]
340+ Expect.isNone pv.Value " Should have no value"
341+ let resultCategory = Expect.wantSome pv.Category " Should have category"
342+ Expect.equal resultCategory ( ProtocolParameter.create( ParameterName = oa_ temperature)) " Category should match"
343+ let resultUnit = Expect.wantSome pv.Unit " Should have unit"
344+ Expect.equal resultUnit unit " Unit should match"
345+
346+ let t ' = ArcTable.fromProcesses tableName1 processes
347+ Expect.arcTableEqual t' t " Table should be equal"
348+ )
349+ ptestCase " ParamValueUnitizedEmpty" ( fun () ->
327350 let t = ArcTable.init tableName1
328351 let header = CompositeHeader.Parameter oa_ temperature
329352 let cell = CompositeCell.createUnitized ( " " )
353+ t.AddColumn( CompositeHeader.Input( IOType.Source),[| CompositeCell.createFreeText " Source" |])
330354 t.AddColumn( header,[| cell|])
355+ t.AddColumn( CompositeHeader.Output( IOType.Sample),[| CompositeCell.createFreeText " Sample" |])
331356
332357 let processes = t.GetProcesses()
333358 Expect.equal 1 processes.Length " Should have 1 process"
@@ -340,13 +365,15 @@ let private tests_ArcTableProcess =
340365 Expect.isNone pv.Unit " Should have no unit"
341366
342367 let t ' = ArcTable.fromProcesses tableName1 processes
343- Expect.arcTableEqual t t' " Table should be equal"
368+ Expect.arcTableEqual t' t " Table should be equal"
344369 )
345- ftestCase " ParamValueUnitizedNoUnit" ( fun () ->
370+ testCase " ParamValueUnitizedNoUnit" ( fun () ->
346371 let t = ArcTable.init tableName1
347372 let header = CompositeHeader.Parameter oa_ temperature
348373 let cell = CompositeCell.createUnitized ( " 5" )
374+ t.AddColumn( CompositeHeader.Input( IOType.Source),[| CompositeCell.createFreeText " Source" |])
349375 t.AddColumn( header,[| cell|])
376+ t.AddColumn( CompositeHeader.Output( IOType.Sample),[| CompositeCell.createFreeText " Sample" |])
350377
351378 let processes = t.GetProcesses()
352379 Expect.equal 1 processes.Length " Should have 1 process"
@@ -360,7 +387,28 @@ let private tests_ArcTableProcess =
360387 Expect.isNone pv.Unit " Should have no unit"
361388
362389 let t ' = ArcTable.fromProcesses tableName1 processes
363- Expect.arcTableEqual t t' " Table should be equal"
390+ Expect.arcTableEqual t' t " Table should be equal"
391+ )
392+ testCase " ParamValueTermEmpty" ( fun () ->
393+ let t = ArcTable.init tableName1
394+ let header = CompositeHeader.Parameter oa_ species
395+ let cell = CompositeCell.createTerm ( OntologyAnnotation.create())
396+ t.AddColumn( CompositeHeader.Input( IOType.Source),[| CompositeCell.createFreeText " Source" |])
397+ t.AddColumn( header,[| cell|])
398+ t.AddColumn( CompositeHeader.Output( IOType.Sample),[| CompositeCell.createFreeText " Sample" |])
399+
400+ let processes = t.GetProcesses()
401+ Expect.equal 1 processes.Length " Should have 1 process"
402+ let p = processes.[ 0 ]
403+ Expect.equal 1 p.ParameterValues.Value.Length " Should have 1 parameter value"
404+ let pv = p.ParameterValues.Value.[ 0 ]
405+ Expect.isNone pv.Value " Should have no value"
406+ let resultCategory = Expect.wantSome pv.Category " Should have category"
407+ Expect.equal resultCategory ( ProtocolParameter.create( ParameterName = oa_ species)) " Category should match"
408+ Expect.isNone pv.Unit " Should have no unit"
409+
410+ let t ' = ArcTable.fromProcesses tableName1 processes
411+ Expect.arcTableEqual t' t " Table should be equal"
364412 )
365413 ]
366414
0 commit comments