Add java.time objects to TimeParameters#300
Conversation
|
Ik zou wel iets meer toelichting kunnen gebruiken op wat deze functies doen. |
|
Want stepduration kan wat mij betreft wel een eenheid gebruiken misschien? |
For interoperability with the time series library.
Ik heb commentaar toegevoegd aan de code. Is het zo duiderlijker? |
De eenheid is encapsulated in TemporalAmount. In de praktijk gebruiken we Duration. Die gebruikt seconden + nanoseconden. |
|
Ik zou een test toe willen voegen voor de toegevoegde code. Hoe zien jullie dit graag? Ik had in Interface-Loader een ALP toegevoegd die een test draait. Maar die is sindsdien door niemand gebruikt. https://github.com/Zenmo/zero_Interface-Loader/tree/main/tests Zal ik voor de Engine hetzelfde doen? |
|
Ik kwam tot het inzicht dat ik niet het start jaar wil weten maar de startdatum en -tijd. Dus ik heb dat toegevoegd ipv java.time.Year. |
| @JsonProperty("timeStep_h") double timeStep_h, | ||
| @JsonProperty("stepDuration") Duration stepDuration, | ||
| @JsonProperty("startYear") int startYear, | ||
| @JsonProperty("startYearObject") Year startYearObject, |
There was a problem hiding this comment.
Ik zie dat ik de 2e constructor niet goed in sync houdt. Ik zou ook graag een test willen schrijven voor serialisatie + deserialisatie van deze class gezien dat blijkbaar tricky is.
Testen lijkt me een goed plan, in het algemeen voor LUX. Echter heb ik er niet zoveel kennis van, en kan ik niet goed overzien hoe en wat dat allemaal werkt. |
Ja, ik snap het doel nu. (Al bedoelde ik met iets meer toelichting niet perse comments in de code zelf haha, maar dit is ook goed!). |
|
Blijft voor mij alleen een beetje appart dat 'getStart', 'getEnd' en getStepDuration niet echt een eenheid hebben. Omdat het dus (als ik het goed begrijp) eigenlijk simpelweg een punt/moment in tijd voorsteld (?). Waarna je heel simpel dat 'moment' / duratie kan omzetten in de eenheid die je wil (?). Maar dat is prima natuurlijk, ik ben het gewoon niet gewend. |
Een nog beter idee lijkt me om de test module buiten AnyLogic te trekken zoals lux-esdl. Laten we het idd bespreken. |
Het idee is dat het minder foutgevoelig is omdat je als je het consistent toepast je geen zorgen hoeft te maken over conversie tussen eenheden. Bv: Length wireLength = Length.ofKilometer(1);
Length wireWidth = Length.ofCentimeter(1);
Length wireHeight = Length.ofCentimeter(1);
Volume wireVolume = wireLength.times(wireWidth).times(wireHeight);
Density copperDensity = Density.ofKgPerM3(8960.0);
Weight wireWeight = copperDensity.times(wireVolume);
System.out.println(
String.format(
"The wire weighs %s tonnes and has a volume of %s liters"
wireWeight.toTonnes(),
wireVolume.toLiters(),
)
); |
nee oke, al weet ik niet of ik wel fan ben van het hierboven genoemd voorbeeld haha, maar voor tijd snap ik het wel. |
|
Heeft geen haast, kan best wachten tot de tests zijn geschreven |
For interoperability with the time series library.