@@ -141,6 +141,7 @@ void test_vector_to_string() {
141141
142142void test_vector_from_string () {
143143 assert (pqxx::from_string<pgvector::Vector>(" [1,2,3]" ) == pgvector::Vector ({1 , 2 , 3 }));
144+ assert (pqxx::from_string<pgvector::Vector>(" []" ) == pgvector::Vector (std::vector<float >{}));
144145
145146 try {
146147 auto unused = pqxx::from_string<pgvector::Vector>(" " );
@@ -156,27 +157,17 @@ void test_vector_from_string() {
156157 assert (std::string_view (e.what ()) == " Malformed vector literal" );
157158 }
158159
159- // TODO change to no error?
160- try {
161- auto unused = pqxx::from_string<pgvector::Vector>(" []" );
162- assert (false );
163- } catch (const std::invalid_argument& e) {
164- assert (true );
165- }
166-
167- // TODO change to pqxx::conversion_error
168160 try {
169161 auto unused = pqxx::from_string<pgvector::Vector>(" [hello]" );
170162 assert (false );
171- } catch (const std::invalid_argument & e) {
163+ } catch (const pqxx::conversion_error & e) {
172164 assert (true );
173165 }
174166
175- // TODO change to pqxx::conversion_error
176167 try {
177168 auto unused = pqxx::from_string<pgvector::Vector>(" [4e38]" );
178169 assert (false );
179- } catch (const std::out_of_range & e) {
170+ } catch (const pqxx::conversion_error & e) {
180171 assert (true );
181172 }
182173}
@@ -187,6 +178,7 @@ void test_halfvec_to_string() {
187178
188179void test_halfvec_from_string () {
189180 assert (pqxx::from_string<pgvector::HalfVector>(" [1,2,3]" ) == pgvector::HalfVector ({1 , 2 , 3 }));
181+ assert (pqxx::from_string<pgvector::HalfVector>(" []" ) == pgvector::HalfVector (std::vector<float >{}));
190182
191183 try {
192184 auto unused = pqxx::from_string<pgvector::HalfVector>(" " );
@@ -202,19 +194,10 @@ void test_halfvec_from_string() {
202194 assert (std::string_view (e.what ()) == " Malformed halfvec literal" );
203195 }
204196
205- // TODO change to no error?
206- try {
207- auto unused = pqxx::from_string<pgvector::HalfVector>(" []" );
208- assert (false );
209- } catch (const std::invalid_argument& e) {
210- assert (true );
211- }
212-
213- // TODO change to pqxx::conversion_error
214197 try {
215198 auto unused = pqxx::from_string<pgvector::HalfVector>(" [hello]" );
216199 assert (false );
217- } catch (const std::invalid_argument & e) {
200+ } catch (const pqxx::conversion_error & e) {
218201 assert (true );
219202 }
220203}
0 commit comments