Sure, here is a test case generator for the "Tax Rate Changed" problem statement:

```python
import random

def generate_test_case():
    # VAT rates: 0 < x < 100 and 0 < y < 100, and x ≠ y
    x = random.randint(1, 99)
    y = random.randint(1, 99)
    while y == x:
        y = random.randint(1, 99)
        
    # Total after-tax price s: 10 < s < 1000
    s = random.randint(11, 999)
    
    return f"{x} {y} {s}"

def generate_multiple_test_cases(num_cases):
    test_cases = [generate_test_case() for _ in range(num_cases)]
    test_cases.append("0 0 0")  # End of input
    return test_cases

if __name__ == "__main__":
    num_cases = 20
    test_cases = generate_multiple_test_cases(num_cases)
    for case in test_cases:
        print(case)
```

The above code will generate a specified number of test cases for the "Tax Rate Changed" problem. Each test case consists of three integers: `x`, `y`, and `s` as per the problem's constraints. The end of the input is marked by the line "0 0 0".

You can adjust `num_cases` to generate a different number of test cases. Here are a few example test cases generated by the function:

```
45 67 123
10 55 234
32 98 567
99 1 999
...
0 0 0
```

Each test case is printed on a new line and follows the rules specified in the problem statement.