Sure! Here is a test case generator for the "Symmetric Ternary" problem statement:

```python
import random

def tcgen():
    w = random.randint(1, 100000)
    return w

# Example usage
if __name__ == "__main__":
    for _ in range(5):  # Generate 5 test cases
        print(tcgen())
```

This function generates a random integer `w` between 1 and 100000, which is the input for the problem. You can run this script to generate multiple test cases as needed.

If you want to generate test cases with the expected output for verification, you would need to implement the algorithm to convert `w` to its symmetric ternary representation. Here’s a possible implementation for that:

```python
def symmetric_ternary(w):
    if w == 0:
        return "0"
    
    result = []
    while w != 0:
        mod = w % 3
        if mod == 0:
            result.append("0")
        elif mod == 1:
            result.append("+")
            w -= 1
        else:  # mod == 2
            result.append("-")
            w = (w + 1) // 3
        w //= 3
    
    return ''.join(result[::-1])

# Example usage with output
if __name__ == "__main__":
    for _ in range(5):  # Generate 5 test cases with expected output
        w = tcgen()
        print(f"Input: {w}")
        print(f"Output: {symmetric_ternary(w)}")
        print()
```

This script first generates the random weight `w`, then computes its symmetric ternary representation using the `symmetric_ternary` function, and finally prints both the input and the output.

You can adjust the number of test cases generated by modifying the range in the loop.