from toolz import *
import pickle


def test_compose():
    f = compose(str, sum)
    g = pickle.loads(pickle.dumps(f))
    assert f((1, 2)) == g((1, 2))


def test_curry():
    f = curry(map)(str)
    g = pickle.loads(pickle.dumps(f))
    assert list(f((1, 2, 3))) == list(g((1, 2, 3)))


def test_juxt():
    f = juxt(str, int, bool)
    g = pickle.loads(pickle.dumps(f))
    assert f(1) == g(1)
    assert f.funcs == g.funcs

from toolz import *
import pickle


def test_compose():
    f = compose(str, sum)
    g = pickle.loads(pickle.dumps(f))
    assert f((1, 2)) == g((1, 2))


def test_curry():
    f = curry(map)(str)
    g = pickle.loads(pickle.dumps(f))
    assert list(f((1, 2, 3))) == list(g((1, 2, 3)))


def test_juxt():
    f = juxt(str, int, bool)
    g = pickle.loads(pickle.dumps(f))
    assert f(1) == g(1)
    assert f.funcs == g.funcs


def test_complement():
    f = complement(bool)
    assert f(True) is False
    assert f(False) is True
    g = pickle.loads(pickle.dumps(f))
    assert f(True) == g(True)
    assert f(False) == g(False)

Add serialization test for `complement`
Add serialization test for `complement`

  from toolz import *
  import pickle
  
  
  def test_compose():
      f = compose(str, sum)
      g = pickle.loads(pickle.dumps(f))
      assert f((1, 2)) == g((1, 2))
  
  
  def test_curry():
      f = curry(map)(str)
      g = pickle.loads(pickle.dumps(f))
      assert list(f((1, 2, 3))) == list(g((1, 2, 3)))
  
  
  def test_juxt():
      f = juxt(str, int, bool)
      g = pickle.loads(pickle.dumps(f))
      assert f(1) == g(1)
      assert f.funcs == g.funcs
  
+ 
+ def test_complement():
+     f = complement(bool)
+     assert f(True) is False
+     assert f(False) is True
+     g = pickle.loads(pickle.dumps(f))
+     assert f(True) == g(True)
+     assert f(False) == g(False)
+ 
Add serialization test for `complement`
## Code Before:
from toolz import *
import pickle


def test_compose():
    f = compose(str, sum)
    g = pickle.loads(pickle.dumps(f))
    assert f((1, 2)) == g((1, 2))


def test_curry():
    f = curry(map)(str)
    g = pickle.loads(pickle.dumps(f))
    assert list(f((1, 2, 3))) == list(g((1, 2, 3)))


def test_juxt():
    f = juxt(str, int, bool)
    g = pickle.loads(pickle.dumps(f))
    assert f(1) == g(1)
    assert f.funcs == g.funcs

## Instruction:
Add serialization test for `complement`
## Code After:
from toolz import *
import pickle


def test_compose():
    f = compose(str, sum)
    g = pickle.loads(pickle.dumps(f))
    assert f((1, 2)) == g((1, 2))


def test_curry():
    f = curry(map)(str)
    g = pickle.loads(pickle.dumps(f))
    assert list(f((1, 2, 3))) == list(g((1, 2, 3)))


def test_juxt():
    f = juxt(str, int, bool)
    g = pickle.loads(pickle.dumps(f))
    assert f(1) == g(1)
    assert f.funcs == g.funcs


def test_complement():
    f = complement(bool)
    assert f(True) is False
    assert f(False) is True
    g = pickle.loads(pickle.dumps(f))
    assert f(True) == g(True)
    assert f(False) == g(False)
