コード例 #1
0
        static async Task RunAsync()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:1961/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                // HTTP GET
                HttpResponseMessage response = await client.GetAsync("api/pets");

                if (response.IsSuccessStatusCode)
                {
                    Pets[] pets = await response.Content.ReadAsAsync <Pets[]>();

                    foreach (Pets pet in pets)
                    {
                        Console.WriteLine("{0}\t{1}\t{2}", pet.ID, pet.Name, pet.Birthday.ToString());
                    }
                    response = await client.GetAsync("api/pets/{D1CDA7F6-7539-46B1-A4C5-F593CA8D2D8F}");

                    if (response.IsSuccessStatusCode)
                    {
                        var result = await response.Content.ReadAsAsync <Pets>();
                    }
                }
                else
                {
                    Console.WriteLine("Not successful: {0}, {1}", response.RequestMessage.RequestUri, response.ReasonPhrase);
                }
                // HTTP POST
                Pets cat = new Pets()
                {
                    ID = Guid.NewGuid(), Name = "Oliver", Birthday = new DateTime(2008, 4, 15)
                };
                var json = new JavaScriptSerializer().Serialize(cat);
                response = await client.PostAsJsonAsync("api/pets", json);

                if (response.IsSuccessStatusCode)
                {
                    Console.WriteLine("Post succeeded");
                }
                else
                {
                    Console.WriteLine("Post failed");
                }

                response = await client.GetAsync("api/weather");

                if (response.IsSuccessStatusCode)
                {
                    WeatherSample sample = await response.Content.ReadAsAsync <WeatherSample>();

                    if (sample is WeatherSample)
                    {
                        Console.WriteLine("Get WeatherSample succeeded");
                    }
                }
            }
        }
コード例 #2
0
        public void GroupCwTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 120,
                winterRainfall: 10,
                summerTemp: 15,
                winterTemp: 2,
                hottestTemp: 16,
                coldestTemp: 1
                );

            Assert.IsTrue(Koppen.KoppenClassifier.Classify(sample).StartsWith("Cw"), sample.ToString());

            var wrongRainRatioSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 90,
                winterRainfall: 20,
                summerTemp: 15,
                winterTemp: 2,
                hottestTemp: 16,
                coldestTemp: 1
                );

            Assert.IsFalse(Koppen.KoppenClassifier.Classify(wrongRainRatioSample).StartsWith("Cw"), wrongRainRatioSample.ToString());
        }
コード例 #3
0
        public void EFTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: -1,
                winterTemp: -1,
                hottestTemp: -1,
                coldestTemp: -1
                );

            Assert.AreEqual("EF", Koppen.KoppenClassifier.Classify(sample));

            var cuspSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 0,
                winterTemp: 0,
                hottestTemp: 0,
                coldestTemp: 0
                );

            Assert.AreNotEqual("EF", Koppen.KoppenClassifier.Classify(cuspSample));
        }
コード例 #4
0
        public void GroupCTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 42,
                winterRainfall: 42,
                summerTemp: 15,
                winterTemp: 2,
                hottestTemp: 16,
                coldestTemp: 1
                );

            Assert.IsTrue(Koppen.KoppenClassifier.Classify(sample).StartsWith("C"), sample.ToString());

            var tooColdSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 42,
                winterRainfall: 42,
                summerTemp: 12,
                winterTemp: 2,
                hottestTemp: 12,
                coldestTemp: -1
                );

            Assert.IsFalse(Koppen.KoppenClassifier.Classify(tooColdSample).StartsWith("C"), tooColdSample.ToString());
        }
コード例 #5
0
        public override Task <WeatherSample> GetWeatherSamples(WeatherRequest request, ServerCallContext context)
        {
            var sample = new WeatherSample()
            {
                Time = Timestamp.FromDateTime(DateTime.UtcNow)
            };

            for (var x = 0; x < 5; ++x)
            {
                sample.Samples.Add(GenerateResult());
            }

            return(Task.FromResult(sample));
        }
コード例 #6
0
        public void ETTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 5,
                winterTemp: -10,
                hottestTemp: 6,
                coldestTemp: -10
                );

            Assert.AreEqual("ET", Koppen.KoppenClassifier.Classify(sample));

            var lowCuspSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 0,
                winterTemp: 0,
                hottestTemp: 0,
                coldestTemp: 0
                );

            Assert.AreEqual("ET", Koppen.KoppenClassifier.Classify(lowCuspSample));

            var highCuspSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 9,
                winterTemp: 9,
                hottestTemp: 9,
                coldestTemp: 9
                );

            Assert.AreEqual("ET", Koppen.KoppenClassifier.Classify(highCuspSample));

            var overCuspSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: 10
                );

            Assert.AreNotEqual("ET", Koppen.KoppenClassifier.Classify(overCuspSample));
        }
