You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Math.Test.cs 2.3 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using Tensorflow;
  7. using Tensorflow.NumPy;
  8. namespace TensorFlowNET.UnitTest.NumPy
  9. {
  10. /// <summary>
  11. /// https://numpy.org/doc/stable/reference/generated/numpy.prod.html
  12. /// </summary>
  13. [TestClass]
  14. public class MathTest : EagerModeTestBase
  15. {
  16. [TestMethod]
  17. public void prod()
  18. {
  19. var p = np.prod(1.0, 2.0);
  20. Assert.AreEqual(p, 2.0);
  21. p = np.prod(new[,] { { 1.0, 2.0 }, { 3.0, 4.0 } });
  22. Assert.AreEqual(p, 24.0);
  23. p = np.prod(new[,] { { 1.0, 2.0 }, { 3.0, 4.0 } }, axis: 1);
  24. Assert.AreEqual(p.shape, 2);
  25. Assert.IsTrue(Equal(p.ToArray<double>(), new[] { 2.0, 12.0 }));
  26. }
  27. [TestMethod]
  28. public void astype()
  29. {
  30. var x = np.array(new byte[] { 1, 100, 200 });
  31. var x1 = x.astype(np.float32);
  32. Assert.AreEqual(x1[2], 200f);
  33. }
  34. [TestMethod]
  35. public void divide()
  36. {
  37. var x = np.array(new float[] { 1, 100, 200 });
  38. var y = x / 2;
  39. Assert.AreEqual(y.dtype, np.float32);
  40. }
  41. [TestMethod]
  42. public void sin()
  43. {
  44. var x = np.sin(np.pi / 2);
  45. Assert.AreEqual(x, 1d);
  46. }
  47. [TestMethod]
  48. public void cos()
  49. {
  50. var x = np.cos(np.pi / 2);
  51. Assert.AreEqual(x, 6.123233995736766e-17);
  52. }
  53. [TestMethod]
  54. public void power()
  55. {
  56. var x = np.arange(6);
  57. var y = np.power(x, 3);
  58. Assert.AreEqual(y, new[] { 0, 1, 8, 27, 64, 125 });
  59. }
  60. [TestMethod]
  61. public void maximum()
  62. {
  63. var x1 = new NDArray(new[,] { { 1, 2, 3 }, { 4, 5.1, 6 } });
  64. var x2 = new NDArray(new[,] { { 3, 2, 1 }, { 6, 5.1, 4 } });
  65. var y = np.maximum(x1,x2);
  66. var y1 = np.maximum(x1, x2, axis: 0);
  67. var y2 = new NDArray(new[,] { { 3, 2, 3 }, { 6, 5.1, 6 } });
  68. var y3 = new NDArray(new[] { 6, 5.1, 6 });
  69. Assert.AreEqual(y, y2);
  70. Assert.AreEqual(y1, y3);
  71. }
  72. }
  73. }