コード例 #1
0
        public void GetAllZodiacSignsForYinYang_Yin_Test()
        {
            var symbols   = ChineseZodiac.GetAllZodiacSignsForYinYang(YinYang.Yin);
            var snakeSign = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Snake.ToString());

            Assert.NotNull(snakeSign);
        }
コード例 #2
0
        public void GetZodiacSign_Monkey_Test()
        {
            var symbols = ChineseZodiac.GetZodiacSign(ChineseZodiacSigns.Monkey);

            Assert.Equal("hóu", symbols.ZodiacName);
            Assert.Equal("Monkey", symbols.ZodiacEnglishTranslation);
            Assert.Equal("Monkey people are very funny. They can always make others laugh & are good problem solvers.", symbols.ZodiacPersonality);
        }
コード例 #3
0
        public void GetZodiacSign_Dog_Test()
        {
            var symbols = ChineseZodiac.GetZodiacSign(ChineseZodiacSigns.Dog);

            Assert.Equal("gòu", symbols.ZodiacName);
            Assert.Equal("Dog", symbols.ZodiacEnglishTranslation);
            Assert.Equal("Dog people are loyal & can always keep a secret. Sometimes they worry too much.", symbols.ZodiacPersonality);
        }
コード例 #4
0
        public void ChineseZodiacTest(int year, ChineseZodiac zodiac)
        {
            var x = new DateTime(year, 7, 19).GetChineseZodiac();

            _output.WriteLine("{0}, {1}, {2}", year, zodiac, x);

            Assert.True(x == zodiac);
        }
コード例 #5
0
ファイル: ListOperationModel.cs プロジェクト: tibiz15/Lab4_v3
 public static List <Person> IsChineseZodiac(List <Person> persons, ChineseZodiac check, bool not)
 {
     if (not)
     {
         return(persons.Where(person => !person.ChineseSign.Equals(check.ToString())).ToList());
     }
     return(persons.Where(person => person.ChineseSign.Equals(check.ToString())).ToList());
 }
コード例 #6
0
ファイル: ChineseZodiacTests.cs プロジェクト: ssfcultra/Katas
 public void ChineseZodiacTest1()
 {
     Assert.AreEqual("Wood Snake", ChineseZodiac.GetChineseZodiac(1965));
     Assert.AreEqual("Earth Tiger", ChineseZodiac.GetChineseZodiac(1938));
     Assert.AreEqual("Earth Tiger", ChineseZodiac.GetChineseZodiac(1998));
     Assert.AreEqual("Fire Monkey", ChineseZodiac.GetChineseZodiac(2016));
     Assert.AreEqual("Wood Rat", ChineseZodiac.GetChineseZodiac(1924));
     Assert.AreEqual("Earth Monkey", ChineseZodiac.GetChineseZodiac(1968));
     Assert.AreEqual("Water Dog", ChineseZodiac.GetChineseZodiac(2162));
 }
コード例 #7
0
        public void GetAllZodiacSignsForAnElement_Fire_Test()
        {
            var symbols     = ChineseZodiac.GetAllZodiacSignsForAnElement(ChineseZodiacElements.Fire);
            var snakeAnimal = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Snake.ToString());
            var horseAnimal = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Horse.ToString());

            Assert.Equal(2, symbols.Count);
            Assert.NotNull(snakeAnimal);
            Assert.NotNull(horseAnimal);
        }
コード例 #8
0
ファイル: Person.cs プロジェクト: AlexFry123/CsLaboratory2-3
 public Person(string name, string surname, string email, DateTime birthdate)
 {
     Name        = name;
     Surname     = surname;
     Email       = email;
     BirthDate   = birthdate;
     isAdult     = Adult(BirthDate);
     sunSign     = ChooseSign(BirthDate);
     chineseSign = CalcChineseZodiac(BirthDate);
     isBirthday  = Birthday(BirthDate);
 }
コード例 #9
0
ファイル: ListOperationModel.cs プロジェクト: tibiz15/Lab4_v3
        static private int ChinseToInt(String str)
        {
            ChineseZodiac.TryParse(str, true, out ChineseZodiac z);
            int val = (int)z;

            if (val < 4)
            {
                val += 15;
            }
            return(val);
        }
