TSQL Challenge 18 - Logic Testing



Here is the logic testing data compiled by Brad Schulz for TSQL Challenge 18. Due to the special nature of this challenge, we will be testing the solutions with three different language settings: English, Swedish and Czech.

Sample Data

Mth         Yr
----------- -----------
8           2009
2           1900
2           2015
2           2000
10          1959
9           2008
1           1975
5           1987

Sample Script

declare @t table (Mth int, Yr int)
insert @t select  8,2009
union all select  2,1900
union all select  2,2015
union all select  2,2000
union all select 10,1959
union all select  9,2008
union all select  1,1975
union all select  5,1987

Each solution will be tested with three different language settings. Given below are the language settings and the expected results based on the above sample data.

Language Setting (English)

set language english
set datefirst 4

Expected Results (English)

+-----------------------------+
|        FEBRUARY 1900        |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28             |
+-----------------------------+
+-----------------------------+
|        OCTOBER 1959         |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28  29  30  31 |
+-----------------------------+
+-----------------------------+
|        JANUARY 1975         |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|               1   2   3   4 |
|   5   6   7   8   9  10  11 |
|  12  13  14  15  16  17  18 |
|  19  20  21  22  23  24  25 |
|  26  27  28  29  30  31     |
+-----------------------------+
+-----------------------------+
|          MAY 1987           |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|                       1   2 |
|   3   4   5   6   7   8   9 |
|  10  11  12  13  14  15  16 |
|  17  18  19  20  21  22  23 |
|  24  25  26  27  28  29  30 |
|  31                         |
+-----------------------------+
+-----------------------------+
|        FEBRUARY 2000        |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|           1   2   3   4   5 |
|   6   7   8   9  10  11  12 |
|  13  14  15  16  17  18  19 |
|  20  21  22  23  24  25  26 |
|  27  28  29                 |
+-----------------------------+
+-----------------------------+
|       SEPTEMBER 2008        |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|       1   2   3   4   5   6 |
|   7   8   9  10  11  12  13 |
|  14  15  16  17  18  19  20 |
|  21  22  23  24  25  26  27 |
|  28  29  30                 |
+-----------------------------+
+-----------------------------+
|         AUGUST 2009         |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|                           1 |
|   2   3   4   5   6   7   8 |
|   9  10  11  12  13  14  15 |
|  16  17  18  19  20  21  22 |
|  23  24  25  26  27  28  29 |
|  30  31                     |
+-----------------------------+
+-----------------------------+
|        FEBRUARY 2015        |
|=============================|
| Sun Mon Tue Wed Thu Fri Sat |
|-----------------------------|
|   1   2   3   4   5   6   7 |
|   8   9  10  11  12  13  14 |
|  15  16  17  18  19  20  21 |
|  22  23  24  25  26  27  28 |
+-----------------------------+ 

Language Setting (Swedish)

set language swedish
set datefirst 6

Expected Resuluts (Swedish)

+-----------------------------+
|        FEBRUARI 1900        |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28             |
+-----------------------------+
+-----------------------------+
|        OKTOBER 1959         |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28  29  30  31 |
+-----------------------------+
+-----------------------------+
|        JANUARI 1975         |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|               1   2   3   4 |
|   5   6   7   8   9  10  11 |
|  12  13  14  15  16  17  18 |
|  19  20  21  22  23  24  25 |
|  26  27  28  29  30  31     |
+-----------------------------+
+-----------------------------+
|          MAJ 1987           |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|                       1   2 |
|   3   4   5   6   7   8   9 |
|  10  11  12  13  14  15  16 |
|  17  18  19  20  21  22  23 |
|  24  25  26  27  28  29  30 |
|  31                         |
+-----------------------------+
+-----------------------------+
|        FEBRUARI 2000        |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|           1   2   3   4   5 |
|   6   7   8   9  10  11  12 |
|  13  14  15  16  17  18  19 |
|  20  21  22  23  24  25  26 |
|  27  28  29                 |
+-----------------------------+
+-----------------------------+
|       SEPTEMBER 2008        |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|       1   2   3   4   5   6 |
|   7   8   9  10  11  12  13 |
|  14  15  16  17  18  19  20 |
|  21  22  23  24  25  26  27 |
|  28  29  30                 |
+-----------------------------+
+-----------------------------+
|        AUGUSTI 2009         |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|                           1 |
|   2   3   4   5   6   7   8 |
|   9  10  11  12  13  14  15 |
|  16  17  18  19  20  21  22 |
|  23  24  25  26  27  28  29 |
|  30  31                     |
+-----------------------------+
+-----------------------------+
|        FEBRUARI 2015        |
|=============================|
| sön mån tis ons tor fre lör |
|-----------------------------|
|   1   2   3   4   5   6   7 |
|   8   9  10  11  12  13  14 |
|  15  16  17  18  19  20  21 |
|  22  23  24  25  26  27  28 |
+-----------------------------+

Language Setting (Czech)

set language czech
set datefirst 2

Expected Resuluts (Czech)

+-----------------------------+
|          ÚNOR 1900          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28             |
+-----------------------------+
+-----------------------------+
|         ŘÍJEN 1959          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|                   1   2   3 |
|   4   5   6   7   8   9  10 |
|  11  12  13  14  15  16  17 |
|  18  19  20  21  22  23  24 |
|  25  26  27  28  29  30  31 |
+-----------------------------+
+-----------------------------+
|         LEDEN 1975          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|               1   2   3   4 |
|   5   6   7   8   9  10  11 |
|  12  13  14  15  16  17  18 |
|  19  20  21  22  23  24  25 |
|  26  27  28  29  30  31     |
+-----------------------------+
+-----------------------------+
|         KVĚTEN 1987         |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|                       1   2 |
|   3   4   5   6   7   8   9 |
|  10  11  12  13  14  15  16 |
|  17  18  19  20  21  22  23 |
|  24  25  26  27  28  29  30 |
|  31                         |
+-----------------------------+
+-----------------------------+
|          ÚNOR 2000          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|           1   2   3   4   5 |
|   6   7   8   9  10  11  12 |
|  13  14  15  16  17  18  19 |
|  20  21  22  23  24  25  26 |
|  27  28  29                 |
+-----------------------------+
+-----------------------------+
|          ZÁŘÍ 2008          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|       1   2   3   4   5   6 |
|   7   8   9  10  11  12  13 |
|  14  15  16  17  18  19  20 |
|  21  22  23  24  25  26  27 |
|  28  29  30                 |
+-----------------------------+
+-----------------------------+
|         SRPEN 2009          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|                           1 |
|   2   3   4   5   6   7   8 |
|   9  10  11  12  13  14  15 |
|  16  17  18  19  20  21  22 |
|  23  24  25  26  27  28  29 |
|  30  31                     |
+-----------------------------+
+-----------------------------+
|          ÚNOR 2015          |
|=============================|
| ned pon úte stř čtv pát sob |
|-----------------------------|
|   1   2   3   4   5   6   7 |
|   8   9  10  11  12  13  14 |
|  15  16  17  18  19  20  21 |
|  22  23  24  25  26  27  28 |
+-----------------------------+