   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", ->

    expectStreamEvents(
      ->
        Bacon.mergeAll([
          repeat(3, [1, 2]).take(2)
          repeat(3, [3, 4]).delay(t(1)).take(2)
          repeat(3, [5, 6]).delay(t(2)).take(2)])
      [1, 3, 5, 2, 4, 6])

describe "Property.sampledBy", -> 
  it "samples property at events, resulting to EventStream", ->
    expectStreamEvents(
      ->
        prop = repeat(2, [1, 2]).take(2).toProperty()
        stream = repeat(3, ["troll"]).take(4)
        prop.sampledBy(stream)
      [1, 2, 2, 2])
  it "includes errors from both Property and EventStream", ->
    expectStreamEvents(
      ->
        prop = repeat(2, [error(), 2]).take(1).toProperty()
        stream = repeat(3, [error(), "troll"]).take(1)
        prop.sampledBy(stream)
      [error(), error(), 2])
  it "ends when sampling stream ends", ->

describe "Property.filter", -> 
  it "should filter values", ->
    expectPropertyEvents(
      -> series(1, [1, error(), 2, 3]).toProperty().filter(lessThan(3))
      [1, error(), 2])
  it "preserves old current value if the updated value is non-matching", ->
    s = new Bacon.Bus()
