NumberFormaterTest.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Masuit.Tools.Strings;
  2. using Xunit;
  3. namespace Masuit.Tools.Test
  4. {
  5. public class NumberFormaterTest
  6. {
  7. [Theory]
  8. [InlineData(2, 16, "10000")]
  9. [InlineData(8, 8, "10")]
  10. [InlineData(16, 16, "10")]
  11. [InlineData(36, 36, "10")]
  12. [InlineData(62, 62, "10")]
  13. public void Can_ConvertOct2AnySystem(int bin, long input, string expectOutput)
  14. {
  15. var nf = new NumberFormater(bin);
  16. string output = nf.ToString(input);
  17. Assert.Equal(expectOutput, output);
  18. }
  19. [Theory]
  20. [InlineData(2, "10000", 16)]
  21. [InlineData(8, "10", 8)]
  22. [InlineData(16, "10", 16)]
  23. [InlineData(36, "10", 36)]
  24. [InlineData(62, "10", 62)]
  25. public void Can_ConvertAnySystem2Oct(int bin, string input, long expected)
  26. {
  27. var nf = new NumberFormater(bin);
  28. string output = nf.ToString(expected);
  29. Assert.Equal(input, output);
  30. }
  31. [Fact]
  32. public void Can_ConvertAnyNum2Chinese()
  33. {
  34. // arrange
  35. double num = 1234567809.321;
  36. // act
  37. var chineseNumber = NumberFormater.ToChineseNumber(num);
  38. // assert
  39. Assert.Equal("十二亿三千四百五十六万七千八百零九点三二一", chineseNumber);
  40. }
  41. [Fact]
  42. public void Can_ConvertAnyNum2ChineseMoney()
  43. {
  44. // arrange
  45. double num = 123456789.321;
  46. // act
  47. var chineseNumber = NumberFormater.ToChineseMoney(num);
  48. // assert
  49. Assert.Equal("壹億贰仟叁佰肆拾伍萬陆仟柒佰捌拾玖元叁角贰分", chineseNumber);
  50. }
  51. }
  52. }