mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Merge pull request #200 from Strilanc/warning_fix_235
Fixed a warning in PriorityQueueTest, and some dot syntax //FREEBIE
This commit is contained in:
commit
135f139dae
10 changed files with 57 additions and 89 deletions
|
@ -1001,7 +1001,6 @@
|
|||
A157074B17F0CD6D007C2BD6 /* ExceptionsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExceptionsTest.m; sourceTree = "<group>"; };
|
||||
A157074C17F0CD6D007C2BD6 /* FunctionalUtilTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FunctionalUtilTest.h; sourceTree = "<group>"; };
|
||||
A157074D17F0CD6D007C2BD6 /* FunctionalUtilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FunctionalUtilTest.m; sourceTree = "<group>"; };
|
||||
A157074E17F0CD6D007C2BD6 /* PriorityQueueTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriorityQueueTest.h; sourceTree = "<group>"; };
|
||||
A157074F17F0CD6D007C2BD6 /* PriorityQueueTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PriorityQueueTest.m; sourceTree = "<group>"; };
|
||||
A157075017F0CD6D007C2BD6 /* QueueTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QueueTest.h; sourceTree = "<group>"; };
|
||||
A157075117F0CD6D007C2BD6 /* QueueTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QueueTest.m; sourceTree = "<group>"; };
|
||||
|
@ -2353,7 +2352,6 @@
|
|||
A157074D17F0CD6D007C2BD6 /* FunctionalUtilTest.m */,
|
||||
BFB074BF19A4BCA400F2947C /* FutureUtilTest.m */,
|
||||
BFB074C019A4BCA400F2947C /* ObservableTest.m */,
|
||||
A157074E17F0CD6D007C2BD6 /* PriorityQueueTest.h */,
|
||||
A157074F17F0CD6D007C2BD6 /* PriorityQueueTest.m */,
|
||||
A157075017F0CD6D007C2BD6 /* QueueTest.h */,
|
||||
A157075117F0CD6D007C2BD6 /* QueueTest.m */,
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
[idsInJitterQueue removeObject:@(discardedSequenceNumber)];
|
||||
|
||||
uint16_t oldReadHeadMax = readHeadMin+readHeadSpan-1;
|
||||
readHeadMin = [[resultPriorityQueue peek] sequenceNumber];
|
||||
readHeadMin = [resultPriorityQueue.peek sequenceNumber];
|
||||
readHeadSpan = 1;
|
||||
|
||||
for (id<JitterQueueNotificationReceiver> e in watchers) {
|
||||
|
@ -151,7 +151,7 @@
|
|||
return isEmpty;
|
||||
}
|
||||
-(bool) checkReactIfNoDataUnderReadHeadForDequeue {
|
||||
EncodedAudioPacket* result = [resultPriorityQueue peek];
|
||||
EncodedAudioPacket* result = resultPriorityQueue.peek;
|
||||
int16_t d = [NumberUtil congruentDifferenceMod2ToThe16From:readHeadMin
|
||||
to:[result sequenceNumber]];
|
||||
bool notUnderHead = d < 0 || d >= readHeadSpan;
|
||||
|
|
|
@ -233,7 +233,7 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
|
|||
UIImage *img = [UIImage imageWithData:image];
|
||||
|
||||
ContactSearchBlock searchBlock = ^BOOL(NSNumber *obj, NSUInteger idx, BOOL *stop) {
|
||||
return [obj intValue] == recordID;
|
||||
return obj.intValue == recordID;
|
||||
};
|
||||
|
||||
NSUInteger favouriteIndex = [_favouriteContactIds indexOfObjectPassingTest:searchBlock];
|
||||
|
@ -394,7 +394,7 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
|
|||
-(NSArray*) contactsForContactIds:(NSArray *)contactIds {
|
||||
NSMutableArray *contacts = [NSMutableArray array];
|
||||
for (NSNumber *favouriteId in contactIds) {
|
||||
Contact *contact = [self latestContactWithRecordId:[favouriteId intValue]];
|
||||
Contact *contact = [self latestContactWithRecordId:favouriteId.intValue];
|
||||
|
||||
if (contact) {
|
||||
[contacts addObject:contact];
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
NSString* hashCountHeader = response.allHeaderFields[HASH_COUNT_HEADER_KEY];
|
||||
checkOperation(hashCountHeader != nil);
|
||||
|
||||
int hashCountValue = [hashCountHeader intValue];
|
||||
int hashCountValue = hashCountHeader.intValue;
|
||||
checkOperation(hashCountValue > 0);
|
||||
|
||||
NSData* responseBody = data;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
lastWindowEnding = endOfWindowTime;
|
||||
|
||||
NSTimeInterval startOfWindowTime = endOfWindowTime - windowDuration;
|
||||
while(events.count > 0 && [[events peek] doubleValue] < startOfWindowTime) {
|
||||
while(events.count > 0 && [events.peek doubleValue] < startOfWindowTime) {
|
||||
[events dequeue];
|
||||
}
|
||||
return events.count;
|
||||
|
|
|
@ -9,20 +9,20 @@
|
|||
test(![@[@1] any:^(id x) { return false; }]);
|
||||
test([@[@1] any:^(id x) { return true; }]);
|
||||
|
||||
test([(@[@2, @3, @5]) any:^(id x) { return [x intValue] == 3; }]);
|
||||
test(![(@[@2, @4, @5]) any:^(NSNumber* x) { return [x intValue] == 3; }]);
|
||||
test([(@[@2, @3, @5]) any:^(NSNumber* x) { return x.intValue == 3; }]);
|
||||
test(![(@[@2, @4, @5]) any:^(NSNumber* x) { return x.intValue == 3; }]);
|
||||
}
|
||||
-(void) testMap {
|
||||
test([[@[] map:^(id x) { return x; }] isEqualToArray:@[]]);
|
||||
test([[(@[@1,@2]) map:^(id x) { return x; }] isEqualToArray:(@[@1,@2])]);
|
||||
test([[(@[@1,@2]) map:^(NSNumber* x) { return @([x intValue] + 1); }] isEqualToArray:(@[@2,@3])]);
|
||||
test([[(@[@1,@2]) map:^(NSNumber* x) { return @(x.intValue + 1); }] isEqualToArray:(@[@2,@3])]);
|
||||
}
|
||||
-(void) testFilter {
|
||||
test([[@[] filter:^(id x) { return true; }] isEqualToArray:@[]]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return true; }] isEqualToArray:(@[@1,@2])]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return false; }] isEqualToArray:(@[])]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return [x intValue] == 1; }] isEqualToArray:(@[@1])]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return [x intValue] == 2; }] isEqualToArray:(@[@2])]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return x.intValue == 1; }] isEqualToArray:(@[@1])]);
|
||||
test([[(@[@1,@2]) filter:^(NSNumber* x) { return x.intValue == 2; }] isEqualToArray:(@[@2])]);
|
||||
}
|
||||
-(void) testSum {
|
||||
test([(@[]) sumDouble] == 0);
|
||||
|
@ -42,14 +42,14 @@
|
|||
test([[@[@1] keyedBy:^id(id value) { return @true; }] isEqual:@{@true : @1}]);
|
||||
testThrows(([(@[@1, @2]) keyedBy:^id(id value) { return @true; }]));
|
||||
test([[(@[@1, @2]) keyedBy:^id(id value) { return value; }] isEqual:(@{@1 : @1, @2 : @2})]);
|
||||
testThrows([(@[@1, @1, @2, @3, @5]) keyedBy:^id(id value) { return @([value intValue]/2); }]);
|
||||
test([[(@[@3, @5, @7, @11, @13]) keyedBy:^id(id value) { return @([value intValue]/2); }] isEqual:(@{@1 : @3, @2 : @5, @3 : @7, @5 : @11, @6 : @13})]);
|
||||
testThrows([(@[@1, @1, @2, @3, @5]) keyedBy:^id(NSNumber* value) { return @(value.intValue/2); }]);
|
||||
test([[(@[@3, @5, @7, @11, @13]) keyedBy:^id(NSNumber* value) { return @(value.intValue/2); }] isEqual:(@{@1 : @3, @2 : @5, @3 : @7, @5 : @11, @6 : @13})]);
|
||||
}
|
||||
-(void) testGroupBy {
|
||||
test([[@[] groupBy:^id(id value) { return @true; }] isEqual:@{}]);
|
||||
test([[@[@1] groupBy:^id(id value) { return @true; }] isEqual:@{@true : @[@1]}]);
|
||||
test([[(@[@1, @2]) groupBy:^id(id value) { return @true; }] isEqual:@{@true : (@[@1, @2])}]);
|
||||
test([[(@[@1, @2]) groupBy:^id(id value) { return value; }] isEqual:(@{@1 : @[@1], @2 : @[@2]})]);
|
||||
test([[(@[@1, @1, @2, @3, @5]) groupBy:^id(id value) { return @([value intValue]/2); }] isEqual:(@{@0 : @[@1, @1], @1 : @[@2, @3], @2 : @[@5]})]);
|
||||
test([[(@[@1, @1, @2, @3, @5]) groupBy:^id(NSNumber* value) { return @(value.intValue/2); }] isEqual:(@{@0 : @[@1, @1], @1 : @[@2, @3], @2 : @[@5]})]);
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
#import <XCTest/XCTest.h>
|
||||
|
||||
@interface PriorityQueueTest : XCTestCase
|
||||
|
||||
@end
|
|
@ -1,31 +1,34 @@
|
|||
#import "PriorityQueueTest.h"
|
||||
#import <XCTest/XCTest.h>
|
||||
#import "TestUtil.h"
|
||||
#import "PriorityQueue.h"
|
||||
#import "Util.h"
|
||||
#import "TestUtil.h"
|
||||
|
||||
NSArray* RandomPermutation(NSUInteger count);
|
||||
NSArray* Permutations(NSUInteger count);
|
||||
@interface PriorityQueueTest : XCTestCase
|
||||
@end
|
||||
|
||||
NSArray* RandomPermutation(NSUInteger count) {
|
||||
NSUInteger d[count];
|
||||
for (NSUInteger i = 0; i < count; i++)
|
||||
NSArray* RandomPermutation(uint32_t count);
|
||||
NSArray* Permutations(uint32_t count);
|
||||
|
||||
NSArray* RandomPermutation(uint32_t count) {
|
||||
uint32_t d[count];
|
||||
for (uint32_t i = 0; i < count; i++)
|
||||
d[i] = i;
|
||||
for (NSUInteger i = 0; i < count; i++) {
|
||||
NSUInteger j = arc4random_uniform(count - i) + i;
|
||||
NSUInteger t = d[i];
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
uint32_t j = arc4random_uniform(count - i) + i;
|
||||
uint32_t t = d[i];
|
||||
d[i] = d[j];
|
||||
d[j] = t;
|
||||
}
|
||||
NSMutableArray* r = [NSMutableArray array];
|
||||
for (NSUInteger i = 0; i < count; i++)
|
||||
for (uint32_t i = 0; i < count; i++)
|
||||
[r addObject:@(d[i])];
|
||||
return r;
|
||||
}
|
||||
NSArray* Permutations(NSUInteger count) {
|
||||
NSArray* Permutations(uint32_t count) {
|
||||
if (count == 0) return @[];
|
||||
NSMutableArray* r = [NSMutableArray array];
|
||||
for (NSArray* s in Permutations(count - 1)) {
|
||||
for (NSUInteger e = 0; e < count; e++) {
|
||||
for (uint32_t e = 0; e < count; e++) {
|
||||
NSMutableArray* a = [NSMutableArray array];
|
||||
[a addObject:@(e)];
|
||||
for (NSNumber* x in s) {
|
||||
|
@ -40,45 +43,31 @@ NSArray* Permutations(NSUInteger count) {
|
|||
@implementation PriorityQueueTest
|
||||
|
||||
-(void) testTrivialPrioritizing {
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(id obj1, id obj2){
|
||||
int diff =[obj2 intValue] - [obj1 intValue];
|
||||
if (diff > 0 ) {
|
||||
return (NSComparisonResult)NSOrderedAscending;
|
||||
} else if (diff < 0){
|
||||
return (NSComparisonResult)NSOrderedDescending;
|
||||
} else{
|
||||
return (NSComparisonResult)NSOrderedSame;
|
||||
}
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(NSNumber* obj1, NSNumber* obj2){
|
||||
return [obj1 compare:obj2];
|
||||
}];
|
||||
test(q.count == 0);
|
||||
testThrows([q peek]);
|
||||
testThrows(q.peek);
|
||||
testThrows([q dequeue]);
|
||||
|
||||
[q enqueue:@1];
|
||||
[q enqueue:@2];
|
||||
[q enqueue:@3];
|
||||
test(q.count == 3);
|
||||
test([[q peek] intValue] == 1);
|
||||
test([q.peek intValue] == 1);
|
||||
test([[q dequeue] intValue] == 1);
|
||||
test([[q peek] intValue] == 2);
|
||||
test([q.peek intValue] == 2);
|
||||
test([[q dequeue] intValue] == 2);
|
||||
test([[q peek] intValue] == 3);
|
||||
test([q.peek intValue] == 3);
|
||||
test([[q dequeue] intValue] == 3);
|
||||
testThrows([q peek]);
|
||||
testThrows(q.peek);
|
||||
testThrows([q dequeue]);
|
||||
}
|
||||
-(void) testOrdersByComparatorInverse {
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(NSNumber* obj1, NSNumber* obj2){
|
||||
int diff =[obj1 intValue] - [obj2 intValue];
|
||||
if (diff > 0) {
|
||||
return (NSComparisonResult)NSOrderedAscending;
|
||||
} else if (diff < 0){
|
||||
return (NSComparisonResult)NSOrderedDescending;
|
||||
} else{
|
||||
return (NSComparisonResult)NSOrderedSame;
|
||||
}
|
||||
return [obj2 compare:obj1];
|
||||
}];
|
||||
|
||||
|
||||
[q enqueue:@1];
|
||||
[q enqueue:@2];
|
||||
[q enqueue:@3];
|
||||
|
@ -87,24 +76,17 @@ NSArray* Permutations(NSUInteger count) {
|
|||
test([[q dequeue] intValue] == 1);
|
||||
}
|
||||
-(void) testSortsAllSmallPermutations {
|
||||
const NSUInteger N = 7;
|
||||
const uint32_t N = 7;
|
||||
for (NSArray* permutation in Permutations(N)) {
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(id obj1, id obj2){
|
||||
int diff =[obj2 intValue] - [obj1 intValue];
|
||||
if (diff > 0 ) {
|
||||
return (NSComparisonResult)NSOrderedAscending;
|
||||
} else if (diff < 0){
|
||||
return (NSComparisonResult)NSOrderedDescending;
|
||||
} else{
|
||||
return (NSComparisonResult)NSOrderedSame;
|
||||
}
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(NSNumber* obj1, NSNumber* obj2){
|
||||
return [obj1 compare:obj2];
|
||||
}];
|
||||
for (NSNumber* e in permutation) {
|
||||
[q enqueue:e];
|
||||
}
|
||||
|
||||
// dequeues in order
|
||||
for (NSUInteger i = 0; i < N; i++) {
|
||||
for (uint32_t i = 0; i < N; i++) {
|
||||
test(q.count == N - i);
|
||||
test([[q dequeue] unsignedIntegerValue] == i);
|
||||
}
|
||||
|
@ -112,18 +94,11 @@ NSArray* Permutations(NSUInteger count) {
|
|||
}
|
||||
}
|
||||
-(void) testSortsRandomLargePermutations {
|
||||
const NSUInteger Size = 500;
|
||||
const NSUInteger Repetitions = 50;
|
||||
for (NSUInteger repeat = 0; repeat < Repetitions; repeat++) {
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(id obj1, id obj2){
|
||||
int diff =[obj2 intValue] - [obj1 intValue];
|
||||
if (diff > 0 ) {
|
||||
return (NSComparisonResult)NSOrderedAscending;
|
||||
} else if (diff < 0){
|
||||
return (NSComparisonResult)NSOrderedDescending;
|
||||
} else{
|
||||
return (NSComparisonResult)NSOrderedSame;
|
||||
}
|
||||
const uint32_t Size = 500;
|
||||
const uint32_t Repetitions = 50;
|
||||
for (uint32_t repeat = 0; repeat < Repetitions; repeat++) {
|
||||
PriorityQueue* q = [PriorityQueue priorityQueueAscendingWithComparator:^(NSNumber* obj1, NSNumber* obj2){
|
||||
return [obj1 compare:obj2];
|
||||
}];
|
||||
NSArray* permutation = RandomPermutation(Size);
|
||||
for (NSNumber* e in permutation) {
|
||||
|
@ -131,7 +106,7 @@ NSArray* Permutations(NSUInteger count) {
|
|||
}
|
||||
|
||||
// dequeues in order
|
||||
for (NSUInteger i = 0; i < Size; i++) {
|
||||
for (uint32_t i = 0; i < Size; i++) {
|
||||
test(q.count == Size - i);
|
||||
test([[q dequeue] unsignedIntegerValue] == i);
|
||||
}
|
||||
|
|
|
@ -7,24 +7,24 @@
|
|||
-(void) queueTest {
|
||||
Queue* q = [Queue new];
|
||||
test(q.count == 0);
|
||||
testThrows([q peek]);
|
||||
testThrows(q.peek);
|
||||
testThrows([q dequeue]);
|
||||
|
||||
[q enqueue:@5];
|
||||
test(q.count == 1);
|
||||
test([[q peek] isEqualToNumber:@5]);
|
||||
test([q.peek isEqualToNumber:@5]);
|
||||
|
||||
[q enqueue:@23];
|
||||
test(q.count == 2);
|
||||
test([[q peek] isEqualToNumber:@5]);
|
||||
test([q.peek isEqualToNumber:@5]);
|
||||
|
||||
test([[q dequeue] isEqualToNumber:@5]);
|
||||
test(q.count == 1);
|
||||
test([[q peek] isEqualToNumber:@23]);
|
||||
test([q.peek isEqualToNumber:@23]);
|
||||
|
||||
test([[q dequeue] isEqualToNumber:@23]);
|
||||
test(q.count == 0);
|
||||
testThrows([q peek]);
|
||||
testThrows(q.peek);
|
||||
testThrows([q dequeue]);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,11 +56,11 @@
|
|||
NSData* d02 = [@[@0, @2] toUint8Data];
|
||||
|
||||
test([[d tryFindIndexOf:[NSData data]] intValue] == 0);
|
||||
test([[d tryFindIndexOf:d] intValue] == 0);
|
||||
test([d tryFindIndexOf:d].intValue == 0);
|
||||
|
||||
test([[d tryFindIndexOf:d01] intValue] == 0);
|
||||
test([d tryFindIndexOf:d01].intValue == 0);
|
||||
test([d tryFindIndexOf:d02] == nil);
|
||||
test([[d tryFindIndexOf:d34] intValue] == 3);
|
||||
test([d tryFindIndexOf:d34].intValue == 3);
|
||||
test([d34 tryFindIndexOf:d] == nil);
|
||||
test([d tryFindIndexOf:d67] == nil);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue