szymon-miezal commented on code in PR #2957:
URL: https://github.com/apache/cassandra/pull/2957#discussion_r1431290389


##########
test/unit/org/apache/cassandra/tools/cqlsh/CqlshTest.java:
##########
@@ -44,4 +53,95 @@ public void testKeyspaceRequired()
         assertThat(tool.getCleanedStderr(), 
CoreMatchers.containsStringIgnoringCase("No keyspace has been specified"));
         assertEquals(2, tool.getExitCode());
     }
+
+    @Test
+    public void testCopyFloatVectorFromFile() throws IOException
+    {
+        assertCopyOfVectorLiteralsFromFileSucceeds("float", 6, new Object[][] {
+            row(1, vector(0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f)),
+            row(2, vector(-0.1f, -0.2f, -0.3f, -0.4f, -0.5f, -0.6f)),
+            row(3, vector(0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f))
+        });
+
+        assertCopyOfVectorLiteralsFromFileSucceeds("float", 3, new Object[][] {
+            row(1, vector(0.1f, 0.2f, 0.3f)),
+            row(2, vector(-0.4f, -0.5f, -0.6f)),
+            row(3, vector(0.7f, 0.8f, 0.9f))
+        });
+    }
+
+    @Test
+    public void testCopyIntVectorFromFile() throws IOException
+    {
+        assertCopyOfVectorLiteralsFromFileSucceeds("int", 6, new Object[][] {
+            row(1, vector(1, 2, 3, 4, 5, 6)),
+            row(2, vector(-1, -2, -3, -4, -5, -6)),
+            row(3, vector(9, 8, 7, 6, 5, 4))
+        });
+
+        assertCopyOfVectorLiteralsFromFileSucceeds("int", 3, new Object[][] {
+            row(1, vector(1, 2, 3)),
+            row(2, vector(-4, -5, -6)),
+            row(3, vector(7, 8, 9))
+        });
+    }
+
+    private void assertCopyOfVectorLiteralsFromFileSucceeds(String vectorType, 
int vectorSize, Object[][] rows) throws IOException
+    {
+        // given a table with a vector column and a file containing vector 
literals
+        createTable(KEYSPACE, format("CREATE TABLE %%s (id int PRIMARY KEY, 
embedding_vector vector<%s, %d>)", vectorType, vectorSize));
+        assertTrue("table should be initially empty", execute("SELECT * FROM 
%s").isEmpty());
+
+        Path csv = prepareCSVFile(rows);
+
+        // when running COPY via cqlsh
+        ToolRunner.ToolResult result = ToolRunner.invokeCqlsh(format("COPY 
%s.%s FROM '%s'", KEYSPACE, currentTable(), csv.toAbsolutePath()));
+        UntypedResultSet importedRows = execute("SELECT * FROM %s");
+
+        // then all rows should be imported
+        result.asserts().success();
+        assertRowsIgnoringOrder(importedRows, rows);

Review Comment:
   I have moved the query to the `then` section, it allows us to execute it 
after cqlsh status assertions and also keep the given/when/then sections clean 
and separated.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to