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.

DotnetInteractiveStdioKernelConnectorTests.cs 2.4 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // DotnetInteractiveStdioKernelConnectorTests.cs
  3. using AutoGen.DotnetInteractive.Extension;
  4. using FluentAssertions;
  5. using Microsoft.DotNet.Interactive;
  6. using Xunit;
  7. using Xunit.Abstractions;
  8. namespace AutoGen.DotnetInteractive.Tests;
  9. [Collection("Sequential")]
  10. [Trait("Category", "UnitV1Kernel")]
  11. public class DotnetInteractiveStdioKernelConnectorTests : IDisposable
  12. {
  13. private string _workingDir;
  14. private Kernel kernel;
  15. public DotnetInteractiveStdioKernelConnectorTests(ITestOutputHelper output)
  16. {
  17. _workingDir = Path.Combine(Path.GetTempPath(), "test", Path.GetRandomFileName());
  18. if (!Directory.Exists(_workingDir))
  19. {
  20. Directory.CreateDirectory(_workingDir);
  21. }
  22. kernel = DotnetInteractiveKernelBuilder
  23. .CreateKernelBuilder(_workingDir)
  24. .RestoreDotnetInteractive()
  25. .AddPythonKernel("python3")
  26. .BuildAsync().Result;
  27. }
  28. [Fact]
  29. public async Task ItAddCSharpKernelTestAsync()
  30. {
  31. var csharpCode = """
  32. #r "nuget:Microsoft.ML, 1.5.2"
  33. var str = "Hello" + ", World!";
  34. Console.WriteLine(str);
  35. """;
  36. var result = await this.kernel.RunSubmitCodeCommandAsync(csharpCode, "csharp");
  37. result.Should().Contain("Hello, World!");
  38. }
  39. [Fact]
  40. public async Task ItAddPowershellKernelTestAsync()
  41. {
  42. var powershellCode = @"
  43. Write-Host 'Hello, World!'
  44. ";
  45. var result = await this.kernel.RunSubmitCodeCommandAsync(powershellCode, "pwsh");
  46. result.Should().Contain("Hello, World!");
  47. }
  48. [Fact]
  49. public async Task ItAddFSharpKernelTestAsync()
  50. {
  51. var fsharpCode = """
  52. printfn "Hello, World!"
  53. """;
  54. var result = await this.kernel.RunSubmitCodeCommandAsync(fsharpCode, "fsharp");
  55. result.Should().Contain("Hello, World!");
  56. }
  57. [Fact]
  58. public async Task ItAddPythonKernelTestAsync()
  59. {
  60. var pythonCode = """
  61. %pip install numpy
  62. str = 'Hello' + ', World!'
  63. print(str)
  64. """;
  65. var result = await this.kernel.RunSubmitCodeCommandAsync(pythonCode, "python");
  66. result.Should().Contain("Hello, World!");
  67. }
  68. public void Dispose()
  69. {
  70. this.kernel.Dispose();
  71. }
  72. }