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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. public class DotnetInteractiveStdioKernelConnectorTests : IDisposable
  11. {
  12. private string _workingDir;
  13. private Kernel kernel;
  14. public DotnetInteractiveStdioKernelConnectorTests(ITestOutputHelper output)
  15. {
  16. _workingDir = Path.Combine(Path.GetTempPath(), "test", Path.GetRandomFileName());
  17. if (!Directory.Exists(_workingDir))
  18. {
  19. Directory.CreateDirectory(_workingDir);
  20. }
  21. kernel = DotnetInteractiveKernelBuilder
  22. .CreateKernelBuilder(_workingDir)
  23. .RestoreDotnetInteractive()
  24. .AddPythonKernel("python3")
  25. .BuildAsync().Result;
  26. }
  27. [Fact]
  28. public async Task ItAddCSharpKernelTestAsync()
  29. {
  30. var csharpCode = """
  31. #r "nuget:Microsoft.ML, 1.5.2"
  32. var str = "Hello" + ", World!";
  33. Console.WriteLine(str);
  34. """;
  35. var result = await this.kernel.RunSubmitCodeCommandAsync(csharpCode, "csharp");
  36. result.Should().Contain("Hello, World!");
  37. }
  38. [Fact]
  39. public async Task ItAddPowershellKernelTestAsync()
  40. {
  41. var powershellCode = @"
  42. Write-Host 'Hello, World!'
  43. ";
  44. var result = await this.kernel.RunSubmitCodeCommandAsync(powershellCode, "pwsh");
  45. result.Should().Contain("Hello, World!");
  46. }
  47. [Fact]
  48. public async Task ItAddFSharpKernelTestAsync()
  49. {
  50. var fsharpCode = """
  51. printfn "Hello, World!"
  52. """;
  53. var result = await this.kernel.RunSubmitCodeCommandAsync(fsharpCode, "fsharp");
  54. result.Should().Contain("Hello, World!");
  55. }
  56. [Fact]
  57. public async Task ItAddPythonKernelTestAsync()
  58. {
  59. var pythonCode = """
  60. %pip install numpy
  61. str = 'Hello' + ', World!'
  62. print(str)
  63. """;
  64. var result = await this.kernel.RunSubmitCodeCommandAsync(pythonCode, "python");
  65. result.Should().Contain("Hello, World!");
  66. }
  67. public void Dispose()
  68. {
  69. this.kernel.Dispose();
  70. }
  71. }