", function() {         describe("with a separate output vector", function() {             beforeEach(function() { result = vec0.lerp(out, vecA, vecB, 0.0); });                          it("should place values into out", function() { expect(out).toBeEqualish([0, 0]); });             it("should return out", function() { expect(result).toBe(out); });             it("should not modify vecA", function() { expect(vecA).toBeEqualish([0, 0]); });             it("should not modify vecB", function() { expect(vecB).toBeEqualish([0, 0]); });         });          describe("when vecA is the output vector", function() {             beforeEach(function() { result = vec0.lerp(vecA, vecA, vecB, 0.0); });                          it("should place values into vecA", function() { expect(vecA).toBeEqualish([0, 0]); });             it("should return vecA", function() { expect(result).toBe(vecA); });             it("should not modify vecB", function() { expect(vecB).toBeEqualish([0, 0]); });         });          describe("when vecB is the output vector", function() {             beforeEach(function() { result = vec0.lerp(vecB, vecA, vecB, 0.0); });                          it("should place values into vecB", function() { expect(vecB).toBeEqualish([0, 0]); });             it("should return vecB", function() { expect(result).toBe(vecB); });             it("should not modify vecA", function() { expect(vecA).toBeEqualish([0, 0]); });         });     });      describe("