# frozen_string_literal: true require_relative "../helper" module Arel module Nodes describe "Window" do describe "equality" do it "is equal with equal ivars" do window1 = Window.new window1.orders = [1, 2] window1.partitions = [1] window1.frame 3 window2 = Window.new window2.orders = [1, 2] window2.partitions = [1] window2.frame 3 array = [window1, window2] assert_equal 1, array.uniq.size end it "is not equal with different ivars" do window1 = Window.new window1.orders = [1, 2] window1.partitions = [1] window1.frame 3 window2 = Window.new window2.orders = [1, 2] window1.partitions = [1] window2.frame 4 array = [window1, window2] assert_equal 2, array.uniq.size end end end describe "NamedWindow" do describe "equality" do it "is equal with equal ivars" do window1 = NamedWindow.new "foo" window1.orders = [1, 2] window1.partitions = [1] window1.frame 3 window2 = NamedWindow.new "foo" window2.orders = [1, 2] window2.partitions = [1] window2.frame 3 array = [window1, window2] assert_equal 1, array.uniq.size end it "is not equal with different ivars" do window1 = NamedWindow.new "foo" window1.orders = [1, 2] window1.partitions = [1] window1.frame 3 window2 = NamedWindow.new "bar" window2.orders = [1, 2] window2.partitions = [1] window2.frame 3 array = [window1, window2] assert_equal 2, array.uniq.size end end end describe "CurrentRow" do describe "equality" do it "is equal to other current row nodes" do array = [CurrentRow.new, CurrentRow.new] assert_equal 1, array.uniq.size end it "is not equal with other nodes" do array = [CurrentRow.new, Node.new] assert_equal 2, array.uniq.size end end end end end