private void WriteSummary(SummaryAnalyzer otherAnalyzer, StreamWriter writer)
        {
            writer.WriteLine("Current Execution Log = {0}", m_analyzer.ExecutionLogPath);
            writer.WriteLine("Previous Execution Log: {0}", otherAnalyzer.ExecutionLogPath);
            writer.WriteLine("Number of Process Pips :  {0}", m_analyzer.GetProcessPipCount());
            writer.WriteLine("Number of executed Process Pips :  {0}", m_analyzer.GetExecutedProcessPipCount());

            var fileDependencyDiff = SummaryAnalyzer.GetFileDependencyDiff(m_analyzer.Summary.FileArtifactSummary, otherAnalyzer.Summary.FileArtifactSummary);

            writer.WriteLine("Number of dependency files with mismatch hash : {0}", fileDependencyDiff.Count());

            var observedDiff = SummaryAnalyzer.GetFileDependencyDiff(m_analyzer.Summary.ObservedSummary, otherAnalyzer.Summary.ObservedSummary);

            writer.WriteLine("Number of observed inputs with mismatch hash : {0}", observedDiff.Count());

            if (m_analyzer.Summary.DirectoryMembership.Count == 0 || otherAnalyzer.Summary.DirectoryMembership.Count == 0)
            {
                var fileName = m_analyzer.Summary.DirectoryMembership.Count == 0 ? m_analyzer.ExecutionLogPath : otherAnalyzer.ExecutionLogPath;
                writer.WriteLine("No directory membership event in execution log : {0}", fileName);
            }
            else
            {
                var directoryMembershipNotInTwo = SummaryAnalyzer.GetDirectoryMembershipDiff(m_analyzer.Summary.DirectoryMembership, otherAnalyzer.Summary.DirectoryMembership);
                var directoryMembershipNotInOne = SummaryAnalyzer.GetDirectoryMembershipDiff(otherAnalyzer.Summary.DirectoryMembership, m_analyzer.Summary.DirectoryMembership);
                writer.WriteLine("Number of directory membership differences : {0}", directoryMembershipNotInTwo.Count() + directoryMembershipNotInOne.Count);
            }

            int produced = m_analyzer.GetProducedFileCount();
            var cached   = m_analyzer.GetCachedFileCount();
            var upToDate = m_analyzer.GetUpToDateFileCount();

            writer.WriteLine("Current XLG Output Files : {0}/{1}/{2}(Produced/FromCache/UpToDate)", produced, cached, upToDate);

            produced = otherAnalyzer.GetProducedFileCount();
            cached   = otherAnalyzer.GetCachedFileCount();
            upToDate = otherAnalyzer.GetUpToDateFileCount();
            writer.WriteLine("Previous XLG Output Files : {0}/{1}/{2}(Produced/FromCache/UpToDate)", produced, cached, upToDate);
            writer.WriteLine();
        }