コード例 #7
0
        public void GroupDsdTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 20,
                winterRainfall: 61,
                summerTemp: 9,
                winterTemp: -20,
                hottestTemp: 10,
                coldestTemp: -38
                );

            Assert.AreEqual("Dsd", Koppen.KoppenClassifier.Classify(sample), sample.ToString());
        }
コード例 #8
0
        public void GroupDfTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 30,
                winterRainfall: 30,
                summerTemp: -1,
                winterTemp: 2,
                hottestTemp: 16,
                coldestTemp: 1
                );

            Assert.IsTrue(Koppen.KoppenClassifier.Classify(sample).StartsWith("Df"), sample.ToString());
        }
コード例 #9
0
        public void GroupCsbTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 20,
                winterRainfall: 61,
                summerTemp: 18,
                winterTemp: 2,
                hottestTemp: 17,
                coldestTemp: 1
                );

            Assert.AreEqual("Csb", Koppen.KoppenClassifier.Classify(sample), sample.ToString());
        }
コード例 #10
0
        public void GroupAmTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 120,
                winterRainfall: 58,
                summerTemp: 18,
                winterTemp: 18,
                hottestTemp: 18,
                coldestTemp: 18
                );

            Assert.AreEqual("Am", Koppen.KoppenClassifier.Classify(sample), sample.ToString());
        }
コード例 #11
0
        public void LegalRangeTest()
        {
            const byte RainMin = 0;
            const byte RainMax = 201;

            const short TempMin = -45;
            const short TempMax = 46;

            for (var summerRainfall = RainMin;
                 summerRainfall < RainMax;
                 summerRainfall++)
            {
                for (var winterRainfall = RainMin;
                     winterRainfall < RainMax;
                     winterRainfall++)
                {
                    for (var hottestTemp = TempMin;
                         hottestTemp < TempMax;
                         hottestTemp++)
                    {
                        for (var coldestTemp = TempMin;
                             coldestTemp < TempMax;
                             coldestTemp++)
                        {
                            var sample = new WeatherSample(
                                hemisphere: Hemisphere.North,
                                summerRainfall: summerRainfall,
                                winterRainfall: summerRainfall,
                                summerTemp: hottestTemp,
                                winterTemp: coldestTemp,
                                hottestTemp: hottestTemp,
                                coldestTemp: coldestTemp
                                );

                            Assert.DoesNotThrow(
                                () => KoppenClassifier.Classify(sample));
                        }
                    }
                }
            }
        }
コード例 #12
0
        public void GroupBTest()
        {
            var sample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 0,
                winterRainfall: 0,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: 10
                );

            Assert.IsTrue(Koppen.KoppenClassifier.Classify(sample).StartsWith("B"));

            var desertSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 7,
                winterRainfall: 3,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: 10
                );

            Assert.AreEqual("BWh",
                            Koppen.KoppenClassifier.Classify(desertSample), desertSample.ToString());

            var steppeSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 29,
                winterRainfall: 13,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: 10
                );

            Assert.AreEqual("BSh",
                            Koppen.KoppenClassifier.Classify(steppeSample), steppeSample.ToString());

            var desertColdSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 7,
                winterRainfall: 3,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: -1
                );

            Assert.AreEqual("BWk",
                            Koppen.KoppenClassifier.Classify(desertColdSample), desertColdSample.ToString());

            var steppeColdSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 29,
                winterRainfall: 13,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: -1
                );

            Assert.AreEqual("BSk",
                            Koppen.KoppenClassifier.Classify(steppeColdSample), steppeColdSample.ToString());

            var steppeCuspSample = new WeatherSample(
                hemisphere: Hemisphere.North,
                summerRainfall: 29,
                winterRainfall: 13,
                summerTemp: 10,
                winterTemp: 10,
                hottestTemp: 10,
                coldestTemp: 10
                );

            Assert.AreEqual("BSh",
                            Koppen.KoppenClassifier.Classify(steppeCuspSample), steppeCuspSample.ToString());
        }