defmodule StreamSplitPerfTest do use ExUnit.Case setup do File.mkdir("tmp_perf") on_exit(fn -> File.rm_rf("tmp_perf/") end) end test "stream 1" do {:ok, fd} = File.open("/home/meox/test.xml.gz", [:read, :binary]) fd |> StreamSplit.split("", tagging: true) |> Stream.map(fn {:first, data} -> data = data |> String.replace_prefix("", "") |> String.upcase(data) "#{data}" {:last, data} -> data = data |> String.replace_suffix("") |> String.upcase() "#{data}" data -> "#{data}" end) |> Stream.chunk_every(1000) |> Stream.map(fn docs -> ["", docs, ""] |> Enum.join("") end) end end