/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.sis.storage.earthobservation;

import java.util.regex.Matcher;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.sis.internal.storage.AbstractResource;
import org.opengis.metadata.Metadata;
import org.opengis.metadata.acquisition.Context;
import org.opengis.metadata.acquisition.OperationType;
import org.opengis.metadata.citation.DateType;
import org.opengis.metadata.content.CoverageContentType;
import org.opengis.metadata.content.TransferFunctionType;
import org.opengis.metadata.identification.Progress;
import org.opengis.metadata.identification.TopicCategory;
import org.opengis.metadata.maintenance.ScopeCode;
import org.opengis.metadata.spatial.DimensionNameType;
import org.opengis.util.FactoryException;
import org.opengis.test.dataset.ContentVerifier;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.test.TestCase;
import org.junit.Test;

import static org.apache.sis.test.Assert.*;
import static org.apache.sis.test.TestUtilities.date;
import static org.apache.sis.storage.earthobservation.LandsatReader.DIM;


/**
 * Tests {@link LandsatReader}.
 *
 * @author  Thi Phuong Hao Nguyen (VNSC)
 * @author  Martin Desruisseaux (Geomatys)
 * @version 1.0
 * @since   0.8
 * @module
 */
public class LandsatReaderTest extends TestCase {
    /**
     * Tests the regular expression used for detecting the
     * “Image courtesy of the U.S. Geological Survey” credit.
     */
    @Test
    public void testCreditPattern() {
        final Matcher m = LandsatReader.CREDIT.matcher("Image courtesy of the U.S. Geological Survey");
        assertTrue("matches", m.find());
        assertEquals("end", 22, m.end());
    }

    /**
     * Verifies the value of the {@link LandsatReader#BAND_GROUPS} mask.
     */
    @Test
    public void verifyBandGroupsMask() {
        final int[] PANCHROMATIC = {8};
        final int[] REFLECTIVE   = {1, 2, 3, 4, 5, 6, 7, 9};
        final int[] THERMAL      = {10, 11};
        long mask = 0;
        for (int i=0; i < PANCHROMATIC.length; i++) mask |= (LandsatReader.PANCHROMATIC/DIM << 2*(PANCHROMATIC[i] - 1));
        for (int i=0; i <   REFLECTIVE.length; i++) mask |= (LandsatReader.REFLECTIVE/DIM   <<   2*(REFLECTIVE[i] - 1));
        for (int i=0; i <      THERMAL.length; i++) mask |= (LandsatReader.THERMAL/DIM      <<      2*(THERMAL[i] - 1));
        assertEquals("BAND_GROUPS", mask, LandsatReader.BAND_GROUPS);
    }

