Wes xx mediapipe integration
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
// Copyright (c) 2021 homuler
|
||||
//
|
||||
// Use of this source code is governed by an MIT-style
|
||||
// license that can be found in the LICENSE file or at
|
||||
// https://opensource.org/licenses/MIT.
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Mediapipe.Tests
|
||||
{
|
||||
public class CalculatorGraphTest
|
||||
{
|
||||
private const string _ValidConfigText = @"node {
|
||||
calculator: ""PassThroughCalculator""
|
||||
input_stream: ""in""
|
||||
output_stream: ""out1""
|
||||
}
|
||||
node {
|
||||
calculator: ""PassThroughCalculator""
|
||||
input_stream: ""out1""
|
||||
output_stream: ""out""
|
||||
}
|
||||
input_stream: ""in""
|
||||
output_stream: ""out""
|
||||
";
|
||||
|
||||
#region Constructor
|
||||
[Test]
|
||||
public void Ctor_ShouldInstantiateCalculatorGraph_When_CalledWithNoArguments()
|
||||
{
|
||||
Assert.DoesNotThrow(() =>
|
||||
{
|
||||
var graph = new CalculatorGraph();
|
||||
graph.Dispose();
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Ctor_ShouldInstantiateCalculatorGraph_When_CalledWithConfigText()
|
||||
{
|
||||
using (var graph = new CalculatorGraph(_ValidConfigText))
|
||||
{
|
||||
var config = graph.Config();
|
||||
Assert.AreEqual("in", config.InputStream[0]);
|
||||
Assert.AreEqual("out", config.OutputStream[0]);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region #isDisposed
|
||||
[Test]
|
||||
public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet()
|
||||
{
|
||||
using (var graph = new CalculatorGraph())
|
||||
{
|
||||
Assert.False(graph.isDisposed);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed()
|
||||
{
|
||||
var graph = new CalculatorGraph();
|
||||
graph.Dispose();
|
||||
|
||||
Assert.True(graph.isDisposed);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region #Initialize
|
||||
[Test]
|
||||
public void Initialize_ShouldReturnOk_When_CalledWithConfig_And_ConfigIsNotSet()
|
||||
{
|
||||
using (var graph = new CalculatorGraph())
|
||||
{
|
||||
using (var status = graph.Initialize(CalculatorGraphConfig.Parser.ParseFromTextFormat(_ValidConfigText)))
|
||||
{
|
||||
Assert.True(status.Ok());
|
||||
}
|
||||
|
||||
var config = graph.Config();
|
||||
Assert.AreEqual("in", config.InputStream[0]);
|
||||
Assert.AreEqual("out", config.OutputStream[0]);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Initialize_ShouldReturnInternalError_When_CalledWithConfig_And_ConfigIsSet()
|
||||
{
|
||||
using (var graph = new CalculatorGraph(_ValidConfigText))
|
||||
{
|
||||
using (var status = graph.Initialize(CalculatorGraphConfig.Parser.ParseFromTextFormat(_ValidConfigText)))
|
||||
{
|
||||
Assert.AreEqual(Status.StatusCode.Internal, status.Code());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Initialize_ShouldReturnOk_When_CalledWithConfigAndSidePacket_And_ConfigIsNotSet()
|
||||
{
|
||||
using (var sidePacket = new SidePacket())
|
||||
{
|
||||
sidePacket.Emplace("flag", new BoolPacket(true));
|
||||
|
||||
using (var graph = new CalculatorGraph())
|
||||
{
|
||||
var config = CalculatorGraphConfig.Parser.ParseFromTextFormat(_ValidConfigText);
|
||||
|
||||
using (var status = graph.Initialize(config, sidePacket))
|
||||
{
|
||||
Assert.True(status.Ok());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Initialize_ShouldReturnInternalError_When_CalledWithConfigAndSidePacket_And_ConfigIsSet()
|
||||
{
|
||||
using (var sidePacket = new SidePacket())
|
||||
{
|
||||
sidePacket.Emplace("flag", new BoolPacket(true));
|
||||
|
||||
using (var graph = new CalculatorGraph(_ValidConfigText))
|
||||
{
|
||||
var config = CalculatorGraphConfig.Parser.ParseFromTextFormat(_ValidConfigText);
|
||||
|
||||
using (var status = graph.Initialize(config, sidePacket))
|
||||
{
|
||||
Assert.AreEqual(Status.StatusCode.Internal, status.Code());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region lifecycle
|
||||
[Test]
|
||||
public void LifecycleMethods_ShouldControlGraphLifeCycle()
|
||||
{
|
||||
using (var graph = new CalculatorGraph(_ValidConfigText))
|
||||
{
|
||||
Assert.True(graph.StartRun().Ok());
|
||||
Assert.False(graph.GraphInputStreamsClosed());
|
||||
|
||||
Assert.True(graph.WaitUntilIdle().Ok());
|
||||
Assert.True(graph.CloseAllPacketSources().Ok());
|
||||
Assert.True(graph.GraphInputStreamsClosed());
|
||||
Assert.True(graph.WaitUntilDone().Ok());
|
||||
Assert.False(graph.HasError());
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Cancel_ShouldCancelGraph()
|
||||
{
|
||||
using (var graph = new CalculatorGraph(_ValidConfigText))
|
||||
{
|
||||
Assert.True(graph.StartRun().Ok());
|
||||
graph.Cancel();
|
||||
Assert.AreEqual(Status.StatusCode.Cancelled, graph.WaitUntilDone().Code());
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user