public void TabSectionDeclarationAndImplementationsTestMethod()
        {
            ITablatureRepository             _repository;
            IEnumerable <Guid>               implementationIds;
            IEnumerable <SectionDeclaration> _tabSectionDeclarations;

            try
            {
                _repository = new TablatureRepository(_fileDirectory);

                foreach (Guid witnessTabId in _GUITAR_WITNESS_TAB_IDS)
                {
                    // List section declaration

                    _tabSectionDeclarations = _repository.ListSectionDeclarations(witnessTabId);

                    // List section implementations

                    implementationIds = _repository.ListSectionImplementationIds(witnessTabId);

                    // Check count coherence

                    Assert.IsNotNull(_tabSectionDeclarations);
                    Assert.IsNotNull(implementationIds);

                    Assert.AreNotEqual <int>(0, _tabSectionDeclarations.Count());
                    Assert.AreNotEqual <int>(0, implementationIds.Count());

                    Assert.AreEqual <int>(_tabSectionDeclarations.Count(), implementationIds.Count());

                    // Check ids coherence

                    foreach (Guid sectionId in _tabSectionDeclarations.Select(x => x.Id))
                    {
                        Assert.IsTrue(implementationIds.Contains(sectionId));
                    }
                }
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
            finally
            {
                _repository             = null;
                implementationIds       = null;
                _tabSectionDeclarations = null;
            }
        }