From cdc84b4879e2886558925305b9da4da81d1ce25f Mon Sep 17 00:00:00 2001 From: Jinkyou Son Date: Mon, 4 Sep 2023 02:07:59 +0900 Subject: [PATCH] Handle Pgvector itself in new/1 --- lib/pgvector.ex | 6 +++++- test/pgvector_test.exs | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/pgvector.ex b/lib/pgvector.ex index 32bd3e8..aa5adfb 100644 --- a/lib/pgvector.ex +++ b/lib/pgvector.ex @@ -6,8 +6,12 @@ defmodule Pgvector do defstruct [:data] @doc """ - Creates a new vector from a list or tensor + Creates a new vector from a Pgvector or list or tensor """ + def new(%Pgvector{} = pgvector) do + pgvector + end + def new(list) when is_list(list) do dim = list |> length() bin = for v <- list, into: "", do: <> diff --git a/test/pgvector_test.exs b/test/pgvector_test.exs index e94cce5..1b26042 100644 --- a/test/pgvector_test.exs +++ b/test/pgvector_test.exs @@ -1,6 +1,11 @@ defmodule PgvectorTest do use ExUnit.Case + test "pgvector" do + pgvector = Pgvector.new([1, 2, 3]) + assert pgvector == pgvector |> Pgvector.new() + end + test "list" do list = [1.0, 2.0, 3.0] assert list == list |> Pgvector.new() |> Pgvector.to_list()