   it "provides values from streams in given order and ends when both are exhausted", ->
     expectStreamEvents(
       ->
-        left = repeat(2, [1, error(), 2, 3]).take(3)
-        right = repeat(1, [4, 5, 6]).take(3)
+        left = series(2, [1, error(), 2, 3])
+        right = series(1, [4, 5, 6])
         left.concat(right)
       [1, error(), 2, 3, 4, 5, 6])
   it "respects subscriber return value when providing events from left stream", ->

  it "merges two streams and ends when both are exhausted", ->
    expectStreamEvents( 
      ->
        left = repeat(1, [1, error(), 2, 3]).take(3)
        right = repeat(10, [4, 5, 6]).take(3)
        left.merge(right)
      [1, error(), 2, 3, 4, 5, 6])
  it "respects subscriber return value", ->

  it "accepts optional combinator function f(Vp, Vs)", ->
    expectStreamEvents(
      ->
        prop = series(2, ["a", "b"]).toProperty()
        stream = series(2, ["1", "2", "1", "2"]).delay(t(1))
        prop.sampledBy(stream, add)
      ["a1", "b2", "b1", "b2"])
  it "works with same origin", ->
    expectStreamEvents(
      ->
        src = series(2, [1, 2])
        src.toProperty().sampledBy(src)
      [1, 2])
    expectStreamEvents(
      ->
        src = series(2, [1, 2])
        src.toProperty().sampledBy(src.map(times(2)))
      [1, 2])

