Python string.printable.
Sort a list of strings.
Quantity turns common inputs into a distribution that indicates how many of something.
It does not record, track, or manage the unit of measure of the quantity. This is expected to be managed by the name of the quantity.
For example: LaborHours, ServerCount, etc.
The estimator is expected to align the unit of measure of the quantity with the unit of measure of the price.
Assertions that do have their impact reflected into the estimate. Their chance can be any percentage from 0% through 100%.
Semantic versioning is used.
Assertions that do not (yet) warrant their impact be woven into the estimate, but are important to document. These tend to be assertions with wide ranging impacts and should be named as statements of truth. Their chance is commonly 100%.
Always asserts to false.
Adds items that require the use the given item.
Adds required components to the given item.
Adds items that desire to use the given item.
Always asserts to true.
Price turns common inputs into a distribution that indicates the monetary value of something.
It does not record, track, or manage the currency of the quantity. This is expected to be managed by the name of the price, or by the locale.
For example: HourlyRate, CostPerGbPerMonth, etc.
The estimator is expected to align the unit of measure of the price with the unit of measure of the quantity.
Assertions that are meant to manage scope optionality.
While their chance can be any percentage from 0% through 100%,
they commonly start out as true
, or at 100%.
They are toggled to false
during what-if analysis,
where the estimate is adjusted to meet outside realities.
Assertion allows embedding of propositions in the estimate that have a certain likelihood of being true or false.
Aliases assumption1,
risk, and
scope` have been provided for semantic purposes.
Adds desired components to the given item.
Item collects components that make up a composite estimate if the prerequisites are met.
Label returns the string passed, with its name tag set to that string.
Resolve the four sets of assertions into a single True or False Bernoulli distribution.
every
requires that each passed assertion MUST be truenone
requires that each passed assertion MUST be falsesome
requires that any of the passed assertions could be truesomeNot
requires that any of the passed assertions could be falseCheck if a list is a unnested list of Numbers.
import 'hub:mlao-pdx/lib-common' as c { yes: c.isListOf([1n,2%,3,4T],'Number'), yes: c.isListOf(['a', '3'],'String'), no: c.isListOfNumbers([1n,2%,'3',4T],'Number'),