Repository: identique/idnumbers (language: python)

Issue:
id number for Papua_New_Guinea
https://en.wikipedia.org/wiki/National_identification_number#Papua_New_Guinea


Discussion / hints:
related info about PNG NID: https://www.pngfacts.com/nid-png.html . But it's hard to find any information about the id number 
example of id could be found 
![image](https://user-images.githubusercontent.com/120368198/215371650-4c17eb0e-22d3-4049-8037-5f185dcfea8c.png)

Looks like 10 digits only. I don't know if it contains any information behind the numbers.
inquiry email sent...

Fix patch:
diff --git a/idnumbers/nationalid/PNG.py b/idnumbers/nationalid/PNG.py
new file mode 100644
index 00000000..f5471bbb
--- /dev/null
+++ b/idnumbers/nationalid/PNG.py
@@ -0,0 +1,30 @@
+import re
+from types import SimpleNamespace
+
+from .util import validate_regexp
+
+
+class NationalID:
+    """
+    Papua New Guinea national id, NID
+    https://en.wikipedia.org/wiki/National_identification_number#Moldova
+    """
+    METADATA = SimpleNamespace(**{
+        'iso3166_alpha2': 'PG',
+        # length without insignificant chars
+        'min_length': 10,
+        'max_length': 10,
+        # has parse function
+        'parsable': False,
+        # has checksum function
+        'checksum': False,
+        # regular expression to validate the id
+        'regexp': re.compile(r'^\d{10}$')
+    })
+
+    @staticmethod
+    def validate(id_number: str) -> bool:
+        """
+        Validate the NID
+        """
+        return validate_regexp(id_number, NationalID.METADATA.regexp)


Test patch:
diff --git a/tests/nationalid/test_PNG.py b/tests/nationalid/test_PNG.py
new file mode 100644
index 00000000..c5368c16
--- /dev/null
+++ b/tests/nationalid/test_PNG.py
@@ -0,0 +1,15 @@
+from unittest import TestCase, main
+from idnumbers.nationalid import PNG
+
+
+class TestPNGNationalIDValidation(TestCase):
+    def test_normal_case(self):
+        self.assertTrue(PNG.NationalID.validate('0211907202'))
+
+    def test_error_case(self):
+        self.assertFalse(PNG.NationalID.validate('021190720'))
+        self.assertFalse(PNG.NationalID.validate('021A907202'))
+
+
+if __name__ == '__main__':
+    main()