import sys
sys.path.insert(0, r'rx-rust-py/python')
import rx_rust
from rx_rust import _PyObservable, Subscription
import time
src = _PyObservable.from_iter([1, 2, 3])
print('Test 1: source subscribe')
src.subscribe(lambda v: print(f' got: {v}'))
print(' OK')
print('Test 2: dispatch_to_workers on _PyObservable')
result = src.dispatch_to_workers(lambda x: x * 10, num_workers=2).collect()
print(f' Result: {sorted(result)}')
print(' OK')
print('Test 3: Observable wrapper')
from rx_rust import Observable
obs = Observable.from_iter([1, 2, 3])
result = obs.dispatch_to_workers(lambda x: x * 10, num_workers=2).collect()
print(f' Result: {sorted(result)}')
print(' OK')
print('ALL TESTS PASSED')