We definitely need more unit tests, especially integration tests since a we have some functionality tested at the utmost atom level but this does not help us if the whole pipeline functions cannot parse an, e.g., Investigation file.
But it would definitely be better if it was parsed as CvParam. Maybe allow Comments at all?
Also: ORCID misses a CvTerm in the respective ontology.
Le workaround...
letcvparams=
params // this is a IParam list, parsed from an ISA.XLSX file|> List.map (fun p ->match CvParam.tryCvParam p with| Some cvp -> cvp
| None -> CvParam(p.ID, p.Name, p.RefUri, p.Value, p :?> CvAttributeCollection))
Since we partition the columns into IO vs rest, we just need to update our regexes accordingly, so let this issue stand here as a reminder to do that eventually.
Might be a bit more difficult since CvParams can be nested infinitely via having CvParams in their Attribute collection (therefore recursion is needed)...
Atm., a lot of the tokenization already packs some information into CvAttribute collection among other things. There are also some Bugs in parsing Keys associated with this.
We need to disentangle this structural muddle and also add some more testing to make this mess more stable than it is now.