コード例 #10
0
        public void GetAllZodiacSignsForAnElement_Earth_Test()
        {
            var symbols      = ChineseZodiac.GetAllZodiacSignsForAnElement(ChineseZodiacElements.Earth);
            var oxAnimal     = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Ox.ToString());
            var dragonAnimal = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Dragon.ToString());
            var goatAnimal   = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Goat.ToString());
            var dogAnimal    = symbols.FirstOrDefault(s => s.ZodiacEnglishTranslation == ChineseZodiacSigns.Dog.ToString());

            Assert.Equal(4, symbols.Count);
            Assert.NotNull(oxAnimal);
            Assert.NotNull(dragonAnimal);
            Assert.NotNull(goatAnimal);
            Assert.NotNull(dogAnimal);
        }
コード例 #11
0
        /// <summary>
        /// Contains basic example usage scenarios.
        /// </summary>
        public static void ShowZodiacBasicExamples()
        {
            var allFireChineseSigns = ChineseZodiac.GetAllZodiacSignsForAnElement(ChineseZodiacElements.Fire);

            Console.WriteLine($"\nGet a list of all Chinese zodiac signs that are associated with {ChineseZodiacElements.Fire}");
            foreach (var currentZodiacSign in allFireChineseSigns)
            {
                Console.WriteLine($"-\t{currentZodiacSign.ZodiacEnglishTranslation}");
            }

            var dragonZodiacSign = ChineseZodiac.GetZodiacSign(ChineseZodiacSigns.Dragon);

            Console.WriteLine($"\nPersonality trait for {ChineseZodiacSigns.Dragon} people: {dragonZodiacSign.ZodiacPersonality}");

            var zodiacSignFor2018 = ChineseZodiac.GetChineseZodiacElementBasedOnYear(2018);

            Console.WriteLine($"\nChinese zodiac element for 2018 is {zodiacSignFor2018}");

            var zodiacSignForDate = ChineseZodiac.GetZodiacSignForDate(new DateTime(1966, 2, 12));

            Console.WriteLine($"\nChinese zodiac sign for {new DateTime(1966, 2, 12).ToShortDateString()} is {zodiacSignForDate.ZodiacEnglishTranslation}");

            // Another option would be:
            var givenDate         = new DateTime(1995, 8, 26);
            var anotherZodiacSign = givenDate.GetChineseZodiacSign();

            Console.WriteLine($"\nChinese zodiac sign for {givenDate.ToShortDateString()} is {anotherZodiacSign.ZodiacEnglishTranslation}");

            var allChineseZodiacSigns = ChineseZodiac.GetAllZodiacSigns();

            Console.WriteLine($"\nGet a list of all Chinese zodiac signs");
            foreach (var currentZodiacSign in allChineseZodiacSigns)
            {
                Console.WriteLine($"-\t{currentZodiacSign.ZodiacName} - {currentZodiacSign.ZodiacEnglishTranslation}");
            }

            var allChineseZodiacSignsYin = ChineseZodiac.GetAllZodiacSignsForYinYang(YinYang.Yin);

            Console.WriteLine($"\nGet a list of all Chinese zodiac signs associated with {YinYang.Yin}");
            foreach (var currentZodiacSign in allChineseZodiacSignsYin)
            {
                Console.WriteLine($"-\t{currentZodiacSign.ZodiacName} - {currentZodiacSign.ZodiacEnglishTranslation}");
            }
        }
コード例 #12
0
        public async Task <IActionResult> GetGalasByZodiacAsync(
            [FromRoute] ChineseZodiac zodiac,
            CancellationToken token = default)
        {
            _logger.LogDebug("GetGalasByZodiacAsync");

            if (!ModelState.IsValid)
            {
                return(BadRequest(new ErrorResponse.BadRequest(ModelState)));
            }

            var galasEntities = await _galaRepository.GetGalaEntityListByZodiacAsync(
                zodiac,
                token);

            return(Ok(new Response <IList <GalaViewModel> >(galasEntities
                                                            .Select(galaEntity => _mapper.Map <GalaViewModel>(galaEntity))
                                                            .ToList())));
        }
