tosca-community-contributions icon indicating copy to clipboard operation
tosca-community-contributions copied to clipboard

Mix type compatible unit values

Open pmjordan opened this issue 2 years ago • 3 comments

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?

pmjordan avatar Mar 01 '23 16:03 pmjordan

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

lauwers avatar Mar 01 '23 16:03 lauwers

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

pmjordan avatar Mar 01 '23 17:03 pmjordan

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.

tliron avatar Mar 01 '23 17:03 tliron