2020-02-15 23:27:25 +00:00
|
|
|
// ~generationSource=GuesstimatorString(FloatCdf.logNormal(20., 3.)),
|
2020-02-10 23:32:44 +00:00
|
|
|
module Model = {
|
2020-02-14 21:53:47 +00:00
|
|
|
let make = (currentDateTime: MomentRe.Moment.t) => {
|
2020-02-15 23:01:59 +00:00
|
|
|
let genericDistribution =
|
|
|
|
GenericDistribution.make(
|
2020-02-15 23:27:25 +00:00
|
|
|
~generationSource=
|
|
|
|
GuesstimatorString("mm(floor(10 to 15), 20 to 30, [.5,.5])"),
|
2020-02-15 23:01:59 +00:00
|
|
|
~probabilityType=Cdf,
|
|
|
|
~domain=RightLimited({xPoint: 200., excludingProbabilityMass: 0.3}),
|
|
|
|
~unit=Time({zero: currentDateTime, unit: `years}),
|
|
|
|
(),
|
2020-02-14 21:53:47 +00:00
|
|
|
);
|
2020-02-15 23:01:59 +00:00
|
|
|
Prop.Value.GenericDistribution(genericDistribution);
|
2020-02-10 23:32:44 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
module Interface = {
|
|
|
|
let dayKey = "Day";
|
|
|
|
|
|
|
|
let run = (p: Prop.Combo.t) => {
|
|
|
|
switch (Prop.Combo.InputValues.toValueArray(p)) {
|
2020-02-14 21:53:47 +00:00
|
|
|
| [|Some(DateTime(currentYear))|] => Some(Model.make(currentYear))
|
2020-02-10 23:32:44 +00:00
|
|
|
| _ => None
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
let model: Prop.Model.t =
|
|
|
|
Prop.{
|
|
|
|
name: "Global Catastrophe",
|
2020-02-10 23:45:54 +00:00
|
|
|
description: "The chances of having at least one catastrophe per year in the future, assuming no other catastrophe until then.",
|
2020-02-10 23:32:44 +00:00
|
|
|
version: "1.0.0",
|
|
|
|
author: "Ozzie Gooen",
|
2020-02-14 21:53:47 +00:00
|
|
|
inputTypes: [|TypeWithMetadata.currentYear|],
|
2020-02-10 23:32:44 +00:00
|
|
|
outputTypes: [||],
|
|
|
|
run,
|
|
|
|
};
|
|
|
|
};
|