요새 만들고 있는 라이브러리 테스트 케이스인데, 이런게 쓸모가 있을까?

def test_map_combinators(self):

class Fixture:
value = from_value(1)

doubled = map_value(value)(ops.map(lambda v: v * 2))

numbers = combine(value, doubled)(lambda o: rx.combine_latest(*o))

combined = combine_latest(value, doubled)(ops.map(lambda v: f"{v[0]} * 2 = {v[1]}"))

zipped = zip_values(value, doubled)(ops.map(lambda v: f"{v[0]} * 2 = {v[1]}"))

combined = []
zipped = []

fixture = Fixture()

observe(fixture.zipped).subscribe(zipped.append)
observe(fixture.combined).subscribe(combined.append)

self.assertEqual(1, fixture.value)
self.assertEqual(2, fixture.doubled)
self.assertEqual((1, 2), fixture.numbers)
self.assertEqual("1 * 2 = 2", fixture.combined)
self.assertEqual("1 * 2 = 2", fixture.zipped)
self.assertEqual(["1 * 2 = 2"], combined)
self.assertEqual(["1 * 2 = 2"], zipped)

fixture.value = 3

self.assertEqual(3, fixture.value)
self.assertEqual(6, fixture.doubled)
self.assertEqual((3, 6), fixture.numbers)
self.assertEqual("3 * 2 = 6", fixture.combined)
self.assertEqual("3 * 2 = 6", fixture.zipped)
self.assertEqual(["1 * 2 = 2", "3 * 2 = 2", "3 * 2 = 6"], combined)
self.assertEqual(["1 * 2 = 2", "3 * 2 = 6"], zipped)


한 마디로 이야기하면 클래스 속성을 Rx로 쓸 수 있게 하는 도구인데, 아직 이게 말이 되는 건지 확신이 안가는 중임.


이런 식으로 코딩하는 게 의미가 있을까?


여긴 함수형 잘 아는 애들도 많으니 왠지 의견 물어보면 참고가 될 것 같네.