static ImprovementsById CreateImprovementsById(BuildingsById byBuildingId)
        {
            var byImprovementId = new ImprovementsById();

            foreach (var improvements in byBuildingId)
            {
                foreach (var improvement in improvements.Value)
                {
                    if (!byImprovementId.ContainsKey(improvement.Key))
                    {
                        byImprovementId[improvement.Key] = new BuildingResults();
                    }
                    byImprovementId[improvement.Key].Add(improvements.Key, improvement.Value);
                }
            }
            return(byImprovementId);
        }
        static BuildingsById CreateTestBuildingsById()
        {
            var byBuildingId = new BuildingsById();

            for (int buildingKey = 1000; buildingKey < 2000; ++buildingKey)
            {
                var improvements = new ImprovementResults();
                for (int improvementKey = 5000; improvementKey < 5030; ++improvementKey)
                {
                    improvements.Add
                    (
                        new ImprovementId(improvementKey),
                        new Result
                    {
                        Data = buildingKey + improvementKey / 1000.0
                    }
                    );
                }
                byBuildingId.Add(new BuildingId(buildingKey), improvements);
            }
            return(byBuildingId);
        }