[wao] branch develop updated (5eba42d -> 8caade5)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository wao. See http://git.codelutin.com/wao.git from 5eba42d Lors du calcul d'un effort, on ne doit pas afficher "-" parce que le numérateur vaut 0 mais bien 0 (fixes #6048) new bdb44c9 Dans le calcul du nombre de jours de mers, si la date de débarquement est à minuit, on veille à bien compter le jour d'arrivée comme jour de mer new a9b400f Déplacement d'un assertion de test dans un verify guava new 53a85f0 Quand on calcule les jours de mers entre deux dates comportant un changement d'heure (heure d'été/heure d'hiver), il semblerait que DateUtil.getDifferenceInDays donne un résultat faux. Réécriture de l'algo pour ne pas utiliser DateUtil. new 8caade5 Correction du calcul des jours de mers dans le plan ObsMer : on répartit bien tous les jours du contact dans le plan (fixes #6050) The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 8caade58b33140b2002fb7fec71c21757c4cf54d Merge: 5eba42d 53a85f0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Nov 5 12:01:54 2014 +0100 Correction du calcul des jours de mers dans le plan ObsMer : on répartit bien tous les jours du contact dans le plan (fixes #6050) commit 53a85f0dc0014d97735acbb4a696a6f0a7bfaba9 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:56:50 2014 +0100 Quand on calcule les jours de mers entre deux dates comportant un changement d'heure (heure d'été/heure d'hiver), il semblerait que DateUtil.getDifferenceInDays donne un résultat faux. Réécriture de l'algo pour ne pas utiliser DateUtil. commit a9b400f2504df440fe4d9e210d403a936d5b3bb3 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:55:27 2014 +0100 Déplacement d'un assertion de test dans un verify guava commit bdb44c978ff752914b52c06c02cace1e98db1a4c Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:52:06 2014 +0100 Dans le calcul du nombre de jours de mers, si la date de débarquement est à minuit, on veille à bien compter le jour d'arrivée comme jour de mer Summary of changes: .../src/main/java/fr/ifremer/wao/WaoUtils.java | 29 ++++++++++--- .../src/test/java/fr/ifremer/wao/WaoUtilsTest.java | 50 ++++++++++++++++------ 2 files changed, 60 insertions(+), 19 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit bdb44c978ff752914b52c06c02cace1e98db1a4c Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:52:06 2014 +0100 Dans le calcul du nombre de jours de mers, si la date de débarquement est à minuit, on veille à bien compter le jour d'arrivée comme jour de mer --- wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java | 2 +- .../src/test/java/fr/ifremer/wao/WaoUtilsTest.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java index cbda03d..0da34ca 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java @@ -182,7 +182,7 @@ public class WaoUtils { } count.increment(); aDay = DateUtils.addDays(aDay, 1); - } while (aDay.before(observationEndDate)); + } while ( ! aDay.after(observationEndDate)); // not after équivaut à before ou equals Map<Date, Integer> result = new TreeMap<>(); for (Map.Entry<Date, MutableInt> entry : tempResult.entrySet()) { result.put(entry.getKey(), entry.getValue().intValue()); diff --git a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java index 43f01f0..81c9246 100644 --- a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java +++ b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java @@ -75,7 +75,16 @@ public class WaoUtilsTest { checkObservationTimeInDays(DateUtil.createDate(0, 0, 12, 31, 1, 2014), DateUtil.createDate(0, 0, 23, 1, 2, 2014), 2); } - + + @Test + public void testGetObservationDaysByMonthsWithMidnight() { + + checkObservationTimeInDays(DateUtil.createDate(0, 0, 6, 1, 9, 2014), DateUtil.createDate(0, 0, 0, 13, 9, 2014), 1); + + checkObservationTimeInDays(DateUtil.createDate(0, 0, 0, 1, 9, 2014), DateUtil.createDate(0, 0, 6, 13, 9, 2014), 1); + + } + protected void checkObservationTimeInDays(Date observationBeginDate, Date observationEndDate, int expectedSize) { Map<Date, Integer> observationDaysByMonths = WaoUtils.getObservationDaysByMonths(observationBeginDate, observationEndDate); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit a9b400f2504df440fe4d9e210d403a936d5b3bb3 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:55:27 2014 +0100 Déplacement d'un assertion de test dans un verify guava --- .../src/main/java/fr/ifremer/wao/WaoUtils.java | 17 ++++++++++++++++- .../src/test/java/fr/ifremer/wao/WaoUtilsTest.java | 12 ------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java index 0da34ca..00f0c76 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java @@ -183,10 +183,25 @@ public class WaoUtils { count.increment(); aDay = DateUtils.addDays(aDay, 1); } while ( ! aDay.after(observationEndDate)); // not after équivaut à before ou equals + + int observationDaysTotal = 0; Map<Date, Integer> result = new TreeMap<>(); for (Map.Entry<Date, MutableInt> entry : tempResult.entrySet()) { - result.put(entry.getKey(), entry.getValue().intValue()); + Date month = entry.getKey(); + int observationDays = entry.getValue().intValue(); + observationDaysTotal += observationDays; + result.put(month, observationDays); } + + // on vérifie la cohérence de notre répartition sur les différents mois en vérifiant qu'on a a bien réparti tous les jours d'observations du contact sur un mois + int expectedObservationTimeInDays = getObservationTimeInDays(observationBeginDate, observationEndDate); + Verify.verify( + expectedObservationTimeInDays == observationDaysTotal, + "Pour la période " + observationBeginDate + " à " + observationEndDate + ", on a " + + expectedObservationTimeInDays + " jours d'observation mais on a réparti " + observationDaysTotal + + " sur les différents mois " + result + ); + return result; } diff --git a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java index 81c9246..816ffb3 100644 --- a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java +++ b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java @@ -93,18 +93,6 @@ public class WaoUtilsTest { "La répartition aurait dû se faire sur " + expectedSize + " mois et non " + observationDaysByMonths, expectedSize, observationDaysByMonths.size()); - int expectedObservationTimeInDays = WaoUtils.getObservationTimeInDays(observationBeginDate, observationEndDate); - int actualObservationTimeInDays = 0; - for (Integer monthValue : observationDaysByMonths.values()) { - actualObservationTimeInDays += monthValue; - } - - Assert.assertEquals( - "Il faut répartir " + expectedObservationTimeInDays + " sur les différents mois et non " + actualObservationTimeInDays + ": " + observationDaysByMonths, - expectedObservationTimeInDays, - actualObservationTimeInDays - ); - } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit 53a85f0dc0014d97735acbb4a696a6f0a7bfaba9 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Nov 4 10:56:50 2014 +0100 Quand on calcule les jours de mers entre deux dates comportant un changement d'heure (heure d'été/heure d'hiver), il semblerait que DateUtil.getDifferenceInDays donne un résultat faux. Réécriture de l'algo pour ne pas utiliser DateUtil. --- .../src/main/java/fr/ifremer/wao/WaoUtils.java | 10 ++++---- .../src/test/java/fr/ifremer/wao/WaoUtilsTest.java | 27 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java index 00f0c76..79211c0 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java @@ -159,10 +159,12 @@ public class WaoUtils { * @return la durée du voyage en jour de mer */ public static int getObservationTimeInDays(Date observationBeginDate, Date observationEndDate) { - int observationTimeInDays = DateUtil.getDifferenceInDays( - DateUtils.truncate(observationBeginDate, Calendar.DAY_OF_MONTH), - DateUtils.truncate(observationEndDate, Calendar.DAY_OF_MONTH)) + 1; - Verify.verify(observationTimeInDays > 0); + int observationTimeInDays = 0; + Date aDay = DateUtils.truncate(observationBeginDate, Calendar.DAY_OF_MONTH); + do { + observationTimeInDays += 1; + aDay = DateUtils.addDays(aDay, 1); + } while ( ! aDay.after(observationEndDate)); // not after équivaut à before ou equals return observationTimeInDays; } diff --git a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java index 816ffb3..292c158 100644 --- a/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java +++ b/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java @@ -21,13 +21,16 @@ package fr.ifremer.wao; * #L% */ +import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import org.nuiton.util.DateUtil; import java.text.ParseException; +import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.Map; @@ -85,6 +88,30 @@ public class WaoUtilsTest { } + @Test + public void testCetVsCest() { + + // on a un cas bizarre si changement d'heure entre le départ et l'arrivée + + Assert.assertEquals(1, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 18, 3, 2011))); + Assert.assertEquals(2, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 19, 3, 2011))); + Assert.assertEquals(3, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 20, 3, 2011))); + Assert.assertEquals(4, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 21, 3, 2011))); + Assert.assertEquals(5, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 22, 3, 2011))); + Assert.assertEquals(6, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 23, 3, 2011))); + Assert.assertEquals(7, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 24, 3, 2011))); + Assert.assertEquals(8, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 25, 3, 2011))); + Assert.assertEquals(9, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 26, 3, 2011))); + Assert.assertEquals(10, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 27, 3, 2011))); + Assert.assertEquals(11, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 28, 3, 2011))); + Assert.assertEquals(12, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 21, 18, 3, 2011), DateUtil.createDate(0, 0, 23, 29, 3, 2011))); + + Assert.assertEquals(12, WaoUtils.getObservationTimeInDays(DateUtil.createDate(0, 0, 23, 18, 3, 2011), DateUtil.createDate(0, 0, 21, 29, 3, 2011))); + + checkObservationTimeInDays(DateUtil.createDate(0, 0, 23, 18, 3, 2011), DateUtil.createDate(0, 0, 21, 29, 3, 2011), 1); + + } + protected void checkObservationTimeInDays(Date observationBeginDate, Date observationEndDate, int expectedSize) { Map<Date, Integer> observationDaysByMonths = WaoUtils.getObservationDaysByMonths(observationBeginDate, observationEndDate); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit 8caade58b33140b2002fb7fec71c21757c4cf54d Merge: 5eba42d 53a85f0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Nov 5 12:01:54 2014 +0100 Correction du calcul des jours de mers dans le plan ObsMer : on répartit bien tous les jours du contact dans le plan (fixes #6050) .../src/main/java/fr/ifremer/wao/WaoUtils.java | 29 ++++++++++--- .../src/test/java/fr/ifremer/wao/WaoUtilsTest.java | 50 ++++++++++++++++------ 2 files changed, 60 insertions(+), 19 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm