##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
# 
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
# 
# Contractor Name:        Raytheon Company
# Contractor Address:     6825 Pine Street, Suite 340
#                         Mail Stop B8
#                         Omaha, NE 68106
#                         402.291.0100
# 
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
# ----------------------------------------------------------------------------
# This software is in the public domain, furnished "as is", without technical
# support, and with no warranty, express or implied, as to its usefulness for
# any purpose.
#
# Miscellaneous Tests for SFT
#
# Author: cheatwood
# ----------------------------------------------------------------------------

SFT_createGrids = [
        ("Fcst", "Wx", "WEATHER", 0, 24, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 0, 24, "Wide:R:--:<NoVis>:^Wide:S:-:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 0, 24, "Wide:S:+:1/4SM:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 0, 24, "Wide:RW:--:<NoVis>:^Wide:T:<NoInten>:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 24, 48, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 24, 48, "Chc:T:<NoInten>:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 24, 48, "SChc:R:--:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 24, 48, "SChc:ZR:--:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 48, 72, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 48, 72, "Iso:RW:--:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 48, 72, "Areas:ZL:--:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 48, 72, "Sct:SW:--:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 72, 96, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 72, 96, "Def:BS:<NoInten>:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 72, 96, "SChc:S:-:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 72, 96, "Def:BS:<NoInten>:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 96, 120, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 96, 120, "Iso:SW:-:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 96, 120, "Areas:F:+:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 96, 120, "Wide:R:--:<NoVis>:", ["area3"]), 
        ("Fcst", "Wx", "WEATHER", 120, 144, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 120, 144, "Wide:L:--:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 120, 144, "Patchy:L:--:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 120, 144, "Patchy:BD:<NoInten>:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 144, 168, "NoWx", "all"),
        ("Fcst", "Wx", "WEATHER", 144, 168, "Wide:IP:--:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 144, 168, "Def:H:<NoInten>:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 144, 168, "Patchy:K:<NoInten>:<NoVis>:", ["area3"]),
        ("Fcst", "Wx", "WEATHER", 168, 192, "Wide:R:--:<NoVis>:", ["area1"]),
        ("Fcst", "Wx", "WEATHER", 168, 192, "Sct:T:<NoInten>:<NoVis>:", ["area2"]),
        ("Fcst", "Wx", "WEATHER", 168, 192, "Patchy:ZL:--:<NoVis>:", ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin", "MaxTEnd", 70, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin", "MinTEnd", 43, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin", "MaxTEnd", 80, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin", "MinTEnd", 47, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin", "MaxTEnd", 90, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin", "MinTEnd", 49, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 24", "MaxTEnd + 24", 73, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 24", "MinTEnd + 24", 45, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 24", "MaxTEnd + 24", 81, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 24", "MinTEnd + 24", 48, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 24", "MaxTEnd + 24", 92, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 24", "MinTEnd + 24", 50, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 48", "MaxTEnd + 48", 75, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 48", "MaxTEnd + 48", 82, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 48", "MaxTEnd + 48", 95, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 48", "MinTEnd + 48", 47, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 48", "MinTEnd + 48", 50, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 48", "MinTEnd + 48", 52, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 72", "MinTEnd + 72", 47, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 72", "MaxTEnd + 72", 77, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 72", "MinTEnd + 72", 50, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 72", "MaxTEnd + 72", 85, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 72", "MinTEnd + 72", 52, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 72", "MaxTEnd + 72", 96, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 96", "MinTEnd + 96", 49, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 96", "MaxTEnd + 96", 79, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 96", "MinTEnd + 96", 51, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 96", "MaxTEnd + 96", 86, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 96", "MinTEnd + 96", 54, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 96", "MaxTEnd + 96", 100, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 120", "MinTEnd + 120", 49, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 120", "MaxTEnd + 120", 81, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 120", "MinTEnd + 120", 53, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 120", "MaxTEnd + 120", 60, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 120", "MinTEnd + 120", 55, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 120", "MaxTEnd + 120", 103, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 144", "MinTEnd + 144", 49, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 144", "MaxTEnd + 144", 81, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 144", "MinTEnd + 144", 50, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 144", "MaxTEnd + 144", 80, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 144", "MinTEnd + 144", 55, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 144", "MaxTEnd + 144", 96, ["area3"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 168", "MaxTEnd + 168", 83, ["area1"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 168", "MaxTEnd + 168", 85, ["area2"]),
        ("Fcst", "MaxT", "SCALAR", "MaxTBegin + 168", "MaxTEnd + 168", 100, ["area3"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 168", "MinTEnd + 168", 52, ["area1"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 168", "MinTEnd + 168", 54, ["area2"]),
        ("Fcst", "MinT", "SCALAR", "MinTBegin + 168", "MinTEnd + 168", 58, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 0, 12, 45, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 0, 12, 45, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 0, 12, 45, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 12, 24, 0, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 12, 24, 40, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 12, 24, 40, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 24, 36, 50, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 24, 36, 60, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 24, 36, 70, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 36, 48, 60, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 36, 48, 70, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 36, 48, 80, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 48, 60, 55, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 48, 60, 55, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 48, 60, 60, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 60, 72, 100, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 60, 72, 85, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 60, 72, 72, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 72, 84, 62, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 72, 84, 100, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 72, 84, 60, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 84, 96, 70, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 84, 96, 80, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 84, 96, 100, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 96, 108, 45, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 96, 108, 50, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 96, 108, 45, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 108, 120, 40, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 108, 120, 75, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 108, 120, 60, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 120, 132, 55, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 120, 132, 60, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 120, 132, 55, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 132, 144, 45, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 132, 144, 25, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 132, 144, 55, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 144, 156, 90, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 144, 156, 85, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 144, 156, 70, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 156, 168, 60, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 156, 168, 0, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 156, 168, 67, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 168, 180, 50, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 168, 180, 55, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 168, 180, 60, ["area3"]),
        ("Fcst", "PoP", "SCALAR", 180, 192, 50, ["area1"]),
        ("Fcst", "PoP", "SCALAR", 180, 192, 55, ["area2"]),
        ("Fcst", "PoP", "SCALAR", 180, 192, 60, ["area3"]),
        ("Fcst", "Wind", "VECTOR", 0, 24, (40, "SW"), "all"),
        ("Fcst", "Wind", "VECTOR", 24, 48, (35, "NW"), "all"),
        ("Fcst", "Wind", "VECTOR", 48, 72, (45, "W"), "all"),
        ("Fcst", "Wind", "VECTOR", 72, 96, (50, "NW"), "all"),
        ("Fcst", "Wind", "VECTOR", 96, 120, (45, "N"), "all"),
        ("Fcst", "Wind", "VECTOR", 120, 144, (40, "NW"), "all"),
        ("Fcst", "Wind", "VECTOR", 144, 168, (30, "W"), "all"),
        ("Fcst", "Wind", "VECTOR", 168, 192, (20, "E"), "all"),
        ("Fcst", "QPF", "SCALAR", 0, 12, 0, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 0, 12, 0.01, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 0, 12, 0.05, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 12, 24, 0, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 12, 24, 0.01, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 12, 24, 0.05, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 24, 36, 0.1, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 24, 36, 0.5, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 24, 36, 1, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 36, 48, 1, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 36, 48, 1.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 36, 48, 1.5, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 48, 60, 2, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 48, 60, 1.7, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 48, 60, 2, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 60, 72, 1.5, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 60, 72, 1, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 60, 72, 2, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 72, 84, 2.5, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 72, 84, 2, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 72, 84, 2.8, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 84, 96, 2.9, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 84, 96, 2.5, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 84, 96, 3, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 96, 108, 1, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 96, 108, 1.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 96, 108, 1.5, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 108, 120, 4, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 108, 120, 3.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 108, 120, 3.5, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 120, 132, 3, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 120, 132, 2.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 120, 132, 4.5, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 132, 144, 5, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 132, 144, 3.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 132, 144, 2.5, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 144, 156, 4.2, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 144, 156, 5, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 144, 156, 4, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 156, 168, 3, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 156, 168, 2.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 156, 168, 2.1, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 168, 180, 3, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 168, 180, 2.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 168, 180, 2.7, ["area3"]),
        ("Fcst", "QPF", "SCALAR", 180, 192, 1, ["area1"]),
        ("Fcst", "QPF", "SCALAR", 180, 192, 1.3, ["area2"]),
        ("Fcst", "QPF", "SCALAR", 180, 192, 1.7, ["area3"]),
        ("Fcst", "Sky", "SCALAR", 0, 24, 0, "all"),
        ("Fcst", "Sky", "SCALAR", 24, 48, 96, "all"),
        ("Fcst", "Sky", "SCALAR", 48, 72, 25, "all"),
        ("Fcst", "Sky", "SCALAR", 72, 96, 55, "all"),
        ("Fcst", "Sky", "SCALAR", 96, 120, 80, "all"),
        ("Fcst", "Sky", "SCALAR", 120, 144, 100, "all"),
        ("Fcst", "Sky", "SCALAR", 144, 168, 65, "all"),
        ("Fcst", "Sky", "SCALAR", 168, 192, 90, "all"), 
        ]
scripts = [
    {
    "commentary": """
    Morning test
    Wx and Wind Wx codes are visible
    """,
    "name":"SFT_1", 
    "productType":"SFT",
    "cmdLineVars": "{('Product Issuance', 'productIssuance'): 'Morning', ('Issued By', 'issuedBy'): None, ('Forecaster Number', 'forecasterNumber'): 99.0 }",
    "comboFlag": 1,
    "checkStrings": [
       "FPUS62 KTBW 011100",
       "SFTTBW",
       "STZ000-012200-",
       "TABULAR STATE FORECAST FOR FLORIDA",
       "NATIONAL WEATHER SERVICE TAMPA BAY RUSKIN FL",
       "600 AM EST FRI JAN 1 2010",
       "ROWS INCLUDE...",
       "   DAILY PREDOMINANT DAYTIME WEATHER 6AM-6PM",
       "   FORECAST TEMPERATURES...EARLY MORNING LOW/DAYTIME HIGH",
       "         PROBABILITY OF PRECIPITATION NIGHTTIME 6PM-6AM/DAYTIME 6AM-6PM",
       "          - INDICATES TEMPERATURES BELOW ZERO",
       "         MM INDICATES MISSING DATA",
       "   FCST     FCST     FCST     FCST     FCST     FCST     FCST",
       "   TODAY    SAT      SUN      MON      TUE      WED      THU",
       "   JAN 01   JAN 02   JAN 03   JAN 04   JAN 05   JAN 06   JAN 07",
       "...REGION1...",
       "   CITY1",
       "   RNSNOW   TSTRMS   SHWRS    BLGSNO   SNOSHWR  DRZL     SLEET",
       "     /70    43/73    45/75    47/77    47/79    49/81    49/81",
       "      /50    00/50    60/60   100/60    70/50    40/60    50/90",
       "   CITY2",
       "   BLZZRD   RAIN     FZDRZL   SNOW     WINDY    DRZL     WINDY",
       "     /80    47/81    48/82    50/85    50/86    51/60    53/80",
       "      /50    40/60    70/60    90/100   80/50    80/60    30/90",
       "...REGION2...",
       "   CITY3",
       "   TSTRMS   FZRAIN   SNOSHWR  BLGSNO   RAIN     WINDY    WINDY",
       "     /90    49/92    50/95    52/96    52/100   54/103   55/96",
       "      /50    40/70    80/60    70/60   100/50    60/60    60/70",
       "$$",
                    ],
    "internalStrip": 0,
    "createGrids": SFT_createGrids,
    },
    {
    "commentary": """
    Afternoon test
    Wx and Wind Wx codes are visible
    """,
    "name":"SFT_2", 
    "productType":"SFT",
    "cmdLineVars": "{('Product Issuance', 'productIssuance'): 'Afternoon', ('Issued By', 'issuedBy'): None, ('Forecaster Number', 'forecasterNumber'): 99.0 }",
    "comboFlag": 1,
    "checkStrings": [
       "FPUS62 KTBW 011100",
       "SFTTBW",
       "STZ000-021000-",
       "TABULAR STATE FORECAST FOR FLORIDA",
       "NATIONAL WEATHER SERVICE TAMPA BAY RUSKIN FL",
       "600 AM EST FRI JAN 1 2010",
       "ROWS INCLUDE...",
       "   DAILY PREDOMINANT DAYTIME WEATHER 6AM-6PM",
       "   FORECAST TEMPERATURES...EARLY MORNING LOW/DAYTIME HIGH",
       "         PROBABILITY OF PRECIPITATION NIGHTTIME 6PM-6AM/DAYTIME 6AM-6PM",
       "          - INDICATES TEMPERATURES BELOW ZERO",
       "         MM INDICATES MISSING DATA",
       "   FCST     FCST     FCST     FCST     FCST     FCST     FCST",
       "   SAT      SUN      MON      TUE      WED      THU      FRI",
       "   JAN 02   JAN 03   JAN 04   JAN 05   JAN 06   JAN 07   JAN 08",
       "...REGION1...",
       "   CITY1",
       "   TSTRMS   SHWRS    BLGSNO   SNOSHWR  DRZL     SLEET    RAIN",
       "   43/73    45/75    47/77    47/79    49/81    49/81    49/83",
       "    00/50    60/60   100/60    70/50    40/60    50/90    60/50",
       "   CITY2",
       "   RAIN     FZDRZL   SNOW     WINDY    DRZL     WINDY    TSTRMS",
       "   47/81    48/82    50/85    50/86    51/60    53/80    50/85",
       "    40/60    70/60    90/100   80/50    80/60    30/90    00/60",
       "...REGION2...",
       "   CITY3",
       "   FZRAIN   SNOSHWR  BLGSNO   RAIN     WINDY    WINDY    FZDRZL",
       "   49/92    50/95    52/96    52/100   54/103   55/96    55/100",
       "    40/70    80/60    70/60   100/50    60/60    60/70    70/60",
       "$$",
                    ],
    "internalStrip": 0,
    "createGrids": SFT_createGrids,
    },
    {
    "commentary": """
    Afternoon test
    Wind grids are set to 0
    All Wx code is visible
    """,
    "name":"SFT_3", 
    "productType":"SFT",
    "cmdLineVars": "{('Product Issuance', 'productIssuance'): 'Afternoon', ('Issued By', 'issuedBy'): None, ('Forecaster Number', 'forecasterNumber'): 99.0 }",
    "comboFlag": 1, 
    "checkStrings": [
       "FPUS62 KTBW 011100",
       "SFTTBW",
       "STZ000-021000-",
       "TABULAR STATE FORECAST FOR FLORIDA",
       "NATIONAL WEATHER SERVICE TAMPA BAY RUSKIN FL",
       "600 AM EST FRI JAN 1 2010",
       "ROWS INCLUDE...",
       "   DAILY PREDOMINANT DAYTIME WEATHER 6AM-6PM",
       "   FORECAST TEMPERATURES...EARLY MORNING LOW/DAYTIME HIGH",
       "         PROBABILITY OF PRECIPITATION NIGHTTIME 6PM-6AM/DAYTIME 6AM-6PM",
       "          - INDICATES TEMPERATURES BELOW ZERO",
       "         MM INDICATES MISSING DATA",
       "   FCST     FCST     FCST     FCST     FCST     FCST     FCST",
       "   SAT      SUN      MON      TUE      WED      THU      FRI",
       "   JAN 02   JAN 03   JAN 04   JAN 05   JAN 06   JAN 07   JAN 08",
       "...REGION1...",
       "   CITY1",
       "   TSTRMS   SHWRS    BLGSNO   SNOSHWR  DRZL     SLEET    RAIN",
       "   43/73    45/75    47/77    47/79    49/81    49/81    49/83",
       "    00/50    60/60   100/60    70/50    40/60    50/90    60/50",
       "   CITY2",
       "   RAIN     FZDRZL   SNOW     FOGGY    DRZL     HAZE     TSTRMS",
       "   47/81    48/82    50/85    50/86    51/60    53/80    50/85",
       "    40/60    70/60    90/100   80/50    80/60    30/90    00/60",
       "...REGION2...",
       "   CITY3",
       "   FZRAIN   SNOSHWR  BLGSNO   RAIN     DUST     SMOKE    FZDRZL",
       "   49/92    50/95    52/96    52/100   54/103   55/96    55/100",
       "    40/70    80/60    70/60   100/50    60/60    60/70    70/60",
       "$$",
                    ],
    "createGrids": SFT_createGrids + [
    ("Fcst", "Wind", "VECTOR", 0, 24, (0, "SW"), "all"),
    ("Fcst", "Wind", "VECTOR", 24, 48, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 48, 72, (0, "W"), "all"),
    ("Fcst", "Wind", "VECTOR", 72, 96, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 96, 120, (0, "N"), "all"),
    ("Fcst", "Wind", "VECTOR", 120, 144, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 144, 168, (0, "W"), "all"),
    ("Fcst", "Wind", "VECTOR", 168, 192, (0, "W"), "all"), 
    ],
    },
    {
    "commentary": """
    Afternoon test
    Wx grids are set to NoWx
    Wind grids are set to 0
    Sky Wx code is visible
    """,
    "name":"SFT_4", 
    "productType":"SFT",
    "cmdLineVars": "{('Product Issuance', 'productIssuance'): 'Afternoon', ('Issued By', 'issuedBy'): None, ('Forecaster Number', 'forecasterNumber'): 99.0 }",
    "comboFlag": 1, 
    "checkStrings": [
       "FPUS62 KTBW 011100",
       "SFTTBW",
       "STZ000-021000-",
       "TABULAR STATE FORECAST FOR FLORIDA",
       "NATIONAL WEATHER SERVICE TAMPA BAY RUSKIN FL",
       "600 AM EST FRI JAN 1 2010",
       "ROWS INCLUDE...",
       "   DAILY PREDOMINANT DAYTIME WEATHER 6AM-6PM",
       "   FORECAST TEMPERATURES...EARLY MORNING LOW/DAYTIME HIGH",
       "         PROBABILITY OF PRECIPITATION NIGHTTIME 6PM-6AM/DAYTIME 6AM-6PM",
       "          - INDICATES TEMPERATURES BELOW ZERO",
       "         MM INDICATES MISSING DATA",
       "   FCST     FCST     FCST     FCST     FCST     FCST     FCST",
       "   SAT      SUN      MON      TUE      WED      THU      FRI",
       "   JAN 02   JAN 03   JAN 04   JAN 05   JAN 06   JAN 07   JAN 08",
       "...REGION1...",
       "   CITY1",
       "   CLOUDY   SUNNY    PTCLDY   MOCLDY   CLOUDY   PTCLDY   MOCLDY",
       "   43/73    45/75    47/77    47/79    49/81    49/81    49/83",
       "    00/50    60/60   100/60    70/50    40/60    50/90    60/50",
       "   CITY2",
       "   CLOUDY   SUNNY    PTCLDY   MOCLDY   CLOUDY   PTCLDY   MOCLDY",
       "   47/81    48/82    50/85    50/86    51/60    53/80    50/85",
       "    40/60    70/60    90/100   80/50    80/60    30/90    00/60",
       "...REGION2...",
       "   CITY3",
       "   CLOUDY   SUNNY    PTCLDY   MOCLDY   CLOUDY   PTCLDY   MOCLDY",
       "   49/92    50/95    52/96    52/100   54/103   55/96    55/100",
       "    40/70    80/60    70/60   100/50    60/60    60/70    70/60",
       "$$",
                    ],
    "createGrids": SFT_createGrids + [
    ("Fcst", "Wx", "WEATHER", 0, 24, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 24, 48, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 48, 72, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 72, 96, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 96, 120, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 120, 144, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 144, 168, "NoWx", "all"),
    ("Fcst", "Wx", "WEATHER", 168, 192, "NoWx", "all"), 
    ("Fcst", "Wind", "VECTOR", 0, 24, (0, "SW"), "all"),
    ("Fcst", "Wind", "VECTOR", 24, 48, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 48, 72, (0, "W"), "all"),
    ("Fcst", "Wind", "VECTOR", 72, 96, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 96, 120, (0, "N"), "all"),
    ("Fcst", "Wind", "VECTOR", 120, 144, (0, "NW"), "all"),
    ("Fcst", "Wind", "VECTOR", 144, 168, (0, "W"), "all"),
    ("Fcst", "Wind", "VECTOR", 168, 192, (0, "W"), "all"), 
    ],
    },
    {    
    "name":"SFT_CleanUp",
    "commentary": "Clean out grids",
    "productType": None,
    "deleteGrids": [
        ("Fcst", "PoP", "SFC", 0,280),
        ("Fcst", "MaxT", "SFC", -24,280),
        ("Fcst", "MinT", "SFC", 0,280),
        ("Fcst", "T", "SFC", 0,280),
        ("Fcst", "Td", "SFC", 0,280),
        ("Fcst", "WindChill", "SFC", 0,280),
        ("Fcst", "HeatIndex", "SFC", 0,280),
        ("Fcst", "Wind", "SFC", 0,280),
        ("Fcst", "Sky", "SFC", 0,280),
        ("Fcst", "WindGust", "SFC", 0,280),
        ("Fcst", "Wx", "SFC", 0,280),
        ("Fcst", "QPF", "SFC", 0,280),
        ("Fcst", "SnowAmt", "SFC", 0,280),
        ]
    },
    ]

import TestScript
def testScript(self, dataMgr):
    gridsStartTime = self.getAbsFromLocal(2010, 1, 1, 6, 0)
    drtTime = self.getAbsFromLocal(2010, 1, 1, 6, 0)
    defaults = {
        "cmdLineVars" :"{('Product Issuance', 'productIssuance'): 'Morning', ('Issued By', 'issuedBy'): None}",
        "orderStrings": 1,
        "internalStrip": 0,
        "gridsStartTime": gridsStartTime,
        "drtTime": drtTime,
        }
    return TestScript.generalTestScript(self, dataMgr, scripts, defaults)

