Files
n8n-openai-adapter/lib/ex_unit/examples/difference.exs
T

196 lines
4.3 KiB
Elixir

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: 2021 The Elixir Team
# SPDX-FileCopyrightText: 2012 Plataformatec
# Run it from root as: make compile && bin/elixir lib/ex_unit/examples/difference.exs
ExUnit.start(seed: 0)
defmodule Difference do
@moduledoc """
This module contains failing tests to see
difference highlighting in action.
"""
use ExUnit.Case
defmodule User do
defstruct [:age]
end
defmacrop one, do: 1
describe "regular context" do
test "integers" do
assert 491_512_235 == 490_512_035
end
test "floats" do
assert 42.0 == 43.0
end
test "strings" do
string1 = "fox hops over \"the dog"
string2 = "fox jumps over the lazy cat"
assert string1 == string2
end
test "whitespace" do
list1 = [%{a: "abc "}, %{a: "def"}, %{c: "gh"}]
list2 = [%{a: "abc"}, %{a: " def"}, %{c: "hi"}]
assert list1 == list2
end
test "large strings" do
string1 = "short"
string2 = "really long string that should not emit diff"
assert string1 == string2
end
test "large strings; inner" do
tuple1 = {"short"}
tuple2 = {"really long string that should not emit diff"}
assert tuple1 == tuple2
end
test "lists" do
list1 = ["Tvo", make_ref(), :ok, {}]
list2 = ["Two", :ok, self(), {true}]
assert list1 == list2
end
test "lists; missing entries" do
assert [] == [1, 2, 3]
end
test "lists; surplus entries" do
assert [1, 2, 3] == []
end
test "improper lists" do
list1 = [1 | "b"]
list2 = [1, "a"]
assert list1 == list2
end
test "charlists" do
charlist1 = ~c"fox hops over 'the dog"
charlist2 = ~c"fox jumps over the lazy cat"
assert charlist1 == charlist2
end
test "keyword lists" do
assert [file: "nofile", line: 12] == [file: nil, lime: 10]
end
test "keyword lists; reverse order" do
keyword1 = [port: 4000, max_connections: 1000]
keyword2 = [max_connections: 1000, port: 4000]
assert keyword1 == keyword2
end
test "tuples" do
tuple1 = {:hex, "0.1", [{:ex_doc}]}
tuple2 = {:hex, "1.1"}
assert tuple1 == tuple2
end
test "maps; mixed diff" do
map1 = Enum.into(1..15, %{}, &{&1, &1}) |> Map.delete(13)
map2 = Enum.reduce(5..10, map1, &Map.delete(&2, &1)) |> Map.put(13, 13) |> Map.put(12, 32)
assert map1 == map2
end
test "maps; missing pairs" do
map1 = %{baz: 12}
map2 = %{foo: 12, bar: 12, baz: 12}
assert map1 == map2
end
test "maps; surplus pairs" do
map1 = %{foo: 12, bar: 12, baz: 12}
map2 = %{baz: 12}
assert map1 == map2
end
test "maps; missing pair" do
assert %{} == %{baz: 12}
end
test "maps; surplus pair" do
assert %{baz: 12} == %{}
end
test "structs" do
assert %User{age: 16} == %User{age: 21}
end
end
describe "match context" do
test "pins" do
x = 1
assert ^x = 2
end
test "vars" do
assert {x, x} = {1, 2}
end
test "strings; concat" do
assert "fox hops over the" <> x = "fox jumps over the lazy cat"
end
test "lists; head and tail" do
assert ["Tvo", 1 | [:ok, {}]] = ["Two", :ok, self(), {true}]
end
test "lists; concat" do
assert ["Tvo", 1] ++ [:ok, {}] = ["Two", :ok, self(), {true}]
end
test "maps" do
assert %{baz: 12} = %{foo: 13, bar: 13, baz: 13}
end
test "macro" do
assert one() = 2
end
test "underscore" do
assert {_, 1} = {1, 2}
end
end
describe "receive" do
test "no messages in the mailbox" do
assert_received x when x == :hello
end
test "only 1 message in the mailbox" do
send(self(), {:message, 1})
assert_received x when x == :hello
end
test "more than 1 messages in the mailbox" do
for i <- 1..2, do: send(self(), {:message, i})
assert_received x when x == :hello
end
test "more than 10 messages in the mailbox" do
for i <- 1..11, do: send(self(), {:message, i})
assert_received x when x == :hello
end
test "macro" do
send(self(), 12)
assert_received one()
end
end
test "only one side with metadata" do
assert "one" != "one"
end
end