TSQL Challenge 20 - Basic Testing Sandbox



You can use the following TSQL template to test your solutions for TSQL Challenge 20

/*
	Create a wrapper procedure around the solution
*/
IF OBJECT_ID('tempdb..#TestSolution') IS NOT NULL BEGIN
	DROP PROCEDURE #TestSolution
END
GO

CREATE PROCEDURE #TestSolution AS
BEGIN
	;
	
	/* Insert your query below */


	/* Insert your query above */
END
GO

SET NOCOUNT ON
/*
	Start the testing phase
*/
DECLARE @x TABLE(
	AutoID INT IDENTITY,
	NumRepeats INT,
	FiboNumber BIGINT
)

-- Execute the code and capture the output into the 
-- table variable
INSERT @x EXEC #TestSolution

-- Build the 'expected resultset'
DECLARE @z TABLE(
	AutoID INT IDENTITY,
	NumRepeats INT,
	FiboNumber BIGINT
)

INSERT INTO @z SELECT 1,55
INSERT INTO @z SELECT 1,144
INSERT INTO @z SELECT 1,233
INSERT INTO @z SELECT 1,377
INSERT INTO @z SELECT 1,317811
INSERT INTO @z SELECT 2,17711
INSERT INTO @z SELECT 2,102334155
INSERT INTO @z SELECT 2,433494437
INSERT INTO @z SELECT 2,32951280099
INSERT INTO @z SELECT 2,53316291173
INSERT INTO @z SELECT 3,27777890035288
INSERT INTO @z SELECT 3,117669030460994
INSERT INTO @z SELECT 3,5527939700884757
INSERT INTO @z SELECT 3,14472334024676221
INSERT INTO @z SELECT 3,1779979416004714189
INSERT INTO @z SELECT 4,1100087778366101931

-- Match the output with expected result.
IF EXISTS(
  (SELECT * FROM @x EXCEPT SELECT * FROM @z)
  UNION ALL
  (SELECT * FROM @z EXCEPT SELECT * FROM @x))
BEGIN
  PRINT 'Invalid Results...Failed!'
END ELSE BEGIN
  PRINT 'Congratulations...Passed!'
END