コード例 #13
0
 public DateOfBirth(ref DateTime birthDate)
 {
     Birthday(ref birthDate);
     try
     {
         _age = ChooseAge(ref birthDate);
     } catch (ArgumentException argEx)
     {
         MessageBox.Show(argEx.Message);
         birthDate = new DateTime(2000, 2, 12);
         _age      = ChooseAge(ref birthDate);
     }
     catch (ArithmeticException arithEx)
     {
         MessageBox.Show(arithEx.Message);
         birthDate = new DateTime(2000, 2, 12);
         _age      = ChooseAge(ref birthDate);
     }
     finally
     {
         _zodiacWestern = ChooseSign(ref birthDate);
         _zodiacChinese = CalcChineseZodiac(ref birthDate);
     }
 }
コード例 #14
0
        public void GetChineseZodiacElementBasedOnYear_Test(int year, ChineseZodiacElements expectedZodiacElement)
        {
            var actualZodiacElement = ChineseZodiac.GetChineseZodiacElementBasedOnYear(year);

            Assert.Equal(expectedZodiacElement, actualZodiacElement);
        }
コード例 #15
0
        public void GetZodiacSignForDate_Test(int year, string zodiacSign)
        {
            var symbol = ChineseZodiac.GetZodiacSignForDate(new DateTime(year, 4, 1));

            Assert.Equal(zodiacSign, symbol.ZodiacEnglishTranslation);
        }
コード例 #16
0
 /// <summary>
 /// Initialise une nouvelle instance de la classe <see cref="AndChineseZodiac"/>.
 /// </summary>
 /// <param name="parent">Elément de syntax parent.</param>
 /// <param name="value">Animal du Zodiac Chinois.</param>
 public AndChineseZodiac(ExpressionElement parent, ChineseZodiac value) : base(parent) => Value = value;
コード例 #17
0
        private static ChineseZodiac AnalizeChineseZodiac(DateTime date)
        {
            // змінна знаку зодіаку
            ChineseZodiac zodiac = default;

            // конвертуємо перерахунки в масив
            var sign = Enum
                       .GetValues(typeof(ChineseZodiac))
                       .Cast <ChineseZodiac>()
                       .ToArray();

            #region Explain
            // алгоритм доволы простий
            // якщо уважно глянути, то знакыв всього 12,
            // і вони періодично змінюються кожного року
            // якщо не вдаватися в деталі крайніх чисел і приймати
            // знак знюється з 1 січня і триває до 31 грудня
            // то цей алгоритм схожий на визначення парності числа
            // а тому після знаходження залишку від діленння року на 12
            // можна визначити якого китайського знаку зодіаку людина родилася
            #endregion

            // залишок від ділення
            int mod = date.Year % 12;

            switch (mod)
            {
            case 0:
                // Мавпа
                zodiac = sign[8];
                break;

            case 1:
                // Півень
                zodiac = sign[9];
                break;

            case 2:
                // Собака
                zodiac = sign[10];
                break;

            case 3:
                // Свиня
                zodiac = sign[11];
                break;

            case 4:
                // Щур/миша
                zodiac = sign[0];
                break;

            case 5:
                // Бик
                zodiac = sign[1];
                break;

            case 6:
                // Тигр
                zodiac = sign[2];
                break;

            case 7:
                // Кролик
                zodiac = sign[3];
                break;

            case 8:
                // Дракон
                zodiac = sign[4];
                break;

            case 9:
                // Змія
                zodiac = sign[5];
                break;

            case 10:
                // Кінь
                zodiac = sign[6];
                break;

            case 11:
                // Вівця/коза
                zodiac = sign[7];
                break;
            }

            return(zodiac);
        }
コード例 #18
0
        public void GetAllZodiacSigns_Test()
        {
            var symbols = ChineseZodiac.GetAllZodiacSigns();

            Assert.Equal(12, symbols.Count);
        }
コード例 #19
0
        public void GetZodiacSign_YinYang_Yang_Test(ChineseZodiacSigns chineseZodiacSigns)
        {
            var symbols = ChineseZodiac.GetZodiacSign(chineseZodiacSigns);

            Assert.Equal(YinYang.Yang, symbols.ZodiacYinYang);
        }
コード例 #20
0
 /// <summary>
 /// Get the Chinese zodiac sign for the supplied date.
 /// </summary>
 /// <param name="dateTime">The date you want to query.</param>
 /// <returns>Returns a Chinese zodiac sign object.</returns>
 public static ChineseZodiacModel GetChineseZodiacSign(this DateTime dateTime) => ChineseZodiac.GetZodiacSignForDate(dateTime);