    /**
     * Tests {@link LandsatReader#read(BufferedReader)}.
     *
     * <p><b>NOTE FOR MAINTAINER:</b> if the result of this test changes, consider updating
     * <a href="./doc-files/LandsatMetadata.html">./doc-files/LandsatMetadata.html</a> accordingly.</p>
     *
     * @throws IOException if an error occurred while reading the test file.
     * @throws DataStoreException if a property value can not be parsed as a number or a date.
     * @throws FactoryException if an error occurred while creating the Coordinate Reference System.
     */
    @Test
    public void testRead() throws IOException, DataStoreException, FactoryException {
        final Metadata actual;
        try (BufferedReader in = new BufferedReader(new InputStreamReader(
                LandsatReaderTest.class.getResourceAsStream("LandsatTest.txt"), "UTF-8")))
        {
            final LandsatReader reader = new LandsatReader("LandsatTest.txt", new AbstractResource(null));
            reader.read(in);
            actual = reader.getMetadata();
        }
        final ContentVerifier verifier = new ContentVerifier();
        verifier.addPropertyToIgnore(Metadata.class, "metadataStandard");           // Because hard-coded in SIS.
        verifier.addPropertyToIgnore(Metadata.class, "referenceSystemInfo");        // Very verbose and depends on EPSG connection.
        verifier.addMetadataToVerify(actual);
        verifier.assertMetadataEquals(
            "defaultLocale+otherLocale[0]",                                                          "en",
            "metadataIdentifier.code",                                                               "LandsatTest",
            "metadataScope[0].resourceScope",                                                        ScopeCode.COVERAGE,
            "dateInfo[0].date",                                                                      date("2016-06-27 16:48:12"),
            "dateInfo[0].dateType",                                                                  DateType.CREATION,
            "identificationInfo[0].topicCategory[0]",                                                TopicCategory.GEOSCIENTIFIC_INFORMATION,
            "identificationInfo[0].citation.date[0].date",                                           date("2016-06-27 16:48:12"),
            "identificationInfo[0].citation.date[0].dateType",                                       DateType.CREATION,
            "identificationInfo[0].citation.title",                                                  "LandsatTest",
            "identificationInfo[0].credit[0]",                                                       "Derived from U.S. Geological Survey data",
            "identificationInfo[0].resourceFormat[0].formatSpecificationCitation.title",             "GeoTIFF Coverage Encoding Profile",
            "identificationInfo[0].resourceFormat[0].formatSpecificationCitation.alternateTitle[0]", "GeoTIFF",
            "identificationInfo[0].extent[0].geographicElement[0].extentTypeCode",                   true,
            "identificationInfo[0].extent[0].geographicElement[0].westBoundLongitude",               108.34,
            "identificationInfo[0].extent[0].geographicElement[0].eastBoundLongitude",               110.44,
            "identificationInfo[0].extent[0].geographicElement[0].southBoundLatitude",                10.50,
            "identificationInfo[0].extent[0].geographicElement[0].northBoundLatitude",                12.62,
            "identificationInfo[0].spatialResolution[0].distance",                                    15.0,
            "identificationInfo[0].spatialResolution[1].distance",                                    30.0,

            "acquisitionInformation[0].platform[0].identifier.code",               "Pseudo LANDSAT",
            "acquisitionInformation[0].platform[0].instrument[0].identifier.code", "Pseudo TIRS",
            "acquisitionInformation[0].acquisitionRequirement[0].identifier.code", "Software unit tests",
            "acquisitionInformation[0].operation[0].significantEvent[0].context",  Context.ACQUISITION,
            "acquisitionInformation[0].operation[0].significantEvent[0].time",     date("2016-06-26 03:02:01.090"),
            "acquisitionInformation[0].operation[0].status",                       Progress.COMPLETED,
            "acquisitionInformation[0].operation[0].type",                         OperationType.REAL,

            "contentInfo[0].processingLevelCode.authority.title",          "Landsat",
            "contentInfo[0].processingLevelCode.codeSpace",                "Landsat",
            "contentInfo[0].processingLevelCode.code",                     "Pseudo LT1",

            "contentInfo[0].attributeGroup[0].attribute[0].name[0].code",  "TestImage_B1.TIF",
            "contentInfo[0].attributeGroup[0].attribute[1].name[0].code",  "TestImage_B2.TIF",
            "contentInfo[0].attributeGroup[0].attribute[2].name[0].code",  "TestImage_B3.TIF",
            "contentInfo[0].attributeGroup[0].attribute[3].name[0].code",  "TestImage_B4.TIF",
            "contentInfo[0].attributeGroup[0].attribute[4].name[0].code",  "TestImage_B5.TIF",
            "contentInfo[0].attributeGroup[0].attribute[5].name[0].code",  "TestImage_B6.TIF",
            "contentInfo[0].attributeGroup[0].attribute[6].name[0].code",  "TestImage_B7.TIF",
            "contentInfo[0].attributeGroup[0].attribute[7].name[0].code",  "TestImage_B9.TIF",
            "contentInfo[0].attributeGroup[1].attribute[0].name[0].code",  "TestImage_B8.TIF",
            "contentInfo[0].attributeGroup[2].attribute[0].name[0].code",  "TestImage_B10.TIF",
            "contentInfo[0].attributeGroup[2].attribute[1].name[0].code",  "TestImage_B11.TIF",

            "contentInfo[0].attributeGroup[0].attribute[0].description",   "Coastal Aerosol",
            "contentInfo[0].attributeGroup[0].attribute[1].description",   "Blue",
            "contentInfo[0].attributeGroup[0].attribute[2].description",   "Green",
            "contentInfo[0].attributeGroup[0].attribute[3].description",   "Red",
            "contentInfo[0].attributeGroup[0].attribute[4].description",   "Near-Infrared",
            "contentInfo[0].attributeGroup[0].attribute[5].description",   "Short Wavelength Infrared (SWIR) 1",
            "contentInfo[0].attributeGroup[0].attribute[6].description",   "Short Wavelength Infrared (SWIR) 2",
            "contentInfo[0].attributeGroup[0].attribute[7].description",   "Cirrus",
            "contentInfo[0].attributeGroup[1].attribute[0].description",   "Panchromatic",
            "contentInfo[0].attributeGroup[2].attribute[0].description",   "Thermal Infrared Sensor (TIRS) 1",
            "contentInfo[0].attributeGroup[2].attribute[1].description",   "Thermal Infrared Sensor (TIRS) 2",

            "contentInfo[0].attributeGroup[0].attribute[0].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[1].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[2].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[3].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[4].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[5].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[6].minValue",      1.0,
            "contentInfo[0].attributeGroup[0].attribute[7].minValue",      1.0,
            "contentInfo[0].attributeGroup[1].attribute[0].minValue",      1.0,
            "contentInfo[0].attributeGroup[2].attribute[0].minValue",      1.0,
            "contentInfo[0].attributeGroup[2].attribute[1].minValue",      1.0,

            "contentInfo[0].attributeGroup[0].attribute[0].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[1].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[2].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[3].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[4].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[5].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[6].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[0].attribute[7].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[1].attribute[0].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[2].attribute[0].maxValue",      65535.0,
            "contentInfo[0].attributeGroup[2].attribute[1].maxValue",      65535.0,

            "contentInfo[0].attributeGroup[0].attribute[0].peakResponse",    433.0,
            "contentInfo[0].attributeGroup[0].attribute[1].peakResponse",    482.0,
            "contentInfo[0].attributeGroup[0].attribute[2].peakResponse",    562.0,
            "contentInfo[0].attributeGroup[0].attribute[3].peakResponse",    655.0,
            "contentInfo[0].attributeGroup[0].attribute[4].peakResponse",    865.0,
            "contentInfo[0].attributeGroup[0].attribute[5].peakResponse",   1610.0,
            "contentInfo[0].attributeGroup[0].attribute[6].peakResponse",   2200.0,
            "contentInfo[0].attributeGroup[0].attribute[7].peakResponse",   1375.0,
            "contentInfo[0].attributeGroup[1].attribute[0].peakResponse",    590.0,
            "contentInfo[0].attributeGroup[2].attribute[0].peakResponse",  10800.0,
            "contentInfo[0].attributeGroup[2].attribute[1].peakResponse",  12000.0,

            "contentInfo[0].attributeGroup[0].attribute[0].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[1].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[2].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[3].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[4].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[5].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[6].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[0].attribute[7].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[1].attribute[0].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[2].attribute[0].transferFunctionType",  TransferFunctionType.LINEAR,
            "contentInfo[0].attributeGroup[2].attribute[1].transferFunctionType",  TransferFunctionType.LINEAR,

            "contentInfo[0].attributeGroup[0].attribute[0].scaleFactor",  0.0127,
            "contentInfo[0].attributeGroup[0].attribute[1].scaleFactor",  0.013,
            "contentInfo[0].attributeGroup[0].attribute[2].scaleFactor",  0.012,
            "contentInfo[0].attributeGroup[0].attribute[3].scaleFactor",  0.0101,
            "contentInfo[0].attributeGroup[0].attribute[4].scaleFactor",  0.00619,
            "contentInfo[0].attributeGroup[0].attribute[5].scaleFactor",  0.00154,
            "contentInfo[0].attributeGroup[0].attribute[6].scaleFactor",  0.000519,
            "contentInfo[0].attributeGroup[0].attribute[7].scaleFactor",  0.00242,
            "contentInfo[0].attributeGroup[1].attribute[0].scaleFactor",  0.0115,
            "contentInfo[0].attributeGroup[2].attribute[0].scaleFactor",  0.000334,
            "contentInfo[0].attributeGroup[2].attribute[1].scaleFactor",  0.000334,

            "contentInfo[0].attributeGroup[0].attribute[0].offset",       -63.6,
            "contentInfo[0].attributeGroup[0].attribute[1].offset",       -65.1,
            "contentInfo[0].attributeGroup[0].attribute[2].offset",       -60.0,
            "contentInfo[0].attributeGroup[0].attribute[3].offset",       -50.6,
            "contentInfo[0].attributeGroup[0].attribute[4].offset",       -31.0,
            "contentInfo[0].attributeGroup[0].attribute[5].offset",       -7.7,
            "contentInfo[0].attributeGroup[0].attribute[6].offset",       -2.6,
            "contentInfo[0].attributeGroup[0].attribute[7].offset",       -12.1,
            "contentInfo[0].attributeGroup[1].attribute[0].offset",       -57.3,
            "contentInfo[0].attributeGroup[2].attribute[0].offset",       0.1,
            "contentInfo[0].attributeGroup[2].attribute[1].offset",       0.1,

            "contentInfo[0].attributeGroup[0].attribute[0].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[1].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[2].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[3].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[4].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[5].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[6].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[0].attribute[7].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[1].attribute[0].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[2].attribute[0].boundUnits",   "nm",
            "contentInfo[0].attributeGroup[2].attribute[1].boundUnits",   "nm",

            "contentInfo[0].attributeGroup[0].contentType[0]", CoverageContentType.PHYSICAL_MEASUREMENT,
            "contentInfo[0].attributeGroup[1].contentType[0]", CoverageContentType.PHYSICAL_MEASUREMENT,
            "contentInfo[0].attributeGroup[2].contentType[0]", CoverageContentType.PHYSICAL_MEASUREMENT,

            "contentInfo[0].cloudCoverPercentage",         8.3,
            "contentInfo[0].illuminationAzimuthAngle",   116.9,
            "contentInfo[0].illuminationElevationAngle",  58.8,

            "spatialRepresentationInfo[0].numberOfDimensions",                       2,
            "spatialRepresentationInfo[1].numberOfDimensions",                       2,
            "spatialRepresentationInfo[0].axisDimensionProperties[0].dimensionName", DimensionNameType.SAMPLE,
            "spatialRepresentationInfo[1].axisDimensionProperties[0].dimensionName", DimensionNameType.SAMPLE,
            "spatialRepresentationInfo[0].axisDimensionProperties[1].dimensionName", DimensionNameType.LINE,
            "spatialRepresentationInfo[1].axisDimensionProperties[1].dimensionName", DimensionNameType.LINE,
            "spatialRepresentationInfo[0].axisDimensionProperties[0].dimensionSize", 15000,
            "spatialRepresentationInfo[0].axisDimensionProperties[1].dimensionSize", 15500,
            "spatialRepresentationInfo[1].axisDimensionProperties[0].dimensionSize", 7600,
            "spatialRepresentationInfo[1].axisDimensionProperties[1].dimensionSize", 7800,
            "spatialRepresentationInfo[0].transformationParameterAvailability",      false,
            "spatialRepresentationInfo[1].transformationParameterAvailability",      false,
            "spatialRepresentationInfo[0].checkPointAvailability",                   false,
            "spatialRepresentationInfo[1].checkPointAvailability",                   false,

            "resourceLineage[0].source[0].description", "Pseudo GLS");
    }
}
