@@ -26,72 +26,62 @@ impl SortDirection {
2626 }
2727}
2828
29- /// Text ASC ordering.
29+ /// Text ASC ordering with lexicographic edge cases .
3030pub async fn ore_order_text ( client : & tokio_postgres:: Client ) {
31- let s_one = "a" ;
32- let s_two = "b" ;
33- let s_three = "c" ;
31+ let values = vec ! [
32+ "aardvark" ,
33+ "apparatus" ,
34+ "aplomb" ,
35+ "chimera" ,
36+ "chrysalis" ,
37+ "chrysanthemum" ,
38+ "zephyr" ,
39+ ] ;
3440
35- let sql = "
36- INSERT INTO encrypted (id, encrypted_text)
37- VALUES ($1, $2), ($3, $4), ($5, $6)
38- " ;
41+ let insert_sql = "INSERT INTO encrypted (id, encrypted_text) VALUES ($1, $2)" ;
3942
40- client
41- . query (
42- sql,
43- & [
44- & random_id ( ) ,
45- & s_two,
46- & random_id ( ) ,
47- & s_one,
48- & random_id ( ) ,
49- & s_three,
50- ] ,
51- )
52- . await
53- . unwrap ( ) ;
43+ for idx in interleaved_indices ( values. len ( ) ) {
44+ client
45+ . query ( insert_sql, & [ & random_id ( ) , & values[ idx] ] )
46+ . await
47+ . unwrap ( ) ;
48+ }
5449
5550 let sql = "SELECT encrypted_text FROM encrypted ORDER BY encrypted_text" ;
5651 let rows = client. query ( sql, & [ ] ) . await . unwrap ( ) ;
5752
5853 let actual = rows. iter ( ) . map ( |row| row. get ( 0 ) ) . collect :: < Vec < String > > ( ) ;
59- let expected = vec ! [ s_one , s_two , s_three ] ;
54+ let expected: Vec < String > = values . iter ( ) . map ( |s| s . to_string ( ) ) . collect ( ) ;
6055
6156 assert_eq ! ( actual, expected) ;
6257}
6358
64- /// Text DESC ordering.
59+ /// Text DESC ordering with lexicographic edge cases .
6560pub async fn ore_order_text_desc ( client : & tokio_postgres:: Client ) {
66- let s_one = "a" ;
67- let s_two = "b" ;
68- let s_three = "c" ;
61+ let values = vec ! [
62+ "aardvark" ,
63+ "apparatus" ,
64+ "aplomb" ,
65+ "chimera" ,
66+ "chrysalis" ,
67+ "chrysanthemum" ,
68+ "zephyr" ,
69+ ] ;
6970
70- let sql = "
71- INSERT INTO encrypted (id, encrypted_text)
72- VALUES ($1, $2), ($3, $4), ($5, $6)
73- " ;
71+ let insert_sql = "INSERT INTO encrypted (id, encrypted_text) VALUES ($1, $2)" ;
7472
75- client
76- . query (
77- sql,
78- & [
79- & random_id ( ) ,
80- & s_two,
81- & random_id ( ) ,
82- & s_one,
83- & random_id ( ) ,
84- & s_three,
85- ] ,
86- )
87- . await
88- . unwrap ( ) ;
73+ for idx in interleaved_indices ( values. len ( ) ) {
74+ client
75+ . query ( insert_sql, & [ & random_id ( ) , & values[ idx] ] )
76+ . await
77+ . unwrap ( ) ;
78+ }
8979
9080 let sql = "SELECT encrypted_text FROM encrypted ORDER BY encrypted_text DESC" ;
9181 let rows = client. query ( sql, & [ ] ) . await . unwrap ( ) ;
9282
9383 let actual = rows. iter ( ) . map ( |row| row. get ( 0 ) ) . collect :: < Vec < String > > ( ) ;
94- let expected = vec ! [ s_three , s_two , s_one ] ;
84+ let expected: Vec < String > = values . iter ( ) . rev ( ) . map ( |s| s . to_string ( ) ) . collect ( ) ;
9585
9686 assert_eq ! ( actual, expected) ;
9787}
0 commit comments