|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Tensorflow;
-
- namespace TensorFlowNET.UnitTest.ops_test
- {
- /// <summary>
- /// excerpt of tensorflow/python/framework/ops_test.py
- /// </summary>
- [TestClass]
- public class GraphTest : PythonTest
- {
-
- [TestInitialize]
- public void SetUp()
- {
- ops.reset_default_graph();
- }
-
- [TestCleanup]
- public void TearDown()
- {
- ops.reset_default_graph();
- }
-
- private void _AssertDefault(Graph expected) {
- Assert.AreSame(ops.get_default_graph(), expected);
- }
-
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testResetDefaultGraphNesting()
- {
- /*
- def testResetDefaultGraphNesting(self):
- g0 = ops.Graph()
- with self.assertRaises(AssertionError):
- with g0.as_default():
- ops.reset_default_graph()
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testGraphContextManagerCancelsEager()
- {
- /*
- def testGraphContextManagerCancelsEager(self):
- with context.eager_mode():
- with ops.Graph().as_default():
- self.assertFalse(context.executing_eagerly())
- */
- }
-
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testGraphContextManager()
- {
- /*
- def testGraphContextManager(self):
- g0 = ops.Graph()
- with g0.as_default() as g1:
- self.assertIs(g0, g1)
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testDefaultGraph()
- {
- /*
- def testDefaultGraph(self):
- orig = ops.get_default_graph()
- self._AssertDefault(orig)
- g0 = ops.Graph()
- self._AssertDefault(orig)
- context_manager_0 = g0.as_default()
- self._AssertDefault(orig)
- with context_manager_0 as g0:
- self._AssertDefault(g0)
- with ops.Graph().as_default() as g1:
- self._AssertDefault(g1)
- self._AssertDefault(g0)
- self._AssertDefault(orig)
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testPreventFeeding()
- {
- /*
- def testPreventFeeding(self):
- g = ops.Graph()
- a = constant_op.constant(2.0)
- self.assertTrue(g.is_feedable(a))
- g.prevent_feeding(a)
- self.assertFalse(g.is_feedable(a))
- */
- }
-
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testAsGraphElementConversions()
- {
- /*
- def testAsGraphElementConversions(self):
-
- class ConvertibleObj(object):
-
- def _as_graph_element(self):
- return "FloatOutput:0"
-
- class NonConvertibleObj(object):
-
- pass
-
- g = ops.Graph()
- a = _apply_op(g, "FloatOutput", [], [dtypes.float32])
- self.assertEqual(a, g.as_graph_element(ConvertibleObj()))
- with self.assertRaises(TypeError):
- g.as_graph_element(NonConvertibleObj())
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testGarbageCollected()
- {
- /*
- # Regression test against creating custom __del__ functions in classes
- # involved in cyclic references, e.g. Graph and Operation. (Python won't gc
- # cycles that require calling a __del__ method, because the __del__ method can
- # theoretically increase the object's refcount to "save" it from gc, and any
- # already-deleted objects in the cycle would have be to restored.)
- def testGarbageCollected(self):
- # Create a graph we can delete and a weak reference to monitor if it's gc'd
- g = ops.Graph()
- g_ref = weakref.ref(g)
- # Create some ops
- with g.as_default():
- a = constant_op.constant(2.0)
- b = constant_op.constant(3.0)
- c = math_ops.add(a, b)
- # Create a session we can delete
- with session.Session(graph=g) as sess:
- self.evaluate(c)
- # Delete all references and trigger gc
- del g
- del a
- del b
- del c
- del sess
- gc.collect()
- self.assertIsNone(g_ref())
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testRunnableAfterInvalidShape()
- {
- /*
- def testRunnableAfterInvalidShape(self):
- with ops.Graph().as_default():
- with self.assertRaises(ValueError):
- math_ops.add([1, 2], [1, 2, 3])
- a = constant_op.constant(1)
- with session.Session() as sess:
- self.evaluate(a)
- */
- }
-
- [Ignore("Todo: Port")]
- [TestMethod]
- public void testRunnableAfterInvalidShapeWithKernelLabelMap()
- {
- /*
- def testRunnableAfterInvalidShapeWithKernelLabelMap(self):
- g = ops.Graph()
- with g.as_default():
- with g._kernel_label_map({"KernelLabelRequired": "overload_1"}):
- with self.assertRaises(ValueError):
- test_ops.kernel_label_required(1)
- a = constant_op.constant(1)
- with session.Session() as sess:
- self.evaluate(a)
- */
- }
-
-
- }
- }
|