anchor.diff:  
   	{error,<<"ERR wrong number of arguments for 'APPEND' command">>} = erldis_client:sr_scall(Client,[<<"append">>,<<"string">>,<<"foo">>,<<"bar">>]),
   	{error,<<"ERR wrong number of arguments for 'APPEND' command">>} = erldis_client:sr_scall(Client,[<<"append">>,<<"string">>]).
  -	
  +
   decr(Config) ->
   	{client,Client} = lists:keyfind(client, 1, Config),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"4">>]),
   	3 = erldis_client:sr_scall(Client,[<<"decr">>,<<"number">>]),
   	<<"3">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"-20">>]),
   	-21 = erldis_client:sr_scall(Client,[<<"decr">>,<<"number">>]),
   	<<"-21">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	-1 = erldis_client:sr_scall(Client,[<<"decr">>,<<"new_integer">>]),
   	<<"-1">> = erldis_client:sr_scall(Client,[<<"get">>,<<"new_integer">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"it's not a integer">>]),
   	{error,<<"ERR value is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"decr">>,<<"string">>]),
  -	
  +
   	{error,<<"ERR wrong number of arguments for 'DECR' command">>} = erldis_client:sr_scall(Client,[<<"decr">>,<<"number">>,<<"3">>]),
   	{error,<<"ERR wrong number of arguments for 'DECR' command">>} = erldis_client:sr_scall(Client,[<<"decr">>]).
   
   incr(Config) ->
   	{client,Client} = lists:keyfind(client, 1, Config),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"4">>]),
   	5 = erldis_client:sr_scall(Client,[<<"incr">>,<<"number">>]),
   	<<"5">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"-20">>]),
   	-19 = erldis_client:sr_scall(Client,[<<"incr">>,<<"number">>]),
   	<<"-19">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	true = erldis_client:sr_scall(Client,[<<"incr">>,<<"new_integer">>]),
   	<<"1">> = erldis_client:sr_scall(Client,[<<"get">>,<<"new_integer">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"it's not a integer">>]),
   	{error,<<"ERR value is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"incr">>,<<"string">>]),
  -	
  +
   	{error,<<"ERR wrong number of arguments for 'INCR' command">>} = erldis_client:sr_scall(Client,[<<"incr">>,<<"number">>,<<"3">>]),
   	{error,<<"ERR wrong number of arguments for 'INCR' command">>} = erldis_client:sr_scall(Client,[<<"incr">>]).
   
   decrby(Config) ->
   	{client,Client} = lists:keyfind(client, 1, Config),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"40">>]),
   	39 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>,<<"1">>]),
   	24 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>,<<"15">>]),
   	-6 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>,<<"30">>]),
   	10 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>,<<"-16">>]),
   	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	-80 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"new_integer">>,<<"80">>]),
   	<<"-80">> = erldis_client:sr_scall(Client,[<<"get">>,<<"new_integer">>]),
   	120 = erldis_client:sr_scall(Client,[<<"decrby">>,<<"other_new_integer">>,<<"-120">>]),
   	<<"120">> = erldis_client:sr_scall(Client,[<<"get">>,<<"other_new_integer">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"it's not a integer">>]),
   	{error,<<"ERR value is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"decrby">>,<<"string">>,<<"20">>]),
  -	
  +
   	{error,<<"ERR wrong number of arguments for 'DECRBY' command">>} = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>,<<"3">>,<<"4">>]),
   	{error,<<"ERR wrong number of arguments for 'DECRBY' command">>} = erldis_client:sr_scall(Client,[<<"decrby">>,<<"number">>]).
   
   incrby(Config) ->
   	{client,Client} = lists:keyfind(client, 1, Config),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"number">>,<<"40">>]),
   	41 = erldis_client:sr_scall(Client,[<<"incrby">>,<<"number">>,<<"1">>]),
   	56 = erldis_client:sr_scall(Client,[<<"incrby">>,<<"number">>,<<"15">>]),
   	-30 = erldis_client:sr_scall(Client,[<<"incrby">>,<<"number">>,<<"-86">>]),
   	<<"-30">> = erldis_client:sr_scall(Client,[<<"get">>,<<"number">>]),
  -	
  +
   	80 = erldis_client:sr_scall(Client,[<<"incrby">>,<<"new_integer">>,<<"80">>]),
   	<<"80">> = erldis_client:sr_scall(Client,[<<"get">>,<<"new_integer">>]),
   	-120 = erldis_client:sr_scall(Client,[<<"incrby">>,<<"other_new_integer">>,<<"-120">>]),
   	<<"-120">> = erldis_client:sr_scall(Client,[<<"get">>,<<"other_new_integer">>]),
  -	
  +
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"it's not a integer">>]),
   	{error,<<"ERR value is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"incrby">>,<<"string">>,<<"20">>]),
  -	
  +
   	{error,<<"ERR wrong number of arguments for 'INCRBY' command">>} = erldis_client:sr_scall(Client,[<<"incrby">>,<<"number">>,<<"3">>,<<"4">>]),
   	{error,<<"ERR wrong number of arguments for 'INCRBY' command">>} = erldis_client:sr_scall(Client,[<<"incrby">>,<<"number">>]).
   
   setbit(Config) ->
   	{client,Client} = lists:keyfind(client, 1, Config),
  -	
  +
   	false = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"1">>,<<"1">>]),
   	<<2#01000000>> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
   	false = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"2">>,<<"1">>]),
   	<<2#01100000>> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
   	true = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"1">>,<<"0">>]),
   	<<2#00100000>> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
  -	
  +
   	%% Ascii "1" is integer 49 = 00 11 00 01
   	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"mykey">>,<<"1">>]),
   	false = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"6">>,<<"1">>]),
   	<<2#00110011>> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
   	true = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"2">>,<<"0">>]),
   	<<2#00010011>> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
  -	
  +
   	{error,<<"ERR bit offset is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"-1">>,<<"0">>]),
   	{error,<<"ERR wrong number of arguments for 'SETBIT' command">>} = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"0">>]),
   	{error,<<"ERR wrong number of arguments for 'SETBIT' command">>} = erldis_client:sr_scall(Client,[<<"setbit">>,<<"mykey">>,<<"0">>,<<"1">>,<<"1">>]).
  
