@@ -12,7 +12,21 @@ import libetpan
1212
1313class LibetpanConversionTests : XCTestCase {
1414
15- func test_indexset_to_imapset( ) {
15+ func test_indexset_to_imapset_with_one_value( ) {
16+ let givenIndexSet = IndexSet ( integer: 50 )
17+
18+ let retrievedImapSet = givenIndexSet. unreleasedMailimapSet
19+ defer { mailimap_set_free ( retrievedImapSet) }
20+
21+ let retrievedImapSetSequence = sequence ( retrievedImapSet. pointee. set_list, of: mailimap_set_item. self)
22+ retrievedImapSetSequence. enumerated ( ) . forEach { ( offset: Int , element: mailimap_set_item ) in
23+ let givenRange = givenIndexSet. rangeView [ offset]
24+ XCTAssertEqual ( Int ( element. set_first) , givenRange. lowerBound)
25+ XCTAssertEqual ( Int ( element. set_last) , givenRange. upperBound - 1 )
26+ }
27+ }
28+
29+ func test_indexset_to_imapset_with_multiple_values( ) {
1630 var givenIndexSet = IndexSet ( 1 ... 5 )
1731 givenIndexSet. remove ( 3 )
1832
@@ -23,7 +37,7 @@ class LibetpanConversionTests: XCTestCase {
2337 retrievedImapSetSequence. enumerated ( ) . forEach { ( offset: Int , element: mailimap_set_item ) in
2438 let givenRange = givenIndexSet. rangeView [ offset]
2539 XCTAssertEqual ( Int ( element. set_first) , givenRange. lowerBound)
26- XCTAssertEqual ( Int ( element. set_last) , givenRange. upperBound)
40+ XCTAssertEqual ( Int ( element. set_last) , givenRange. upperBound - 1 )
2741 }
2842 }
2943
@@ -44,8 +58,19 @@ class LibetpanConversionTests: XCTestCase {
4458 XCTAssertEqual ( element. set_last, expectedUpperBound)
4559 }
4660 }
61+
62+ func test_imapset_to_indexset_with_one_value( ) {
63+ let expectedIndexSet = IndexSet ( integer: 42 )
64+
65+ let imapSet = expectedIndexSet. unreleasedMailimapSet
66+ defer { mailimap_set_free ( imapSet) }
67+
68+ let retrievedIndexSet = imapSet. pointee. indexSet
69+
70+ XCTAssertEqual ( expectedIndexSet, retrievedIndexSet)
71+ }
4772
48- func test_imapset_to_indexset ( ) {
73+ func test_imapset_to_indexset_with_multiple_values ( ) {
4974 var expectedIndexSet = IndexSet ( 1 ... 5 )
5075 expectedIndexSet. remove ( 3 )
5176
@@ -57,7 +82,19 @@ class LibetpanConversionTests: XCTestCase {
5782 XCTAssertEqual ( expectedIndexSet, retrievedIndexSet)
5883 }
5984
60- func test_imapset_to_array( ) {
85+ func test_imapset_to_array_with_one_value( ) {
86+ let expectedIndexSet = IndexSet ( integer: 42 )
87+
88+ let imapSet = expectedIndexSet. unreleasedMailimapSet
89+ defer { mailimap_set_free ( imapSet) }
90+
91+ let expectedArray = [ 42 ]
92+ let retrievedArray = imapSet. pointee. array
93+
94+ XCTAssertEqual ( expectedArray, retrievedArray)
95+ }
96+
97+ func test_imapset_to_array_with_multiple_values( ) {
6198 var expectedIndexSet = IndexSet ( 1 ... 5 )
6299 expectedIndexSet. remove ( 3 )
63100
0 commit comments