Smalyshev has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/284071

Change subject: Fix handling of bad months
......................................................................

Fix handling of bad months

Change-Id: I104e2ae8a17e1e888f7e6c12364f52822d76065d
---
M common/src/main/java/org/wikidata/query/rdf/common/WikibaseDate.java
M common/src/test/java/org/wikidata/query/rdf/common/WikibaseDateUnitTest.java
2 files changed, 12 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/rdf 
refs/changes/71/284071/1

diff --git 
a/common/src/main/java/org/wikidata/query/rdf/common/WikibaseDate.java 
b/common/src/main/java/org/wikidata/query/rdf/common/WikibaseDate.java
index c185a99..cd02297 100644
--- a/common/src/main/java/org/wikidata/query/rdf/common/WikibaseDate.java
+++ b/common/src/main/java/org/wikidata/query/rdf/common/WikibaseDate.java
@@ -201,6 +201,10 @@
         if (month == 0) {
             newMonth = 1;
         }
+        if (month > 12) {
+            newYear += (month - 1) / 12;
+            newMonth = (month - 1) % 12 + 1;
+        }
         if (day == 0) {
             newDay = 1;
         } else {
diff --git 
a/common/src/test/java/org/wikidata/query/rdf/common/WikibaseDateUnitTest.java 
b/common/src/test/java/org/wikidata/query/rdf/common/WikibaseDateUnitTest.java
index dc07562..8bedba0 100644
--- 
a/common/src/test/java/org/wikidata/query/rdf/common/WikibaseDateUnitTest.java
+++ 
b/common/src/test/java/org/wikidata/query/rdf/common/WikibaseDateUnitTest.java
@@ -113,6 +113,14 @@
     }
 
     @Test
+    public void badMonth() {
+        WikibaseDate wbDate = fromString("1844-13-31T00:00:00Z");
+        wbDate = wbDate.cleanWeirdStuff();
+        assertEquals(1845, wbDate.year());
+        assertEquals(1, wbDate.month());
+    }
+
+    @Test
     @Repeat(iterations = 100)
     public void randomDate() {
         // Build a valid random date

-- 
To view, visit https://gerrit.wikimedia.org/r/284071
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I104e2ae8a17e1e888f7e6c12364f52822d76065d
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/query/rdf
Gerrit-Branch: master
Gerrit-Owner: Smalyshev <smalys...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to