We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Faker should provide company VAT numbers
It would be nice if faker could provide company VAT numbers. More information about VAT codes is in Wikipedia: https://en.wikipedia.org/wiki/VAT_identification_number


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `faker/providers/company/fi_FI/__init__.py`
Content:
```
1 from __future__ import unicode_literals
2 from .. import Provider as CompanyProvider
3 
4 
5 class Provider(CompanyProvider):
6     formats = (
7         '{{last_name}} {{company_suffix}}',
8         '{{last_name}} {{last_name}} {{company_suffix}}',
9         '{{last_name}} {{last_name}} {{company_suffix}}',
10         '{{last_name}}'
11     )
12 
13     company_suffixes = (
14         'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'
15     )
16
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/faker/providers/company/fi_FI/__init__.py b/faker/providers/company/fi_FI/__init__.py
--- a/faker/providers/company/fi_FI/__init__.py
+++ b/faker/providers/company/fi_FI/__init__.py
@@ -13,3 +13,41 @@
     company_suffixes = (
         'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'
     )
+
+    def company_business_id(self):
+        """
+        Returns Finnish company Business Identity Code (y-tunnus).
+        Format is 8 digits - e.g. FI99999999,[8] last digit is a check
+        digit utilizing MOD 11-2. The first digit is zero for some old
+        organizations. This function provides current codes starting with
+        non-zero.
+        """
+        def calculate_checksum(number):
+            """Calculate the checksum using mod 11,2 method"""
+            factors = [7, 9, 10, 5, 8, 4, 2]
+            sum = 0
+            for x, y in zip(number, factors):
+                sum = sum + int(x) * y
+            if sum % 11 == 0:
+                return '0'
+            else:
+                return str(11 - sum % 11)
+
+        first_digit = str(self.random_digit_not_null())
+        body = first_digit + self.bothify(self.random_element(('######',)))
+        cs = calculate_checksum(body)
+        return (body + '-' + str(cs))
+
+    def company_vat(self):
+        """
+        Returns Finnish VAT identification number (Arvonlisaveronumero).
+        This can be calculated from company business identity code by
+        adding prefix "FI" and removing dash before checksum.
+        """
+        def convert_to_vat(business_id):
+            """
+            Convert business id to VATIN
+            """
+            return 'FI' + business_id.replace('-', '')
+
+        return convert_to_vat(self.company_business_id())

{"golden_diff": "diff --git a/faker/providers/company/fi_FI/__init__.py b/faker/providers/company/fi_FI/__init__.py\n--- a/faker/providers/company/fi_FI/__init__.py\n+++ b/faker/providers/company/fi_FI/__init__.py\n@@ -13,3 +13,41 @@\n     company_suffixes = (\n         'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n     )\n+\n+    def company_business_id(self):\n+        \"\"\"\n+        Returns Finnish company Business Identity Code (y-tunnus).\n+        Format is 8 digits - e.g. FI99999999,[8] last digit is a check\n+        digit utilizing MOD 11-2. The first digit is zero for some old\n+        organizations. This function provides current codes starting with\n+        non-zero.\n+        \"\"\"\n+        def calculate_checksum(number):\n+            \"\"\"Calculate the checksum using mod 11,2 method\"\"\"\n+            factors = [7, 9, 10, 5, 8, 4, 2]\n+            sum = 0\n+            for x, y in zip(number, factors):\n+                sum = sum + int(x) * y\n+            if sum % 11 == 0:\n+                return '0'\n+            else:\n+                return str(11 - sum % 11)\n+\n+        first_digit = str(self.random_digit_not_null())\n+        body = first_digit + self.bothify(self.random_element(('######',)))\n+        cs = calculate_checksum(body)\n+        return (body + '-' + str(cs))\n+\n+    def company_vat(self):\n+        \"\"\"\n+        Returns Finnish VAT identification number (Arvonlisaveronumero).\n+        This can be calculated from company business identity code by\n+        adding prefix \"FI\" and removing dash before checksum.\n+        \"\"\"\n+        def convert_to_vat(business_id):\n+            \"\"\"\n+            Convert business id to VATIN\n+            \"\"\"\n+            return 'FI' + business_id.replace('-', '')\n+\n+        return convert_to_vat(self.company_business_id())\n", "issue": "Faker should provide company VAT numbers\nIt would be nice if faker could provide company VAT numbers. More information about VAT codes is in Wikipedia: https://en.wikipedia.org/wiki/VAT_identification_number\n\n", "before_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as CompanyProvider\n\n\nclass Provider(CompanyProvider):\n    formats = (\n        '{{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}}'\n    )\n\n    company_suffixes = (\n        'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n    )\n", "path": "faker/providers/company/fi_FI/__init__.py"}], "after_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as CompanyProvider\n\n\nclass Provider(CompanyProvider):\n    formats = (\n        '{{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}} {{last_name}} {{company_suffix}}',\n        '{{last_name}}'\n    )\n\n    company_suffixes = (\n        'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'\n    )\n\n    def company_business_id(self):\n        \"\"\"\n        Returns Finnish company Business Identity Code (y-tunnus).\n        Format is 8 digits - e.g. FI99999999,[8] last digit is a check\n        digit utilizing MOD 11-2. The first digit is zero for some old\n        organizations. This function provides current codes starting with\n        non-zero.\n        \"\"\"\n        def calculate_checksum(number):\n            \"\"\"Calculate the checksum using mod 11,2 method\"\"\"\n            factors = [7, 9, 10, 5, 8, 4, 2]\n            sum = 0\n            for x, y in zip(number, factors):\n                sum = sum + int(x) * y\n            if sum % 11 == 0:\n                return '0'\n            else:\n                return str(11 - sum % 11)\n\n        first_digit = str(self.random_digit_not_null())\n        body = first_digit + self.bothify(self.random_element(('######',)))\n        cs = calculate_checksum(body)\n        return (body + '-' + str(cs))\n\n    def company_vat(self):\n        \"\"\"\n        Returns Finnish VAT identification number (Arvonlisaveronumero).\n        This can be calculated from company business identity code by\n        adding prefix \"FI\" and removing dash before checksum.\n        \"\"\"\n        def convert_to_vat(business_id):\n            \"\"\"\n            Convert business id to VATIN\n            \"\"\"\n            return 'FI' + business_id.replace('-', '')\n\n        return convert_to_vat(self.company_business_id())\n", "path": "faker/providers/company/fi_FI/__init__.py"}]}