oasis-open / tosca-community-contributions

OASIS TC Open Repository: Manages TOSCA profiles, tests, and templates that are maintained by the TOSCA community. They are intended to be used as examples to help developers get started with TOSCA and to test compliance of TOSCA implementations with the standard.
https://github.com/oasis-open/tosca-community-contributions
Apache License 2.0
38 stars 25 forks source link

Mix type compatible unit values #143

Open pmjordan opened 1 year ago

pmjordan commented 1 year ago

There is no guidance within the scalar definition or range definition regarding whether compatible units but different units can be compared or used in a range, e.g. is a time range of [1 s, 1 h] acceptable?

lauwers commented 1 year ago

My interpretation is that such a range is acceptable. Implementations should also be able to verify that $equal(60 s, 1 h) is True

pmjordan commented 1 year ago

Then perhaps we could change the example in 5.2.2.4.2 to show a mix of type compatible unit values.

tliron commented 1 year ago

It is clear to me that this is the case, that the whole point of scalars is that the unit doesn't matter internally. You can see in Puccini's implementation that every type is internally converted to a "canonical number" (and unit), which is used for comparisons, e.g. the canonical unit for time is seconds. Maybe we need to specify the canonical unit explicitly in TOSCA because it will have an effect on precision during conversions, which could have implications for very large or very small values with different units.

BTW, the original unit and is still preserved in Puccini (it's in the Clout), but in the TOSCA spec it shouldn't matter because we don't enforce any data storage model.