Orig Description
Aizu PR
An English booklet has been created for publicizing Aizu to the world.
When you read it carefully, you found a misnomer (an error in writing) on the last name of Masayuki Hoshina, the lord of the Aizu domain. The booklet says "Hoshino" not "Hoshina".
Your task is to write a program which replace all the words "Hoshino" with "Hoshina". You can assume that the number of characters in a text is less than or equal to 1000.
Input
The input consists of several datasets. There will be the number of datasets n in the first line. There will be n lines. A line consisting of english texts will be given for each dataset.
Output
For each dataset, print the converted texts in a line.
Sample Input
3
Hoshino
Hashino
Masayuki Hoshino was the grandson of Ieyasu Tokugawa.
Output for the Sample Input
Hoshina
Hashino
Masayuki Hoshina was the grandson of Ieyasu Tokugawa.
Extracted Specification
An integer n (1 ≤ n ≤ 1000), representing the number of datasets.
n lines of text, where each line has up to 1000 characters.
### Example Input:
```
3
Hoshino
Hashino
Masayuki Hoshino was the grandson of Ieyasu Tokugawa.
```
### Function Signature:
Write a function f(n, datasets) that takes in the input.
def f(n: int, datasets: List[str]):
'''
n: an integer
datasets: a list of strings
'''
Test Case Generator
Sure! Here is a test case generator for the problem statement you provided:
```python
import random
import string
def generate_random_text():
length = random.randint(1, 200) # Length of each line can vary but should be reasonably small for ease of testing.
words = ["Hoshino", "Hoshina", "Masayuki", "Tokugawa", "Aizu", "domain", "lord", "grandson", "Ieyasu"]
text = " ".join(random.choices(words + [""]*5 + [""]*5 + list(string.ascii_lowercase), k=length))
return text
def tcgen():
n = random.randint(1, 10)
datasets = [generate_random_text() for _ in range(n)]
return n, datasets
# Example of generating a test case
n, datasets = tcgen()
print(n)
for data in datasets:
print(data)
```
### Explanation
1. **generate_random_text()**:
- This function generates a random text of length up to 200 characters.
- The text is constructed by randomly selecting words from a predefined list of words that are relevant to the problem or random lowercase letters to add variability.
2. **tcgen()**:
- This function generates the whole test case.
- It randomly determines the number of datasets `n` (between 1 and 10 for complexity control).
- It then generates `n` lines of random text using the `generate_random_text` function.
### Example Output
You can run this in a Python environment to see the generated output. Here’s an example of what it might look like:
```
4
Hoshino was the lord of the Aizu domain
Masayuki was the grandson of Ieyasu Tokugawa
grandson Ieyasu domain Aizu domain
lord Tokugawa Hoshino Masayuki
```
This generator can be run multiple times to get different sets of test cases to ensure your solution handles a variety of inputs correctly.
Extract Arguments
def extract_arguments(fh):
n = int(fh.readline().strip())
datasets = [fh.readline().strip() for _ in range(n)]
return n, datasets