<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <!-- Enable all optional code analyzers -->
    <AnalysisMode>All</AnalysisMode>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <!-- Warnings that are suppressed for the entire assembly.
         Unlike the core assembly, feel free to add to this list,
         as long as the analyzer is not flagging an issue with
         the testing logic. -->
    <NoWarn>
      CA1032; <!-- standard exception constructors missing -->
      CA1064; <!-- exception class is not public -->
      CA1707; <!-- no underscores in type names -->
      CA1711; <!-- improper suffix in type name -->
      CA1851; <!-- possible multiple enumerations -->
      CA1852; <!-- class can be sealed -->
    </NoWarn>
    <IsPackable>false</IsPackable>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>

  <ItemGroup>
    <!-- We need the following three dependencies to support unit testing -->
    <!-- This dependency provides the test runner -->
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
    <!-- This dependency provideds the xunit annotations and assertions -->
    <PackageReference Include="xunit.v3" Version="2.0.3" />
    <!-- This depenedency connects xunit to the test runner for both dotnet CLI and IDEs -->
    <PackageReference Include="xunit.runner.visualstudio" Version="3.1.1" />

    <!-- This dependency provides code coverage analysis -->
    <PackageReference Include="coverlet.collector" Version="6.0.4">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>

    <ProjectReference Include="../Cantera/Cantera.csproj" />

    <Content Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />

    <Using Include="Xunit" />
  </ItemGroup>

</Project>
