The following TSQL template can be used to perform a basic testing of your solutions for TSQL Beginners Challenge 2.
/***********************************************************************
----------------------------------------------
BASIC Testing Sandbox for TSQL Begginers Challenge 2
Copyright © beyondrelational.com
----------------------------------------------
***********************************************************************/
/*
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
DECLARE @tbl TABLE (Yr INT,Mon VARCHAR(50),Dy VARCHAR(50),Dyno INT)
INSERT INTO @tbl(Yr, Mon, Dy, Dyno)
SELECT 2010,'Jan','Sun',2 UNION ALL
SELECT 2005,'Jan','Mon',3 UNION ALL
SELECT 1995,'Feb','Sun',1 UNION ALL
SELECT 2000,'Feb','Wed',4 UNION ALL
SELECT 1982,'Mar','Tue',2 UNION ALL
SELECT 2010,'Mar','Tue',8
;
/* Insert your query below */
/* Insert your query above */
END
GO
SET NOCOUNT ON
/*
Start the testing phase
*/
DECLARE @x TABLE(
AutoID INT IDENTITY,
Yr INT,
Mon VARCHAR(50),
Dy VARCHAR(50),
Dyno INT,
Date VARCHAR(100)
)
-- Execute the code and
INSERT @x EXEC #TestSolution
DECLARE @z TABLE(
AutoID INT IDENTITY,
Yr INT,
Mon VARCHAR(50),
Dy VARCHAR(50),
Dyno INT,
Date VARCHAR(100)
)
INSERT INTO @z (Yr,Mon,Dy,Dyno,Date)
SELECT 1982,'Mar','Tue',2,'1982-03-09' UNION ALL
SELECT 1995,'Feb','Sun',1,'1995-02-05' UNION ALL
SELECT 2000,'Feb','Wed',4,'2000-02-23' UNION ALL
SELECT 2005,'Jan','Mon',3,'2005-01-17' UNION ALL
SELECT 2010,'Jan','Sun',2,'2010-01-10' UNION ALL
SELECT 2010,'Mar','Tue',8,'Invalid Date'
-- 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