positive.code: 
  mset(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	ok = erldis_client:sr_scall(Client,[<<"mset">>,<<"x">>,<<"10">>,<<"y">>,<<"foo bar">>,<<"z">>,<<"x x x x x x x\n\n\r\n">>]),
  	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"x">>]),
  	<<"foo bar">> = erldis_client:sr_scall(Client,[<<"get">>,<<"y">>]),
  	<<"x x x x x x x\n\n\r\n">> = erldis_client:sr_scall(Client,[<<"get">>,<<"z">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'MSET' command">>} = erldis_client:sr_scall(Client,[<<"mset">>,<<"x">>,<<"10">>,<<"y">>,<<"foo bar">>,<<"z">>]).
  	
  mget(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"foo">>,<<"FOO">>]),
  	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"bar">>,<<"BAR">>]),
  	[<<"BAR">>,<<"FOO">>] = erldis_client:scall(Client,[<<"mget">>,<<"bar">>,<<"foo">>]),
  	[<<"BAR">>,nil,<<"FOO">>] = erldis_client:scall(Client,[<<"mget">>,<<"bar">>,<<"bazz">>,<<"foo">>]),
  	[<<"FOO">>,nil,<<"BAR">>,nil] = erldis_client:scall(Client,[<<"mget">>,<<"foo">>,<<"bazz">>,<<"bar">>,<<"myset">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'MGET' command">>} = erldis_client:sr_scall(Client,[<<"mget">>]).
  
  setnx(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	%% with not existing key
  	true = erldis_client:sr_scall(Client,[<<"setnx">>,<<"x">>,<<"10">>]),
  	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"x">>]),
  	
  	%% with already existent key
  	false = erldis_client:sr_scall(Client,[<<"setnx">>,<<"x">>,<<"35">>]),
  	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"x">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'SETNX' command">>} = erldis_client:sr_scall(Client,[<<"setnx">>,<<"x">>]).
  	
  msetnx(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),    
  	
  	%% with not existing keys
  	true = erldis_client:sr_scall(Client,[<<"msetnx">>,<<"x">>,<<"10">>,<<"y">>,<<"foo bar">>]),
  	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"x">>]),
  	<<"foo bar">> = erldis_client:sr_scall(Client,[<<"get">>,<<"y">>]),
  	
  	%% with already existent key
  	false = erldis_client:sr_scall(Client,[<<"msetnx">>,<<"x">>,<<"22">>,<<"w">>,<<"foo">>,<<"z">>,<<"bar">>]),
  	<<"10">> = erldis_client:sr_scall(Client,[<<"get">>,<<"x">>]),
  	nil = erldis_client:sr_scall(Client,[<<"get">>,<<"w">>]),
  	nil = erldis_client:sr_scall(Client,[<<"get">>,<<"z">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'MSETNX' command">>} = erldis_client:sr_scall(Client,[<<"msetnx">>,<<"x">>,<<"22">>,<<"w">>]),
  	{error,<<"ERR wrong number of arguments for 'MSETNX' command">>} = erldis_client:sr_scall(Client,[<<"msetnx">>]).
  	
  setex(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	ok = erldis_client:sr_scall(Client,[<<"setex">>,<<"mykey">>,<<"6">>,<<"FOO">>]),
  	<<"FOO">> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
  	timer:sleep(3000),
  	<<"FOO">> = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
  	timer:sleep(4500),
  	nil = erldis_client:sr_scall(Client,[<<"get">>,<<"mykey">>]),
  	
  	{error,<<"ERR invalid expire time in SETEX">>} = erldis_client:sr_scall(Client,[<<"setex">>,<<"z">>,<<"-30">>,<<"bar">>]),
  	{error,<<"ERR wrong number of arguments for 'SETEX' command">>} = erldis_client:sr_scall(Client,[<<"setex">>,<<"z">>,<<"5">>]).
  
  getset(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	%% Set new value
      nil = erldis_client:sr_scall(Client,[<<"getset">>,<<"foo">>,<<"xyz">>]),
  	<<"xyz">> = erldis_client:sr_scall(Client,[<<"get">>,<<"foo">>]),
  
  	%% Replace old value
  	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"foo">>,<<"bar">>]),
      <<"bar">> = erldis_client:sr_scall(Client,[<<"getset">>,<<"foo">>,<<"buzz">>]),    
  	<<"buzz">> = erldis_client:sr_scall(Client,[<<"get">>,<<"foo">>]),
      
  	{error,<<"ERR wrong number of arguments for 'GETSET' command">>} = erldis_client:sr_scall(Client,[<<"getset">>,<<"foo">>]),
  	{error,<<"ERR wrong number of arguments for 'GETSET' command">>} = erldis_client:sr_scall(Client,[<<"getset">>,<<"foo">>,<<"bar">>,<<"buzz">>]).
  
  strlen(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  	%% With already existent key
  	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"mykey">>,<<"Hello World">>]),
  	11 = erldis_client:sr_scall(Client,[<<"strlen">>,<<"mykey">>]),
  	
  	%% With not existing key
  	false = erldis_client:sr_scall(Client,[<<"strlen">>,<<"nonexisting">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'STRLEN' command">>} = erldis_client:sr_scall(Client,[<<"strlen">>,<<"foo">>,<<"bar">>]),
  	{error,<<"ERR wrong number of arguments for 'STRLEN' command">>} = erldis_client:sr_scall(Client,[<<"strlen">>]).
negative.code: 	%% Try to get a list
  	3  = erldis_client:sr_scall(Client,[<<"rpush">>,<<"list">>,<<"a">>,<<"b">>,<<"c">>]),
  	{error,<<"ERR Operation against a key holding the wrong kind of value">>} = erldis_client:sr_scall(Client, [<<"get">>,<<"list">>]),
  
  	{error,<<"ERR wrong number of arguments for 'SET' command">>}  = erldis_client:sr_scall(Client, [<<"set">>,<<"string">>,<<"foo">>,<<"bar">>]),
  	{error,<<"ERR wrong number of arguments for 'SET' command">>}  = erldis_client:sr_scall(Client, [<<"set">>,<<"string">>]),
  	{error,<<"ERR wrong number of arguments for 'SET' command">>}  = erldis_client:sr_scall(Client, [<<"set">>]),
  
  	{error,<<"ERR wrong number of arguments for 'GET' command">>} = erldis_client:sr_scall(Client, [<<"get">>]),
  	{error,<<"ERR wrong number of arguments for 'GET' command">>} = erldis_client:sr_scall(Client, [<<"get">>,<<"string">>,<<"string2">>]).
  
  append(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  
  	3 = erldis_client:sr_scall(Client,[<<"append">>,<<"string">>,<<"foo">>]),
  	7 = erldis_client:sr_scall(Client,[<<"append">>,<<"string">>,<<" bar">>]),
  
  	<<"foo bar">> = erldis_client:sr_scall(Client, [<<"get">>,<<"string">>]),
  
  	%% Try with a list
  