@@ -1155,6 +1155,42 @@ public async Task StringBitOperationAsync_2()
11551155 await mock . Received ( ) . StringBitOperationAsync ( Bitwise . Xor , "prefix:destination" , Arg . Is ( valid ) , CommandFlags . None ) ;
11561156 }
11571157
1158+ [ Fact ]
1159+ public async Task StringBitOperationAsync_Diff ( )
1160+ {
1161+ RedisKey [ ] keys = new RedisKey [ ] { "x" , "y1" , "y2" } ;
1162+ Expression < Predicate < RedisKey [ ] > > valid = _ => _ . Length == 3 && _ [ 0 ] == "prefix:x" && _ [ 1 ] == "prefix:y1" && _ [ 2 ] == "prefix:y2" ;
1163+ await prefixed . StringBitOperationAsync ( Bitwise . Diff , "destination" , keys , CommandFlags . None ) ;
1164+ await mock . Received ( ) . StringBitOperationAsync ( Bitwise . Diff , "prefix:destination" , Arg . Is ( valid ) , CommandFlags . None ) ;
1165+ }
1166+
1167+ [ Fact ]
1168+ public async Task StringBitOperationAsync_Diff1 ( )
1169+ {
1170+ RedisKey [ ] keys = new RedisKey [ ] { "x" , "y1" , "y2" } ;
1171+ Expression < Predicate < RedisKey [ ] > > valid = _ => _ . Length == 3 && _ [ 0 ] == "prefix:x" && _ [ 1 ] == "prefix:y1" && _ [ 2 ] == "prefix:y2" ;
1172+ await prefixed . StringBitOperationAsync ( Bitwise . Diff1 , "destination" , keys , CommandFlags . None ) ;
1173+ await mock . Received ( ) . StringBitOperationAsync ( Bitwise . Diff1 , "prefix:destination" , Arg . Is ( valid ) , CommandFlags . None ) ;
1174+ }
1175+
1176+ [ Fact ]
1177+ public async Task StringBitOperationAsync_AndOr ( )
1178+ {
1179+ RedisKey [ ] keys = new RedisKey [ ] { "x" , "y1" , "y2" } ;
1180+ Expression < Predicate < RedisKey [ ] > > valid = _ => _ . Length == 3 && _ [ 0 ] == "prefix:x" && _ [ 1 ] == "prefix:y1" && _ [ 2 ] == "prefix:y2" ;
1181+ await prefixed . StringBitOperationAsync ( Bitwise . AndOr , "destination" , keys , CommandFlags . None ) ;
1182+ await mock . Received ( ) . StringBitOperationAsync ( Bitwise . AndOr , "prefix:destination" , Arg . Is ( valid ) , CommandFlags . None ) ;
1183+ }
1184+
1185+ [ Fact ]
1186+ public async Task StringBitOperationAsync_One ( )
1187+ {
1188+ RedisKey [ ] keys = new RedisKey [ ] { "a" , "b" , "c" } ;
1189+ Expression < Predicate < RedisKey [ ] > > valid = _ => _ . Length == 3 && _ [ 0 ] == "prefix:a" && _ [ 1 ] == "prefix:b" && _ [ 2 ] == "prefix:c" ;
1190+ await prefixed . StringBitOperationAsync ( Bitwise . One , "destination" , keys , CommandFlags . None ) ;
1191+ await mock . Received ( ) . StringBitOperationAsync ( Bitwise . One , "prefix:destination" , Arg . Is ( valid ) , CommandFlags . None ) ;
1192+ }
1193+
11581194 [ Fact ]
11591195 public async Task StringBitPositionAsync ( )
11601196 {
0 commit comments