Table of Contents
Diretrizes
Hoje (01-02-2013) temos a seguinte lista de prioridades:
- prioritários ⇒ commnon → data type → srs → geometry → raster → data access → memory → xml → xerces → plugin → xlink → gml → filter → color → se → maptools → rp → sam → qt-af → qt-widgets → qt-designer → qt-plugins
- drivers ⇒ gdal → ogr → postgis → ado → mysql → sqlite → grib → couchdb → mongodb
- não-prioritários ⇒ metadata → st → xsd → serialization → annotation text → json → yaml → binding → antigrain → idl → tools
Criar um arquivo de configuração para os testes unitários
- definir a variável TE_DATA_UNITTEST_LOCALE
- verificar o uso de HAVE_CPPUNIT_OUTPUTTER_H
Revisar o zip com os dados de teste
- criar um pacote separado para os testes unitários
Básico
- CMAKE: alterar build/unittest/CMakeLists.txt adicionando em add_subdirectory e criar o CMakeLists.txt para o modulo no sub-dir.
- Arquivo de dados com subdiretorios para cada modulo Ex: data/module_common/<nome-dados-teste> - ainda em discusão como carregar esses dados. Por modulo? Carregar todo o data.zip? Não carregar via cmake e sim via download? Pode ficar pesado carregar o data.zip todo.
- Estrutura básica de testes já montada para as classes prioritárias: solution, main.cpp, Config.
Common
Prioritários:
HexUtils: codificação hexa de uma sequência de bytes- Fazer os testes para as rotinas do arquivo HexUtils.h → 8 horas
- Responsável:
ByteSwapUtils: swap de bytes- Fazer os testes para as rotinas do arquivo ByteSwapUtils.h → 4 horas
- Responsável:
UnitOfMeasure e UnitsOfMeasureManager: unidade de medidas, gerenciamento de unidades e conversões → 8 horas- Fazer os testes para as classes UnitOfMeasure e UnitsOfMeasureManager
- Responsável:
TreeItem: formas hierárquicas de representação → 8 horas- Fazer os testes para a classe TreeItem
- Responsável:
Progress: informações do andamento de tarefas- Fazer os testes para as classes do Progress contidas no módulo common → 8 horas
- Responsável:
Library e LibraryManager: carga dinâmica de bibliotecas → 16 horas- Fazer os testes para as classes Library e LibraryManager
- garantir a execução dos testes nos ambientes Windows (DLL), Linux (SO) e Mac (DyLib)
- Responsável:
MatrixUtils:- Fazer os testes para as rotinas do arquivo MatrixUtils.h → 8 horas
- Responsável:
Não-prioritários:
- Counted: referência contada
- OSSettingsDir
- BaseVisitable e BaseVisitor: visitors
- Holder:
- ThreadingPolicies
- Logger (baixa-prioridade pois pode ser alterado)
- Translator (baixa-prioridade pois pode ser alterado)
- URL/URI (baixa-prioridade pois pode ser alterado)
- ApplicationSettings (baixa-prioridade pois pode ser alterado)
DataType
Prioritários:
Array → 8 horasByte Array → 8 horas- SimpleData → 4 horas
- CompositeData → 4 horas
- Data (tempo) → 8 horas
- Properties → 16 horas
Não-prioritários:
- Converters → 8 horas
- Utils.h → 1 hora
SRS
Prioritários:
- Rever os dados de teste → 8
- Montar o projeto de testes deste módulo → 8
- Ellipsoid → 1 hora
- Datum → 1 hora
- SpatialReferenceSystem e classes derivadas → 8 horas
- Converter → 16 horas
Não-prioritários:
- WKTReader → 16 horas
Geometry
Prioritários:
- Rever os dados de teste → 8
- Montar o projeto de testes deste módulo → 8
- Rever os testes dos tipos geométricos, incluindo os novos tipos circulares → 32
- Rever os testes dos conversores WKB e GEOS → 16
- Rever os teste do parser WKT → 16 horas
Raster
Prioritários:
- Rever os dados de teste → 8
- Montar o projeto de testes deste módulo → 8
- Grid → 8 horas
- Raster, Fábrica Raster, Banda → 16 horas
- Iteradores → 16 horas
- ProxyRaster → 2 horas
- RasterSummaryManager e BandSummary → 8 horas
- Reprojection → 8 horas
- Interpolator → 4 horas
- BlockUtils → 8 horas
Data Access
Prioritários:
- Rever os dados de teste → 8
- Montar o projeto de testes deste módulo → 8