dmitry-merzlyakov / nledger

.Net Ledger: Double-Entry Accounting System
Other
182 stars 51 forks source link

dotnet version #25

Closed spaette closed 1 year ago

spaette commented 1 year ago

README.md

System Requirements

dotnet-sdk-6.0.405-linux-x64.tar.gz

This is not a feature request.

Is .NET 6.0 known to satisfy the dotnet requirement?

/opt/microsoft/dotnet/

Is making a first time run of dotnet indicated for the purpose of user setup?

pwsh -file ./get-nledger-up.ps1 -install -Verbose

The above command returned the following; am I missing something administratively regarding the dotnet setup?

Resource temporarily unavailable (api.nuget.org:443)
dmitry-merzlyakov commented 1 year ago

Hi @spaette

There are several points in the answer, let me try to get all of them together.

Basically, there are no limitations on which target platform to run NLedger. The core library is built as a standard 2.0 dll, so, for development purposes, it can be linked to any .Net project targeted any frameworks.

However, in regard to the executable file - it is currently targeted .Net Core 3.1. So, if you want to build and run NLedger as it is right now, without making any changes in project files - you should have .Net Core 3.1 installed on your system (of course, I mean non-Windows systems).

I quickly verified that NLedger properly works with net6 (branch https://github.com/dmitry-merzlyakov/nledger/commits/next-dev-0.8.5-net6). I changed targets to net48/net60 and rebuilt - all tests passed. The only correction in tests was about .Net integration (it was affected by changes in class location in core libs); I made it compatible with all frameworks.

However, all auxiliary Powershell scripts needs to be corrected as well - there are many hard-coded references to core 3.1. I think they need to be conceptually reworked: I'd would add ability to build binaries to any target by an input parameter - so that the end user can decide which framework version to use, and which target to specify for NLedger. I am going to add these changes soon - at least, to dev branch.

Therefore:

And, the final point regarding "Resource temporarily unavailable" - I feel like that dotnet build tried to download .net core 3.1 sdk but was not able to do so. It is likely and administrative issue. Another possibility - it tried to download .Net Framework files to build net45 target - try to build with "coreOnly" switch.

Thanks!

spaette commented 1 year ago

Don't spend time with the code on my behalf.

Here's the output if it's of any interest on your end.

try to build with "coreOnly" switch

$ ed -s nledger/get-nledger-up.ps1 <<<'31,33p'
    PS> ./get-nledger-up.ps1 -coreOnly
    Create .Net Core binaries only.
    Note: this switch is set automatically on non-windows platforms.
$ 

I have not attempted using that switch; according to the above comment it is automatically set.

powershell-7.3.1-linux-x64.tar.gz dotnet-sdk-3.1.426-linux-x64.tar.gz

the /etc/profile.d file was sourced as no reboot was performed after installing dotnet-sdk

$ cat /etc/profile.d/dotnet.sh
#!/bin/sh
export DOTNET_ROOT=/opt/microsoft/dotnet
$ . /etc/profile.d/dotnet.sh
$ cd /tmp
$ git clone -q https://github.com/dmitry-merzlyakov/nledger
$ cd nledger
$ pwsh -file ./get-nledger-tools.ps1 -pythonConnect

Settings file (/home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml) is updated
NLedger Python connection is active (Settings file: /home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml)

$ 

Resultant of the above command these new files were created.

$ ls -l ~/.cache/powershell
total 84
-rw-r--r-- 1 soeren soeren  1146 Jan 19 14:11 ModuleAnalysisCache-377AC5E6
-rw-r--r-- 1 soeren soeren 76208 Jan 19 14:11 StartupProfileData-NonInteractive
-rw-r--r-- 1 soeren soeren    16 Jan 19 14:11 telemetry.uuid
$ ls -l ~/.local/share/NLedger
total 4
-rw-r--r-- 1 soeren soeren 346 Jan 19 14:11 NLedger.Extensibility.Python.settings.xml
$ ls -l ~/.local/share/powershell
total 4
drwxr-xr-x 2 soeren soeren 4096 Jan 19 14:11 Modules
$ 

The content of NLedger.Extensibility.Python.settings.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!--NLedger Python Integration Settings-->
<nledger-python-settings>
  <py-executable>/usr/bin/python3</py-executable>
  <py-dll>Traceback (most recent call last):
  File "&lt;string&gt;", line 1, in &lt;module&gt;
ModuleNotFoundError: No module named 'find_libpython'</py-dll>
</nledger-python-settings>

Resultant of running the following command ~/.dotnet, ~/.nuget and ~/.local/share/NuGet, directories were created.

$ pwsh -file ./get-nledger-up.ps1 -install -Verbose
VERBOSE: Detected: is windows platform=False; is OSX platform: False                                                    
VERBOSE: Detected: dotnet version=3.1.426                                                                               
VERBOSE: Since it is not windows platform, switch 'coreOnly' is changed to 'True'.                                      
VERBOSE: Expected solution path: /tmp/nledger/Source/NLedger.sln                                                        
VERBOSE: Expected NLTest path: /tmp/nledger/Contrib/NLTestToolkit/NLTest.ps1                                            
VERBOSE: Checking NLedger Python extension settings...                                                                  
VERBOSE: GetPythonEnvironment's test-connection returned: <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">   <Obj RefId="0">     <TN RefId="0">       <T>System.Management.Automation.PSCustomObject</T>       <T>System.Object</T>     </TN>     <MS>       <B N="IsConnectionValid">true</B>       <B N="IsWheelInstalled">false</B>       <B N="IsPythonNetInstalled">false</B>     </MS>   </Obj> </Objs>
VERBOSE: Build sources command line: dotnet build '/tmp/nledger/Source/NLedger.sln' /p:CoreOnly=True --configuration Release
VERBOSE:                                                                                                                
VERBOSE: Welcome to .NET Core 3.1!                                                                                      
VERBOSE: ---------------------                                                                                          
VERBOSE: SDK Version: 3.1.426                                                                                           
VERBOSE:                                                                                                                
VERBOSE: Telemetry                                                                                                      
VERBOSE: ---------                                                                                                      
VERBOSE: The .NET Core tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
VERBOSE:                                                                                                                
VERBOSE: Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry                             
VERBOSE:                                                                                                                
VERBOSE: ----------------                                                                                               
VERBOSE: Explore documentation: https://aka.ms/dotnet-docs                                                              
VERBOSE: Report issues and find source on GitHub: https://github.com/dotnet/core                                        
VERBOSE: Find out what's new: https://aka.ms/dotnet-whats-new                                                           
VERBOSE: Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https                               
VERBOSE: Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs                         
VERBOSE: Write your first app: https://aka.ms/first-net-core-app                                                        
VERBOSE: --------------------------------------------------------------------------------------                         
VERBOSE: Microsoft (R) Build Engine version 16.7.3+2f374e28e for .NET                                                   
VERBOSE: Copyright (C) Microsoft Corporation. All rights reserved.                                                      
VERBOSE:                                                                                                                
VERBOSE:   Determining projects to restore...                                                                           
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/xunit.extensibility.execution/index.json'.
VERBOSE:   The SSL connection could not be established, see inner exception.                                            
VERBOSE:     Unable to read data from the transport connection: Connection reset by peer.                               
VERBOSE:     Connection reset by peer                                                                                   
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/xunit.assert/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Failed to download package 'System.Reflection.Emit.4.3.0' from 'https://api.nuget.org/v3-flatcontainer/system.reflection.emit/4.3.0/system.reflection.emit.4.3.0.nupkg'.
VERBOSE:   The download of 'https://api.nuget.org/v3-flatcontainer/system.reflection.emit/4.3.0/system.reflection.emit.4.3.0.nupkg' timed out because no data was received for 60000ms.
VERBOSE:     Exception of type 'System.TimeoutException' was thrown.                                                    
VERBOSE:   Failed to download package 'Microsoft.TestPlatform.TestHost.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/16.5.0/microsoft.testplatform.testhost.16.5.0.nupkg'.
VERBOSE:   The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/16.5.0/microsoft.testplatform.testhost.16.5.0.nupkg' timed out because no data was received for 60000ms.
VERBOSE:     Exception of type 'System.TimeoutException' was thrown.                                                    
VERBOSE:   Failed to download package 'Microsoft.TestPlatform.TestHost.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/16.5.0/microsoft.testplatform.testhost.16.5.0.nupkg'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Failed to download package 'System.Security.Permissions.4.4.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.4.0/system.security.permissions.4.4.0.nupkg'.
VERBOSE:   The download of 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.4.0/system.security.permissions.4.4.0.nupkg' timed out because no data was received for 60000ms.
VERBOSE:     Exception of type 'System.TimeoutException' was thrown.                                                    
VERBOSE:   Failed to download package 'Microsoft.CodeCoverage.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/16.5.0/microsoft.codecoverage.16.5.0.nupkg'.
VERBOSE:   The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/16.5.0/microsoft.codecoverage.16.5.0.nupkg' timed out because no data was received for 60000ms.
VERBOSE:     Exception of type 'System.TimeoutException' was thrown.                                                    
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'Microsoft.TestPlatform.TestHost.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/16.5.0/microsoft.testplatform.testhost.16.5.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE:   Failed to download package 'System.Security.Permissions.4.4.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.4.0/system.security.permissions.4.4.0.nupkg'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Failed to download package 'Microsoft.CodeCoverage.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/16.5.0/microsoft.codecoverage.16.5.0.nupkg'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'System.Security.Permissions.4.4.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.4.0/system.security.permissions.4.4.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'Microsoft.CodeCoverage.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/16.5.0/microsoft.codecoverage.16.5.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/system.threading.tasks/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/system.text.encoding/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE:   Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json'.
VERBOSE:   Resource temporarily unavailable                                                                             
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : The feed 'nuget.org [https://api.nuget.org/v3/index.json]' lists package 'Microsoft.TestPlatform.TestHost.16.5.0' but multiple attempts to download the nupkg have failed. The feed is either invalid or required packages were removed while the current operation was in progress. Verify the package exists on the feed and try again. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error :   Unable to find package 'Microsoft.TestPlatform.TestHost.16.5.0'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE:                                                                                                                
VERBOSE: Build FAILED.                                                                                                  
VERBOSE:                                                                                                                
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'Microsoft.TestPlatform.TestHost.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.testhost/16.5.0/microsoft.testplatform.testhost.16.5.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'System.Security.Permissions.4.4.0' from 'https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.4.0/system.security.permissions.4.4.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Failed to download package 'Microsoft.CodeCoverage.16.5.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/16.5.0/microsoft.codecoverage.16.5.0.nupkg'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : Resource temporarily unavailable [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error : The feed 'nuget.org [https://api.nuget.org/v3/index.json]' lists package 'Microsoft.TestPlatform.TestHost.16.5.0' but multiple attempts to download the nupkg have failed. The feed is either invalid or required packages were removed while the current operation was in progress. Verify the package exists on the feed and try again. [/tmp/nledger/Source/NLedger.sln]
VERBOSE: /opt/microsoft/dotnet/sdk/3.1.426/NuGet.targets(128,5): error :   Unable to find package 'Microsoft.TestPlatform.TestHost.16.5.0'. [/tmp/nledger/Source/NLedger.sln]
VERBOSE:     0 Warning(s)                                                                                               
VERBOSE:     4 Error(s)                                                                                                 
VERBOSE:                                                                                                                
VERBOSE: Time Elapsed 00:03:59.25                                                                                       
Exception: Build failed for some reason. Run this script again with '-Verbose' to get more information about the cause. 
$ 
dmitry-merzlyakov commented 1 year ago

Hi @spaette

I planned to clean up the helper scripts anyway, so getting started is no problem. You just reminded me that it had to be done :)

In regard to your issue: it definitely looks like some kind of limitation on your machine - all errors are related to Nuget attempts to download packages:

VERBOSE: Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/xunit.extensibility.execution/index.json'. VERBOSE: The SSL connection could not be established, see inner exception.
VERBOSE: Unable to read data from the transport connection: Connection reset by peer.
VERBOSE: Connection reset by peer

VERBOSE: Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/xunit.assert/index.json'. VERBOSE: Resource temporarily unavailable

Basically, it is not related to the Powershell scripts; this output is result of .Net build work. For ease of troubleshooting, I would recommend building with dotnet commands. I have just checked this way on Ubuntu 20.04 (3.1.401 and 6.0.405 SDKs installed; you can check your SDKs with "dotnet --info" command):

The build finished without errors, so interaction with Nuget repository generally works well. You will likely get errors like above because of local connection issues. If you manage them and get successful dotnet build - I believe that "normal" Powershell build will go well also.

Thanks. Dmitry

spaette commented 1 year ago

https://download.visualstudio.microsoft.com/download/pr/e89c4f00-5cbb-4810-897d-f5300165ee60/027ace0fdcfb834ae0a13469f0b1a4c8/dotnet-sdk-3.1.426-linux-x64.tar.gz

"dotnet --info" command

$ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.426
 Commit:    e81f6c8565

Runtime Environment:
 OS Name:     slackware
 OS Version:  15.0
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /opt/microsoft/dotnet/sdk/3.1.426/

Host (useful for support):
  Version: 3.1.32
  Commit:  f94bb2c3ff

.NET Core SDKs installed:
  3.1.426 [/opt/microsoft/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.32 [/opt/microsoft/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.32 [/opt/microsoft/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
$ 

Ubuntu 20.04

I have access to a Debian 11.1 box but I don't see a reason why the dotnet-sdk download used would respond any differently.

"dotnet build" command

$ echo $DOTNET_ROOT
/opt/microsoft/dotnet
$ cd /tmp          
$ git clone -q https://github.com/dmitry-merzlyakov/nledger
$ cd nledger/Source && dotnet build

Welcome to .NET Core 3.1!
---------------------
SDK Version: 3.1.426

Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Find out what's new: https://aka.ms/dotnet-whats-new
Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Write your first app: https://aka.ms/first-net-core-app
--------------------------------------------------------------------------------------
Microsoft (R) Build Engine version 16.7.3+2f374e28e for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  Restored /tmp/nledger/Source/NLedger/NLedger.csproj (in 18.35 sec).
  Restored /tmp/nledger/Source/NLedger.CLI/NLedger.CLI.csproj (in 18.36 sec).
  Restored /tmp/nledger/Source/NLedger.Extensibility.Python/NLedger.Extensibility.Python.csproj (in 18.35 sec).
  Restored /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/NLedger.Extensibility.Python.Tests.csproj (in 31.28 sec).
  Restored /tmp/nledger/Source/NLedger.IntegrationTests/NLedger.IntegrationTests.csproj (in 12.88 sec).
  Restored /tmp/nledger/Source/NLedger.Tests/NLedger.Tests.csproj (in 12.87 sec).
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.IntegrationTests/NLedger.IntegrationTests.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.5.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.Tests/NLedger.Tests.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.5 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger/NLedger.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.CLI/NLedger.CLI.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.Extensibility.Python.Tests/NLedger.Extensibility.Python.Tests.csproj]
  NLedger -> /tmp/nledger/Source/NLedger/bin/Debug/netstandard2.0/NLedger.dll
  NLedger.Extensibility.Python -> /tmp/nledger/Source/NLedger.Extensibility.Python/bin/Debug/netstandard2.0/NLedger.Extensibility.Python.dll
  NLedger.Tests -> /tmp/nledger/Source/NLedger.Tests/bin/Debug/netcoreapp3.1/NLedger.Tests.dll
  NLedger.Extensibility.Python.Tests -> /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/bin/Debug/netcoreapp3.1/NLedger.Extensibility.Python.Tests.dll
  NLedger.CLI -> /tmp/nledger/Source/NLedger.CLI/bin/Debug/netcoreapp3.1/NLedger-cli.dll
  NLedger.IntegrationTests -> /tmp/nledger/Source/NLedger.IntegrationTests/bin/Debug/netcoreapp3.1/NLedger.IntegrationTests.dll

Build FAILED.

/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.IntegrationTests/NLedger.IntegrationTests.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.5.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.Tests/NLedger.Tests.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.5 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger/NLedger.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.CLI/NLedger.CLI.csproj]
/opt/microsoft/dotnet/sdk/3.1.426/Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: The reference assemblies for .NETFramework,Version=v4.7.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [/tmp/nledger/Source/NLedger.Extensibility.Python.Tests/NLedger.Extensibility.Python.Tests.csproj]
    0 Warning(s)
    5 Error(s)

Time Elapsed 00:00:59.58
$ 
spaette commented 1 year ago

9pc (blog Post)

this is some other C# code I found of interest

spaette commented 1 year ago

planned to clean up

Eventually I could submit a PR fixing these typos.

$ grep -nr Legder nledger
nledger/Build/NLedgerWix/Product_en-us.wxl:20:   <String Id="SetupConsoleFeature_Desc">Command line console that manages .Net Legder settings (Powershell is required)</String>
$ grep -nr Optinal nledger
nledger/Source/NLedger/Utility/Settings/CascadeSettings/Sources/EnvironmentVariablesSettingsSource.cs:26:        /// <param name="namePrefix">Optinal filtering prefix for setting names</param>
$ grep -nr Paraneter nledger
nledger/Source/NLedger.Extensibility.Python.Module/build.ps1:62:    if (!(Test-Path -LiteralPath $Script:settingsFileName -PathType Leaf)) { throw "Paraneter pyExecutable is not specified and file '$($Script:settingsFileName)' not found. Either specify pyExecutable parameter or create NLedger Python connection file" }
$ grep -nr Popupates nledger
nledger/Source/NLedger/Utility/Settings/NLedgerConfiguration.cs:64:        /// Popupates the main application context with effective settings for a console application
$ grep -nr Porrted nledger
nledger/Source/NLedger/Post.cs:247:        /// Porrted from post_t::value_date()
nledger/Source/NLedger/Scopus/SymbolScope.cs:20:    /// Porrted from symbol_scope_t
nledger/Source/NLedger/Commodities/CommodityPool.cs:23:    /// Porrted from cost_breakdown_t
nledger/Source/NLedger/Commodities/CommodityHistory.cs:22:    /// Porrted from commodity_history_t
$ grep -nr Portd nledger
nledger/Source/NLedger/Utility/ErrorContext.cs:120:        /// Portd from warning_func
$ grep -nr "Porte " nledger
nledger/Source/NLedger/Journals/Journal.cs:479:        /// Porte from void journal_t::register_metadata(const string& key
$ grep -nr "Powershel " nledger
nledger/Build/NLedgerWix/InstallerScripts.vbs:3:' Shows a warning message that Powershel is not installed
$ grep -nr Priviledges nledger
nledger/Contrib/Install/SysNGen.psm1:24:function Test-AdministrativePriviledges {
nledger/Contrib/Install/SysNGen.psm1:58:    return $Script:isWindowsPlatform -and (Test-AdministrativePriviledges) -and (Get-InstalledNGens)
$ grep -nr Qunatity nledger
nledger/Source/NLedger.Tests/BigIntTests.cs:22:    // See Amount.cs for further information about Qunatity Arithmetics in NLedger
$ grep -nr Sequenece nledger
nledger/Source/NLedger/Values/ValueError.cs:20:        public const string ValueException_NotASequence = "Not A Sequenece";
$ grep -nr Simluate nledger
nledger/Contrib/Extras/cat.cmd:1:@rem Simluate "cat" command on Windows environment
$ grep -nr Uniinstalling nledger
nledger/Contrib/Install/NLInstall.psm1:127:    Write-Verbose "Uniinstalling NLedger path $($info.Path)"
$ grep -nr accorrding nledger
nledger/Source/NLedger.Tests/Amounts/AmountTests.cs:286:            Assert.False(amountA.IsZero);  // The value is rounded to 0.01 accorrding to Commodity precision
$ grep -nr addiing nledger
nledger/get-nledger-tools.ps1:7:        1) Installing and uninstalling NLedger (that means addiing to PATH variable, creating 'ledger' hard link and some other activities);
$ grep -nr adminidstrative nledger
nledger/Contrib/NLManagement/NLSetup.Console.ps1:243:    Default: False. Indicates that the current scope is Application. You must have adminidstrative priviledges.
nledger/Contrib/NLManagement/NLSetup.Console.ps1:290:    Default: False. Indicates that the current scope is Application. You must have adminidstrative priviledges.
$ grep -nr annotized nledger
nledger/Source/NLedger/Iterators/GeneratePostsIterator.cs:260:            // Possibly generate an annotized commodity, but make it rarer
$ grep -nr colorizatiion nledger
nledger/Contrib/NLManagement/NLCommon.psm1:192:    Input string that can contain colorizatiion tokens.
$ grep -nr commant nledger
nledger/Source/NLedger/Abstracts/IQuoteProvider.cs:25:        /// <param name="command">A commant that requests a quote in Ledger format (getquote "[commodity]" "[optional exchange commodity]")</param>
$ grep -nr coontains nledger
nledger/get-nledger-tools.ps1:15:    If the current deployment coontains binaries for both platforms (.Net Framework and .Net Core) - installs .Net Framework binaries.
$ grep -nr critera nledger
nledger/Source/NLedger/Filters/ForecastPosts.cs:86:            // over and over, until each of them mets the termination critera for the
$ grep -nr efficiemt nledger
nledger/nledger.md:385:you can revert your changes and continue experimenting with it. So, it is some kind of a playground that let you learn NLedger features in easy and efficiemt way.
$ grep -nr expact nledger
nledger/Source/NLedger/Abstracts/IVirtualConsoleProvider.cs:62:        /// <param name="str">Text to expact</param>
$ grep -nr explicitely nledger
nledger/Source/NLedger.Extensibility.Python.Module/src/ledger/__init__.py:435:        raise Exception("Method 'get_origin' should be defined in derived class if 'origin' value is not specified explicitely.")
nledger/Source/NLedger.Extensibility.Python.Module/src/ledger/__init__.py:2751:            return Value.to_value(self.origin.ExchangeCommodities(commodities, False, DateTime())) # default(DateTime) caused PythonNet issued, so arguments are populated explicitely
nledger/Source/NLedger.Extensibility.Python.Module/build.ps1:8:    If build parameters are not specified explicitely, it discovers necessary information on the current environment.
nledger/Source/NLedger.Extensibility.Python.Tests/PythonModuleTests.cs:64:                        // it is necessary to run it explicitely (unittest.main(...)) specifying a test file name as a parameter
nledger/Contrib/Python/GetPythonEnvironment.ps1:406:- If 'path' parameter is specified, it uses the parameter value explicitely
$ grep -nr functinality nledger
nledger/Source/NLedger.Tests/Utility/ServiceAPI/ServiceAPIIntegrationTests.cs:213:            // It means that queried objects (posts in this example) are accessible, but provide limited functinality.
nledger/Source/NLedger.Tests/Utility/ServiceAPI/ServiceAPIIntegrationTests.cs:220:            // (at least, for a limited scoope like "using" below). In bounds of this scope, all NLedger functinality is available.
$ grep -nr indicater nledger
nledger/Contrib/NLManagement/NLCommon.psm1:156:# Helper method that print a structure indicater either success or failure
$ grep -nr interatively nledger
nledger/get-nledger-tools.ps1:33:    Runs NLedger demo web application where you can observe documentation and interatively run described commands.
$ grep -nr lengthes nledger
nledger/Source/NLedger/Utility/AnsiTextWriter.cs:264:                        throw new InvalidOperationException("Unbalanced sequence lengthes");
$ grep -nr marging nledger
nledger/Contrib/NLTestToolkit/NLTest.xslt:28:          pre.content { word-wrap:break-word; margin-top:0px; margin-bottom:0px; marging-left:2px; margin-right:2px; }
$ grep -nr memoment nledger
nledger/CHANGELOG.md:113:*None* public bug fixing requests at the memoment.
$ grep -nr numberic nledger
nledger/Source/NLedger/Extensibility/Export/FlagsConverter.cs:18:    /// This is a generic converter that presents Boolean-property flags in a source data object as numberic bit flags.
$ grep -nr occured nledger
nledger/Source/NLedger/Abstracts/Impl/PagerProvider.cs:84:                Logger.Current.Debug("pager", () => String.Format("Error occured during pager execution: {0}", ex.Message));
$ grep -nr partucular nledger
nledger/Source/NLedger/Commodities/Commodity.cs:36:         * In partucular, its member "amounts" (typedef std::map<commodity_t *, amount_t> amounts_map)
$ grep -nr preferrable nledger
nledger/Source/NLedger.CLI/Program.cs:30:            var argString = CommandLineArgs.GetArguments(args); // This way is preferrable because of double quotas that are missed by using args
$ grep -nr priviledges nledger
nledger/Build/NLedgerBuild.ps1:156:     write-host -NoNewline "   all build steps with admin priviledges (testing is faster because of possibility to create native images);`r`n PS> "
nledger/Build/NLedgerBuild.ps1:164:     write-host -NoNewline "           compile, create a package and run Ledger tests. Does not require admin priviledges (longer testing time);`r`n PS> "
nledger/Build/NLedgerBuild.ps1:175:     write-host -NoNewline "`r`nNote: some build targets require administrative priviledges because they try to create NLedger native images by means of NGen."
nledger/Contrib/NLManagement/NLSetup.Console.ps1:40:  Write-Console "{c:gray}you must have administrative priviledges. Run this console as an administrator."
nledger/Contrib/NLManagement/NLSetup.Console.ps1:243:    Default: False. Indicates that the current scope is Application. You must have adminidstrative priviledges.
nledger/Contrib/NLManagement/NLSetup.Console.ps1:290:    Default: False. Indicates that the current scope is Application. You must have adminidstrative priviledges.
nledger/Contrib/Install/NLedger.Launcher.ps1:1:# This scripts runs the installer with elevated priviledges and keeps PS console open to let people read the status of installation activities.
nledger/Contrib/Install/NLedger.Install.ps1:10:         dramatically improves performance. Note: this action requires administrative priviledges.
$ grep -nr proviledges nledger
nledger/Build/NLedgerBuild.ps1:154:     write-host -NoNewline "            all build steps (compile, test, package). Does not require admin proviledges (longer build time);`r`n PS> "
nledger/Build/NLedgerBuild.ps1:166:     write-host -NoNewline "  compile, create a package and run Ledger tests. Requires admin proviledges (faster testing time);`r`n PS> "
$ grep -nr purppose nledger
nledger/Source/NLedger/Extensibility/SessionExtensions.cs:54:        /// The main purppose is to allow command execution in integration mode (when GlobalScope is not initialized).
nledger/Source/NLedger/Extensibility/SessionExtensions.cs:69:        /// The main purppose is to allow command execution in integration mode (when GlobalScope is not initialized).
$ grep -nr recomplile nledger
nledger/Source/NLedger/Utility/BigValues/BigDecimal.cs:23:    /// In this case, they may recomplile NLedger with BigDecimal and get the same functionality
$ grep -nr retrns nledger
nledger/Contrib/Install/SysPath.psm1:54:    Checks whether two paths are equal and retrns True or False. Properly manages relative and do-normalized paths.
$ grep -nr routinse nledger
nledger/Source/NLedger/Balance.cs:651:         * user.  Mostly used by `print' and other routinse where the sort
$ grep -nr scoope nledger
nledger/Source/NLedger.Tests/Utility/ServiceAPI/ServiceAPIIntegrationTests.cs:220:            // (at least, for a limited scoope like "using" below). In bounds of this scope, all NLedger functinality is available.
$ grep -nr searhing nledger
nledger/Contrib/Python/PyManagement.psm1:7:- Python-specific actions: searhing and discovering Python deployment details; managing Python modules by means of Pip;
$ grep -n sence nledger/Source/NLedger/Commodities/Commodity.cs
33:         * for default ordering of commodities. The previous considerations still make sence: changing SortedDictionary to Dictionary
$ grep -nr shoudl nledger
nledger/Source/NLedger/Extensibility/SessionExtensions.cs:51:        /// <param name="readJournalFiles">Optional flag indicating whether it shoudl read journal files before executing teh command</param>
nledger/Source/NLedger/Extensibility/SessionExtensions.cs:66:        /// <param name="readJournalFiles">Optional flag indicating whether it shoudl read journal files before executing teh command</param>
$ grep -nr significatnly nledger
nledger/Build/NLedgerBuild.ps1:176:     write-host -NoNewline "`r`nIt significatnly shortens testing time (from several minutes to tens of seconds)."
$ grep -n successfull nledger/Source/NLedger/Abstracts/IManPageProvider.cs
25:        /// <returns>Indicates whether the operation is successfull</returns>
$ grep -n successfull nledger/Source/NLedger.Tests/Scopus/OptionTests.cs
392:            Assert.Equal("true", option1.Value); // Indicates that the call was successfull
429:            Assert.True(option1.Handled); // Indicates that the call was successfull
$ grep -nr supresses nledger
nledger/Source/NLedger.Extensibility.Python.Tests/PythonModuleTests.cs:68:                        // exit=False - supresses exiting the current process when all tests are done
nledger/Source/NLedger.Extensibility.Python.Tests/PythonModuleTests.cs:69:                        // module=None - supresses module importing (basically, "main")
$ grep -nr vaule nledger
nledger/Source/NLedger/Converter.cs:109:            // Set the account to a default vaule, then transform the account according
$ 
dmitry-merzlyakov commented 1 year ago

Hi @spaette

Thanks for sharing your findings! No problem for me to make these corrections on my own; I think I will manage your list in a week or so. One only comment to your list: I do not make any changes in the original Ledger integration tests (/Contrib/test/ files) - I keep them as they are to let people make sure that NLedger functions are completely consistent to what Ledger provides. All other findings are valid and will be corrected.

Thank you!

spaette commented 1 year ago

accordingly some lines of grep output has been edited out of my previous comment

typos in bundled tests in part have been fixed upstream

spaette commented 1 year ago

I don't know if it was the WiFi I had been using.

ca-certificates-20220922-noarch-1_slack15.0.txz (removed package)

ca-certificates-20221205-noarch-2_slack15.0.txz

Yesterday I performed a system upgrade which included a newer ca-certificates package.

Incidentally, ^[[53;1R shows up in the output which probably shouldn't be there.

$ echo $DOTNET_ROOT
/opt/microsoft/dotnet
$ cd /tmp
$ git clone -q https://github.com/dmitry-merzlyakov/nledger
$ cd nledger
$ pwsh -file ./get-nledger-tools.ps1 -pythonConnect

Settings file (/home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml) is updated
NLedger Python connection is active (Settings file: /home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml)

$ pwsh -file ./get-nledger-up.ps1 -install -Verbose
VERBOSE: Detected: is windows platform=False; is OSX platform: False                                                    
VERBOSE: Detected: dotnet version=3.1.426                                                                               
VERBOSE: Since it is not windows platform, switch 'coreOnly' is changed to 'True'.                                      
VERBOSE: Expected solution path: /tmp/nledger/Source/NLedger.sln                                                        
VERBOSE: Expected NLTest path: /tmp/nledger/Contrib/NLTestToolkit/NLTest.ps1                                            
VERBOSE: Checking NLedger Python extension settings...                                                                  
VERBOSE: GetPythonEnvironment's test-connection returned: <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">   <Obj RefId="0">     <TN RefId="0">       <T>System.Management.Automation.PSCustomObjec
t</T>       <T>System.Object</T>     </TN>     <MS>       <B N="IsConnectionValid">true</B>       <B N="IsWheelInstalled">false</B>       <B N="IsPythonNetInstalled">false</B>     </MS>   </Obj> </Objs>
VERBOSE: Build sources command line: dotnet build '/tmp/nledger/Source/NLedger.sln' /p:CoreOnly=True --configuration Release
VERBOSE:                                                                                                                
VERBOSE: Welcome to .NET Core 3.1!                                                                                      
VERBOSE: ---------------------                                                                                          
VERBOSE: SDK Version: 3.1.426                                                                                           
VERBOSE:                                                                                                                
VERBOSE: Telemetry                                                                                                      
VERBOSE: ---------                                                                                                      
VERBOSE: The .NET Core tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT en
vironment variable to '1' or 'true' using your favorite shell.
VERBOSE:                                                                                                                
VERBOSE: Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry                             
VERBOSE:                                                                                                                
VERBOSE: ----------------                                                                                               
VERBOSE: Explore documentation: https://aka.ms/dotnet-docs                                                              
VERBOSE: Report issues and find source on GitHub: https://github.com/dotnet/core                                        
VERBOSE: Find out what's new: https://aka.ms/dotnet-whats-new                                                           
VERBOSE: Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https                               
VERBOSE: Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs                         
VERBOSE: Write your first app: https://aka.ms/first-net-core-app                                                        
VERBOSE: --------------------------------------------------------------------------------------                         
VERBOSE: Microsoft (R) Build Engine version 16.7.3+2f374e28e for .NET                                                   
VERBOSE: Copyright (C) Microsoft Corporation. All rights reserved.                                                      
VERBOSE:                                                                                                                
VERBOSE:   Determining projects to restore...                                                                           
VERBOSE:   Restored /tmp/nledger/Source/NLedger.CLI/NLedger.CLI.csproj (in 31.98 sec).                                  
VERBOSE:   Restored /tmp/nledger/Source/NLedger.Tests/NLedger.Tests.csproj (in 33.37 sec).                              
VERBOSE:   Restored /tmp/nledger/Source/NLedger.IntegrationTests/NLedger.IntegrationTests.csproj (in 33.37 sec).        
VERBOSE:   Restored /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/NLedger.Extensibility.Python.Tests.csproj (in 33.37 sec).
VERBOSE:   Restored /tmp/nledger/Source/NLedger/NLedger.csproj (in 2.94 sec).                                           
VERBOSE:   Restored /tmp/nledger/Source/NLedger.Extensibility.Python/NLedger.Extensibility.Python.csproj (in 1.71 sec). 
VERBOSE:   NLedger -> /tmp/nledger/Source/NLedger/bin/Release/netstandard2.0/NLedger.dll                                
VERBOSE:   NLedger.Extensibility.Python -> /tmp/nledger/Source/NLedger.Extensibility.Python/bin/Release/netstandard2.0/NLedger.Extensibility.Python.dll
VERBOSE:   NLedger.CLI -> /tmp/nledger/Source/NLedger.CLI/bin/Release/netcoreapp3.1/NLedger-cli.dll                     
VERBOSE:   NLedger.IntegrationTests -> /tmp/nledger/Source/NLedger.IntegrationTests/bin/Release/netcoreapp3.1/NLedger.IntegrationTests.dll
VERBOSE:   NLedger.Tests -> /tmp/nledger/Source/NLedger.Tests/bin/Release/netcoreapp3.1/NLedger.Tests.dll               
VERBOSE:   NLedger.Extensibility.Python.Tests -> /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/bin/Release/netcoreapp3.1/NLedger.Extensibility.Python.Tests.dll
VERBOSE:                                                                                                                
VERBOSE: Build succeeded.                                                                                               
VERBOSE:     0 Warning(s)                                                                                               
VERBOSE:     0 Error(s)                                                                                                 
VERBOSE:                                                                                                                
VERBOSE: Time Elapsed 00:00:47.72                                                                                       
VERBOSE: Run unit tests command line: dotnet test '/tmp/nledger/Source/NLedger.sln' /p:CoreOnly=True                    
VERBOSE: Test run for /tmp/nledger/Source/NLedger.Tests/bin/Debug/netcoreapp3.1/NLedger.Tests.dll(.NETCoreApp,Version=v3.1)
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE:   X NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [148ms]fNoFile [FAIL]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Assert.Throws() Failure                                                                                     
VERBOSE: Expected: typeof(NLedger.Textual.ParseError)                                                                   
VERBOSE: Actual:   typeof(NLedger.RuntimeError): No default scope in which to read journal file '/home/soeren/ledger'
VERBOSE: ---- NLedger.RuntimeError : No default scope in which to read journal file '/home/soeren/ledger'
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Journals.Journal.Read(ParseContextStack context) in /tmp/nledger/Source/NLedger/Journals/Journal.cs:line 292
VERBOSE:    at NLedger.Scopus.Session.ReadData(String masterAccount) in /tmp/nledger/Source/NLedger/Scopus/Session.cs:line 212
VERBOSE:    at NLedger.Tests.Scopus.SessionTests.<>c__DisplayClass2_0.<Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile>b__0() in /tmp/nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 
74
VERBOSE: ----- Inner Stack Trace -----                                                                                  
VERBOSE:    at NLedger.Journals.Journal.Read(ParseContextStack context) in /tmp/nledger/Source/NLedger/Journals/Journal.cs:line 292
VERBOSE:    at NLedger.Scopus.Session.ReadData(String masterAccount) in /tmp/nledger/Source/NLedger/Scopus/Session.cs:line 212
VERBOSE:    at NLedger.Tests.Scopus.SessionTests.<>c__DisplayClass2_0.<Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile>b__0() in /tmp/nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 
74
VERBOSE:                                                                                                                
VERBOSE: Total tests: 1197                                                                                              
VERBOSE:      Passed: 1196                                                                                              
VERBOSE:      Failed: 1                                                                                                 
VERBOSE:  Total time: 5.2586 Seconds                                                                                    
VERBOSE: Test run for /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/bin/Debug/netcoreapp3.1/NLedger.Extensibility.Python.Tests.dll(.NETCoreApp,Version=v3.1)
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
^[[53;1R[xUnit.net 00:00:00.95]     NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_ExprFunc_ReturnsValue [FAIL]
[xUnit.net 00:00:00.96]     NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_Constructor_PopulatesProperties [FAIL]
[xUnit.net 00:00:01.03]     NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession [FAIL]
[xUnit.net 00:00:01.03]     NLedger.Extensibility.Python.Tests.PythonModuleTests.PythonModule_ExecuteUnitTests [FAIL]
[xUnit.net 00:00:01.03]     NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetValue_Conversions [FAIL]
[xUnit.net 00:00:01.03]     NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetObject_Conversions [FAIL]
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE: Test run for /tmp/nledger/Source/NLedger.IntegrationTests/bin/Debug/netcoreapp3.1/NLedger.IntegrationTests.dll(.NETCoreApp,Version=v3.1)
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_ExprFunc_ReturnsValue [1ms]            
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonFunctorTests..ctor() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/PythonFunctorTests.cs:line 22
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_Constructor_PopulatesProperties [1ms]  
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.InvalidOperationException : Cannot acquire current thread because it has been already acquired       
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.MainApplicationContext.ThreadAcquirer..ctor(MainApplicationContext context) in /tmp/nledger/Source/NLedger/MainApplicationContext.cs:line 204
VERBOSE:    at NLedger.MainApplicationContext.AcquireCurrentThread() in /tmp/nledger/Source/NLedger/MainApplicationContext.cs:line 168
VERBOSE:    at NLedger.Tests.TestFixture.TestInitialize() in /tmp/nledger/Source/NLedger.Tests/TestFixture.cs:line 74   
VERBOSE:    at NLedger.Tests.TestFixture..ctor() in /tmp/nledger/Source/NLedger.Tests/TestFixture.cs:line 61            
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonFunctorTests..ctor() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/PythonFunctorTests.cs:line 19
VERBOSE:   X NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession [6ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.InvalidOperationException : Cannot acquire current thread because it has been already acquired       
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.MainApplicationContext.ThreadAcquirer..ctor(MainApplicationContext context) in /tmp/nledger/Source/NLedger/MainApplicationContext.cs:line 204
VERBOSE:    at NLedger.MainApplicationContext.AcquireCurrentThread() in /tmp/nledger/Source/NLedger/MainApplicationContext.cs:line 168
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceSession.InitializeSession(IEnumerable`1 args, CancellationToken token) in /tmp/nledger/Source/NLedger/Utility/ServiceAPI/ServiceSession.cs:line 84
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceSession..ctor(ServiceEngine serviceEngine, IEnumerable`1 args, String inputText, CancellationToken token) in /tmp/nledger/Source/NLedger/Utility/ServiceAPI/ServiceSession.cs:line
 37
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceEngine.CreatingSession(String args, String inputText, CancellationToken token) in /tmp/nledger/Source/NLedger/Utility/ServiceAPI/ServiceEngine.cs:line 87
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceEngine.CreateSession(String args, String inputText) in /tmp/nledger/Source/NLedger/Utility/ServiceAPI/ServiceEngine.cs:line 47
VERBOSE:    at NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/ServiceApiIntegrationTests.cs:line 54
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonModuleTests.PythonModule_ExecuteUnitTests [1ms]                   
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonModuleTests..ctor() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/PythonModuleTests.cs:line 27
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetValue_Conversions [1ms]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonValueConverterTests..ctor() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/PythonValueConverterTests.cs:line 30
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetObject_Conversions [1ms]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /tmp/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonValueConverterTests..ctor() in /tmp/nledger/Source/NLedger.Extensibility.Python.Tests/PythonValueConverterTests.cs:line 30
VERBOSE:                                                                                                                
VERBOSE: Total tests: 24                                                                                                
VERBOSE:      Passed: 18                                                                                                
VERBOSE:      Failed: 6                                                                                                 
VERBOSE:  Total time: 2.1611 Seconds                                                                                    
VERBOSE: Test case: file transaction-status-3.test; arguments: reg --columns=60 food --uncleared                        
VERBOSE: Test case: file transaction-notes-4.test; arguments: bal food and tag type --account='"Tags:" + tag("Type")'   
VERBOSE: Test case: file transaction-status-2.test; arguments: reg --columns=60 food --cleared                          
VERBOSE: Test case: file transaction-codes-2.test; arguments: bal checking --account=code                               
VERBOSE: Test case: file transaction-codes-1.test; arguments: reg --columns=60 food and code xfer                       
VERBOSE: Test case: file transaction-notes-1.test; arguments: reg --columns=60 food and note eat                        
VERBOSE: Test case: file transaction-notes-3.test; arguments: reg --columns=60 food and tag type=dining                 
VERBOSE: Test case: file transaction-status-4.test; arguments: reg --columns=60 food --pending                          
VERBOSE: Test case: file transaction-notes-2.test; arguments: reg --columns=60 food and tag eating                      
VERBOSE: Test case: file transaction-status-1.test; arguments: reg --columns=60 food                                    
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --auto-match convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --account Assets:Bank convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --auto-match --account Assets:Bank convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-uncleared.test; arguments: reg --uncleared                                                 
VERBOSE: Test case: file opt-plot-total-format.test; arguments: reg -J --plot-total-format='X %(format_date(date, "%Y-%m-%d")) Y %(quantity(scrub(display_amount)))\n'
VERBOSE: Test case: file opt-immediate.test; arguments: bal -V --unrealized                                             
VERBOSE: Test case: file opt-immediate.test; arguments: bal -V --immediate                                              
VERBOSE: Test case: file opt-immediate.test; arguments: reg -V --immediate                                              
VERBOSE: Test case: file opt-amount.test; arguments: reg --amount=10                                                    
VERBOSE: Test case: file opt-no-rounding.test; arguments: reg -X EUR -H --no-rounding                                   
VERBOSE: Test case: file opt-unround.test; arguments: bal --percent --unround                                           
VERBOSE: Test case: file opt-code-as-account.test; arguments: reg --account=code                                        
VERBOSE: Test case: file dir-account.test; arguments: reg                                                               
VERBOSE: Test case: file opt-no-titles.test; arguments: reg -f test/input/drewr3.dat --no-titles --group-by payee reg food
VERBOSE: Test case: file feat-value-expr.test; arguments: reg -V food                                                   
VERBOSE: Test case: file opt-total-data.test; arguments: reg --market --total-data                                      
VERBOSE: Test case: file opt-csv-format.test; arguments: csv --csv-format='"%(date)"\n'                                 
VERBOSE: Test case: file opt-group-by.test; arguments: reg --group-by payee                                             
VERBOSE: Test case: file opt-group-by.test; arguments: reg --group-by commodity                                         
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by commodity                                         
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by payee                                             
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by date                                              
VERBOSE: Test case: file opt-amount-width.test; arguments: reg --amount-width=18                                        
VERBOSE: Test case: file opt-yearly.test; arguments: reg --yearly books                                                 
VERBOSE: Test case: file dir-commodity-value.test; arguments: reg food -X EUR --now=2012-03-15                          
VERBOSE: Test case: file opt-recursive-aliases.test; arguments: reg --recursive-aliases                                 
VERBOSE: Test case: file dir-commodity.test; arguments: bal --pedantic -> 1                                             
VERBOSE: Test case: file opt-pager.test; arguments: reg --pager=cat                                                     
VERBOSE: 07-Feb-02 RD VMMXX              As:Inves:Vanguar:VMMXX  0.350 VMMXX  0.350 VMMXX                               
VERBOSE:                                 In:Divid:Vanguar:VMMXX       $-0.35       $-0.35                               
VERBOSE:                                                                      0.350 VMMXX                               
VERBOSE: Test case: file opt-equity.test; arguments: reg --equity                                                       
VERBOSE: Test case: file opt-equity.test; arguments: reg assets --equity                                                
VERBOSE: Test case: file opt-equity.test; arguments: reg assets:bank --equity                                           
VERBOSE: Test case: file opt-equity.test; arguments: reg assets:broker --equity                                         
VERBOSE: Test case: file opt-equity.test; arguments: reg --lots --date-format %Y/%m/%d --equity                         
VERBOSE: Test case: file cmd-tags.test; arguments: tags                                                                 
VERBOSE: Test case: file cmd-tags.test; arguments: tags --values                                                        
VERBOSE: Test case: file cmd-tags.test; arguments: tags --values --count                                                
VERBOSE: Test case: file opt-real.test; arguments: reg --real                                                           
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 1                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 2                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 3                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 4                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 5                                                       
VERBOSE: Test case: file opt-meta.test; arguments: reg --meta Sample                                                    
VERBOSE: Test case: file opt-count.test; arguments: accounts --count                                                    
VERBOSE: Test case: file opt-count.test; arguments: commodities --count                                                 
VERBOSE: Test case: file opt-count.test; arguments: payees --count                                                      
VERBOSE: Test case: file opt-count.test; arguments: commodities :rent --count                                           
VERBOSE: Test case: file opt-count.test; arguments: payees tag bnb --count                                              
VERBOSE: Test case: file opt-check-payees.test; arguments: bal --strict --check-payees                                  
VERBOSE: Test case: file dir-apply.test; arguments: reg food                                                            
VERBOSE: Test case: file opt-actual.test; arguments: print --actual                                                     
VERBOSE: Test case: file opt-abbrev-len.test; arguments: reg --abbrev-len=4                                             
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 1"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 2"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 3"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 4"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: xact no:such:account -> 1                                            
VERBOSE: Test case: file opt-basis.test; arguments: bal --basis                                                         
VERBOSE: Test case: file feat-import_py.test; arguments: reg                                                            
VERBOSE: Test case: file opt-code-as-payee.test; arguments: reg --payee=code                                            
VERBOSE: Test case: file opt-decimal-comma.test; arguments: --decimal-comma bal                                         [FAIL]
VERBOSE: Test case: file opt-by-payee.test; arguments: reg --by-payee not @End                                          
VERBOSE: Test case: file opt-budget.test; arguments: reg --budget books --now=2009/12/31                                
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -V --value-expr "25.00 EUR"             
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -G --value-expr "date < [March 2015] ? 22.00 EUR : 25.00 EUR" --now "2015-02-20"
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -G --value-expr "date < [March 2015] ? 22.00 EUR : 25.00 EUR" --now "2015-03-20"
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food                                              
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food -V                                           
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food   -X "DM" --now "2015-05-02"                 
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food   -X "DM" --now "2015-06-02"                 
VERBOSE: Test case: file opt-unrealized.test; arguments: bal -V --unrealized                                            
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_import_py [33ms]         
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_import_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 318
VERBOSE: Test case: file opt-exact.test; arguments: reg --weekly --exact books                                          
VERBOSE: Test case: file opt-prepend-width.test; arguments: bal --prepend-format "%(account_base) " --prepend-width=10  
VERBOSE: Test case: file opt-prepend-width.test; arguments: reg --prepend-format "%(account_base) " --prepend-width=10  
VERBOSE: Test case: file opt-prepend-width.test; arguments: accounts --prepend-format "%(account_base) " --prepend-width=10
VERBOSE: Test case: file opt-budget-format.test; arguments: budget --now 2012-02-29 --budget-format "%(justify(scrub(display_total), 0))\n"
VERBOSE: Test case: file cmd-source.test; arguments: source -> 7                                                        
VERBOSE: [xUnit.net 00:00:03.30]     NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py2 [SKIP]
VERBOSE: Test case: file opt-lots_basis_base.test; arguments: reg --basis --base                                        
VERBOSE: Test case: file opt-raw.test; arguments: print --raw                                                           
VERBOSE: Test case: file opt-plot-amount-format.test; arguments: reg -j --plot-amount-format='X %(format_date(date, "%Y-%m-%d")) Y %(quantity(scrub(display_amount)))\n'
VERBOSE: Test case: file opt-forecast_only.test; arguments: reg --forecast 'date <[2011]' --now=2010/06/21              
VERBOSE:   ! NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py2 [1ms]          
VERBOSE: Test case: file cmd-print.test; arguments: print --decimal-comma                                               
VERBOSE: Test case: file opt-master-account.test; arguments: bal --master-account=Master                                
VERBOSE: Test case: file cmd-register.test; arguments: reg                                                              
VERBOSE: Test case: file cmd-register.test; arguments: r :inve                                                          
VERBOSE: Test case: file cmd-register.test; arguments: reg :inve                                                        
VERBOSE: Test case: file cmd-register.test; arguments: register :inve                                                   
VERBOSE: Test case: file opt-limit.test; arguments: reg --limit='account =~ /Books/ and amount < 50'                    
VERBOSE: Test case: file opt-inject.test; arguments: --inject Expected reg Expenses:Phone                               
VERBOSE: Test case: file opt-head.test; arguments: reg --head=10 books                                                  
VERBOSE: Test case: file opt-head.test; arguments: reg --first=10 books                                                 
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert1.dat
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert2.dat
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert3.dat -> 1
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null convert test/baseline/cmd-convert4.dat -> 1          
VERBOSE: Test case: file opt-exchange.test; arguments: reg --exchange=' C, A '                                          
VERBOSE: Test case: file opt-exchange.test; arguments: reg --exchange=' C!, A '                                         
VERBOSE: Test case: file opt-dc.test; arguments: reg --dc                                                               
VERBOSE: Test case: file opt-dc.test; arguments: bal --dc                                                               
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount" from posts                          
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount from posts where account =~ /^e/"    
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount from posts where account =~ /e/"     
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount where account =~ /e/"                
VERBOSE: Test case: file cmd-select.test; arguments: select "date, payee, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, payee, amount * 2 from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, code, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, code * 2, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file opt-now.test; arguments: eval today --now=2009/01/01                                           
VERBOSE: Test case: file opt-total.test; arguments: reg --total=10                                                      
VERBOSE: Test case: file opt-begin.test; arguments: reg --begin=2009/02                                                 
VERBOSE: Test case: file opt-cost.test; arguments: bal --cost                                                           
VERBOSE: Test case: file opt-day-break.test; arguments: reg --base                                                      
VERBOSE: Test case: file opt-day-break.test; arguments: reg --base --day-break                                          
VERBOSE: Test case: file opt-unrealized-gains.test; arguments: bal -V --unrealized --unrealized-gains G                 
VERBOSE: Test case: file opt-price.test; arguments: reg equities                                                        
VERBOSE: Test case: file opt-price.test; arguments: reg -B equities                                                     
VERBOSE: Test case: file opt-price.test; arguments: reg --end 2009/06/26 -V equities                                    
VERBOSE: Test case: file opt-price.test; arguments: reg --end 2009/06/26 -G equities                                    
VERBOSE: Test case: file opt-price.test; arguments: reg -I equities                                                     
VERBOSE: Test case: file opt-file.test; arguments: -f opt-file-does-not-exist.dat bal -> 1                              
VERBOSE: Test case: file opt-file.test; arguments: -f test/baseline/opt-file1.dat -f test/baseline/opt-file2.dat bal    
VERBOSE: Test case: file cmd-balance.test; arguments: bal                                                               
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n                                                            
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n -E                                                         
VERBOSE: Test case: file cmd-balance.test; arguments: bal -E                                                            
VERBOSE: Test case: file cmd-balance.test; arguments: bal --flat                                                        
VERBOSE: Test case: file cmd-balance.test; arguments: bal --flat -E                                                     
VERBOSE: Test case: file cmd-balance.test; arguments: bal -E --flat --no-total                                          
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n --flat                                                     
VERBOSE: Test case: file opt-no-total.test; arguments: bal --no-total                                                   
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 1"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 2"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 3"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 4"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: entry no:such:account -> 1                                          
VERBOSE: Test case: file opt-empty_collapse.test; arguments: reg --empty --collapse                                     
VERBOSE: Test case: file dir-import_py.test; arguments: reg                                                             
VERBOSE: Test case: file opt-deviation.test; arguments: reg -A --deviation books                                        FAIL]
VERBOSE: Test case: file opt-quarterly.test; arguments: reg --quarterly books                                           
VERBOSE: Test case: file opt-forecast-while.test; arguments: reg --now=2009/03/21 --forecast-while='total < $3500' books
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts                                                         
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts assets:a                                                
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_import_py [11ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_import_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 234
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts b                                                       
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts ß                                                       
VERBOSE: Test case: file opt-average.test; arguments: reg --average books                                               
VERBOSE: Test case: file feat-convert-with-directives.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat
VERBOSE: Test case: file feat-convert-with-directives.test; arguments: --account "Assets:Cash" convert test/baseline/feat-convert-with-directives.dat
VERBOSE: Test case: file cmd-payees.test; arguments: payees                                                             
VERBOSE: Test case: file cmd-payees.test; arguments: payees a                                                           
VERBOSE: Test case: file cmd-payees.test; arguments: payees no:such:account                                             
VERBOSE: Test case: file cmd-payees.test; arguments: payees "^B$"                                                       
VERBOSE: Test case: file opt-amount-data.test; arguments: reg --amount-data                                             
VERBOSE: Test case: file opt-collapse.test; arguments: bal --collapse                                                   
VERBOSE: Test case: file opt-empty_bal_flat.test; arguments: bal --empty --flat                                         
VERBOSE: Test case: file opt-account.test; arguments: reg --account='payee + ":" + commodity'                           
VERBOSE: Test case: file opt-init-file.test; arguments: --init-file test/baseline/opt-init-file.dat bal                 
VERBOSE: Test case: file opt-script.test; arguments: --script test/baseline/opt-script.dat                              
VERBOSE: Test case: file opt-gain.test; arguments: reg --gain stocks                                                    
VERBOSE: Test case: file opt-gain.test; arguments: bal --change                                                         
VERBOSE: Test case: file opt-gain.test; arguments: bal -G                                                               
VERBOSE: Test case: file opt-invert.test; arguments: reg --invert                                                       
VERBOSE: Test case: file cmd-csv.test; arguments: csv                                                                   
VERBOSE: Test case: file opt-payee-width.test; arguments: reg --payee-width=40                                          
VERBOSE: Test case: file opt-start-of-week.test; arguments: reg --weekly --start-of-week=mon books                      
VERBOSE: Test case: file opt-monthly.test; arguments: reg --monthly books                                               
VERBOSE: Test case: file opt-current.test; arguments: bal --current                                                     
VERBOSE: Test case: file cmd-stats.test; arguments: stats --now "2012-03-31"                                            
VERBOSE: Test case: file opt-weekly.test; arguments: reg --weekly books                                                 
VERBOSE: Test case: file opt-market.test; arguments: reg --market stocks                                                
VERBOSE: Test case: file opt-add-budget.test; arguments: reg --add-budget books cards --now=2009/12/31                  
VERBOSE: Test case: file opt-lots_basis.test; arguments: reg --basis                                                    
VERBOSE: Test case: file feat-fixated-prices.test; arguments: reg -V gas                                                
VERBOSE: Test case: file opt-bold-if.test; arguments: reg --bold-if 'has_tag("test")'                                   
VERBOSE: Test case: file feat-balance-assignments.test; arguments: bal                                                  
VERBOSE: Test case: file dir-alias.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-values.test; arguments: tags -f test/input/drewr3.dat --values                             
VERBOSE: Test case: file opt-lot-tags.test; arguments: bal --lot-tags tajer                                             
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice                              
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --flat                       
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty                      
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty -p "until 2014-05-05"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty -p "until 2014-05-06"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer                             
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --flat                      
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty                     
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty -p "until 2014-05-05"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty -p "until 2014-05-06"
VERBOSE: Test case: file opt-time-colon.test; arguments: bal                                                            
VERBOSE: Test case: file opt-time-colon.test; arguments: bal --time-colon                                               
VERBOSE: Test case: file opt-time-colon.test; arguments: reg --time-colon                                               
VERBOSE: Test case: file feat-balance_assert-off.test; arguments: bal -> 1                                              
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities                                                   
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities Assets:Rewards                                    
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities no:such:account                                   
VERBOSE: Test case: file feat-balance_assert_split.test; arguments: balance                                             
VERBOSE: Test case: file opt-aux-date.test; arguments: reg --aux-date                                                   
VERBOSE: Test case: file opt-related-all.test; arguments: reg --related-all credit                                      
VERBOSE: Test case: file opt-pending.test; arguments: reg --pending                                                     
VERBOSE: Test case: file feat-check.test; arguments: bal                                                                
VERBOSE: Test case: file opt-end.test; arguments: reg --end=2009/02                                                     
VERBOSE: Test case: file opt-trace.test; arguments: reg --trace 10 2>/dev/null                                          
VERBOSE: Test case: file opt-collapse-if-zero.test; arguments: reg --collapse-if-zero                                   
VERBOSE: Test case: file opt-lots.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lots --date-format %Y/%m/%d
VERBOSE: Test case: file dir-alias-fail.test; arguments: source -> 1                                                    
VERBOSE: Test case: file opt-input-date-format.test; arguments: reg --input-date-format='%m%%%d%%%Y'                    
VERBOSE: Test case: file opt-lots-actual.test; arguments: reg --format '%(justify(scrub(total_expr), 40, 40, true))\n' --lots --date-format %Y/%m/%d
VERBOSE: Test case: file opt-lots-actual.test; arguments: reg --format '%(justify(scrub(total_expr), 40, 40, true))\n' --lots-actual
VERBOSE: Test case: file opt-related.test; arguments: reg --related credit                                              
VERBOSE: Test case: file opt-empty.test; arguments: reg --empty                                                         
VERBOSE: Test case: file opt-percent.test; arguments: bal --percent                                                     
VERBOSE: Test case: file opt-tail.test; arguments: reg --tail=10 books                                                  
VERBOSE: Test case: file opt-tail.test; arguments: reg --last=10 books                                                  
VERBOSE: Test case: file opt-no-revalued.test; arguments: reg --market --no-revalued stocks                             
VERBOSE: Test case: file opt-budget_only.test; arguments: reg income --budget --now=2010/06/20                          
VERBOSE: Test case: file opt-flat.test; arguments: bal --flat                                                           
VERBOSE: Test case: file opt-group-title-format.test; arguments: bal --group-by payee --group-title-format "-%(value)-\n"
VERBOSE: Test case: file opt-group-title-format.test; arguments: bal --group-by date --group-title-format "|%(value)|\n"
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(w, u)=(z=w+u;z*2); (a=1 + 1; foo(10, 15))'               
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(x, y, z)=print(x, y, z); bar(x)=x; foo(1, 2, 3); bar(3)' 
VERBOSE: Test case: file cmd-script.test; arguments: eval 'total_expr=$100;amount_expr=$15;x=total_expr;x=x/5;x=amount_expr-x*5;x'
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo = x, y, z -> print(x, y, z); foo(1, 2, 3)'               
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(x,y)=y(1, 2, 3);foo(amount_expr, (s,d,t -> t))'          
VERBOSE: Test case: file opt-account-width.test; arguments: reg --account-width=40                                      
VERBOSE: Test case: file feat-value_py3.test; arguments: reg                                                            
VERBOSE: Test case: file opt-sort-xacts.test; arguments: reg --sort=account                                             [FAIL]
VERBOSE: Test case: file opt-sort-xacts.test; arguments: reg --sort-xacts=account                                       
VERBOSE: Test case: file opt-pedantic.test; arguments: bal --pedantic -> 2                                              
VERBOSE: Test case: file opt-unbudgeted.test; arguments: reg --unbudgeted                                               
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --begin 2014/01/01 --end 2014/01/14               
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --effective --begin 2014/01/01 --end 2014/01/14   
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --primary-date --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --actual-dates --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --begin 2014/01/01 --end 2014/01/14              
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --effective --begin 2014/01/01 --end 2014/01/14  
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --primary-date --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --actual-dates --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg checking                                                 
VERBOSE: Test case: file opt-primary-date.test; arguments: reg checking --primary-date --effective                      
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries                                           
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --effective                               
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --primary-date --effective                
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --actual-dates --effective                
VERBOSE: Test case: file dir-payee.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-display.test; arguments: reg --display='payee =~ /February/' books                         
VERBOSE: Test case: file opt-time-report.test; arguments: bal                                                           
VERBOSE: Test case: file opt-time-report.test; arguments: bal --time-report                                             
VERBOSE: Test case: file opt-time-report.test; arguments: bal --time-report --time-colon                                
VERBOSE: Test case: file opt-pricedb-format.test; arguments: pricedb --pricedb-format='P %(date) %(scrub(display_amount))\n'
VERBOSE: Test case: file opt-date-width.test; arguments: reg --date-width=20                                            
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py3 [11ms]         
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '<class 'bo' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py3() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 346
VERBOSE: Test case: file opt-permissive.test; arguments: bal --permissive                                               
VERBOSE: Test case: file dir-fixed.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-cleared.test; arguments: reg --cleared                                                     
VERBOSE: Test case: file opt-revalued-only.test; arguments: reg --market --revalued-only stocks                         
VERBOSE: Test case: file opt-display-total.test; arguments: reg --display-total='amount * 10' books                     
VERBOSE: Test case: file cmd-echo.test; arguments: echo foo                                                             
VERBOSE: Test case: file cmd-echo.test; arguments: echo "foo bar"                                                       
VERBOSE: Test case: file cmd-echo.test; arguments: echo "foo\nbar"                                                      
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --now '2014/08/01'
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --detail --now '2014/08/01'
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --rich-data --date-format %d-%m-%Y --now '2014/08/01'
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 1 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 2 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 3 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 4 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 5 --flat                                           
VERBOSE: Test case: file opt-budget_range.test; arguments: reg --now=2010/02 --sort=date exp --budget                   
VERBOSE: Test case: file opt-columns.test; arguments: reg --columns=100                                                 
VERBOSE: Test case: file opt-empty_bal.test; arguments: bal --empty                                                     
VERBOSE: Test case: file opt-format.test; arguments: reg --format='%(account) = %(strip(amount))\n'                     
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date                                              
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date,amount                                       
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date,-amount                                      
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=-date,-amount                                     
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=total                                                     
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=-total                                                    
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=-account                                                  
VERBOSE: Test case: file opt-sort.test; arguments: reg --sort=account                                                   
VERBOSE: Test case: file cmd-cleared.test; arguments: cleared                                                           
VERBOSE: Test case: file opt-payee-as-account.test; arguments: reg --account=payee                                      
VERBOSE: Test case: file dir-python_py.test; arguments: reg                                                             
VERBOSE: Test case: file cmd-pricemap.test; arguments: pricemap                                                         FAIL]
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_python_py [6ms]           
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_python_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 248
VERBOSE: Test case: file opt-lot-prices.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lot-prices
VERBOSE: Test case: file opt-revalued.test; arguments: reg --market --revalued stocks                                   
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --limit='amount > $100'                          
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --only='amount > $100'                           
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --display='amount > $100'                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks                                                     
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -V --now=2012/05/10                                 
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -V --now=2012/05/10                              
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -X EUR --now=2012/05/10                             
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -X EUR --now=2012/05/10                          
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H -X EUR                                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H -X EUR                                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H -X EUR                                        
VERBOSE: Test case: file opt-register-format.test; arguments: reg --register-format='%(amount)\n'                       
VERBOSE: Test case: file opt-balance-format.test; arguments: bal --balance-format='%(account)\n' --no-total             
VERBOSE: Test case: file opt-average-lot-prices.test; arguments: bal assets:investments --average-lot-prices            
VERBOSE: Test case: file opt-meta-width.test; arguments: reg --meta Sample --meta-width=15                              
VERBOSE: Test case: file opt-commodity-as-account.test; arguments: reg --account=commodity                              
VERBOSE: Test case: file opt-commodity-as-payee.test; arguments: reg --payee=commodity                                  
VERBOSE: Test case: file opt-price-db.test; arguments: pricedb --price-db test/baseline/opt-price-db.dat                
VERBOSE: Test case: file opt-no-aliases.test; arguments: reg                                                            
VERBOSE: Test case: file opt-no-aliases.test; arguments: reg --no-aliases                                               
VERBOSE: Test case: file opt-collapse_reg.test; arguments: reg --collapse food                                          
VERBOSE: Test case: file opt-total-width.test; arguments: reg --total-width=25                                          
VERBOSE: Test case: file opt-period.test; arguments: reg -p "january 2008"                                              
VERBOSE: Test case: file opt-period.test; arguments: reg -p "monthly january 2008"                                      
VERBOSE: Test case: file opt-period.test; arguments: reg -p "weekly january 2008"                                       
VERBOSE: Test case: file opt-period.test; arguments: reg -p "yearly 2008"                                               
VERBOSE: Test case: file opt-period.test; arguments: reg -p "from 2009/11/01"                                           
VERBOSE: Test case: file opt-strict.test; arguments: reg --strict                                                       
VERBOSE: Test case: file opt-color.test; arguments: bal --color                                                         
VERBOSE: Test case: file opt-cleared-format.test; arguments: cleared --file test/input/drewr3.dat --cleared-format "%-30(account) %15(get_at(total_expr, 0)) %15(get_at(total_expr, 1))\n%/"
VERBOSE: Test case: file opt-quantity.test; arguments: reg --quantity                                                   
VERBOSE: Test case: file opt-prices-format.test; arguments: prices --prices-format='%(datetime) %(scrub(display_amount))\n'
VERBOSE: Test case: file opt-base.test; arguments: bal --base                                                           
VERBOSE: Test case: file opt-unrealized-losses.test; arguments: bal -V --unrealized --unrealized-losses L               
VERBOSE: Test case: file feat-option_py.test; arguments: reg                                                            
VERBOSE: Test case: file opt-lot-notes.test; arguments: bal assets:voucher --lot-notes                                  [FAIL]
VERBOSE: Test case: file opt-lot-notes.test; arguments: reg assets:voucher --lot-notes                                  
VERBOSE: Test case: file opt-force-color.test; arguments: bal --force-color                                             
VERBOSE: Test case: file opt-force-color.test; arguments: bal                                                           
VERBOSE: Test case: file dir-tag.test; arguments: reg                                                                   
VERBOSE: Test case: file dir-commodity-alias.test; arguments: bal                                                       
VERBOSE: Test case: file dir-commodity-alias.test; arguments: reg a                                                     
VERBOSE: Test case: file cmd-prices.test; arguments: prices                                                             
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_option_py [8ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'In --pyfir' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_option_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 325
VERBOSE: Test case: file cmd-prices.test; arguments: prices EUR                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices USD                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices GBP                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices U                                                           
VERBOSE: Test case: file opt-daily.test; arguments: reg --daily                                                         
VERBOSE: Test case: file opt-payee.test; arguments: reg --payee='account_base + ":" + commodity'                        
VERBOSE: Test case: file opt-lot-dates.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lot-dates --date-format %Y/%m/%d
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=leading                                   
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=middle                                    
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=trailing                                  
VERBOSE: Test case: file opt-date-format.test; arguments: reg --date-format='%Y'                                        
VERBOSE: Test case: file opt-datetime-format.test; arguments: bal --time-report --datetime-format '%m/%d/%y %I:%M %p'   
VERBOSE: Test case: file opt-subtotal.test; arguments: reg --subtotal                                                   
VERBOSE: Test case: file opt-explicit.test; arguments: bal --explicit --strict                                          
VERBOSE: Test case: file cmd-equity.test; arguments: equity                                                             
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets                                                      
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets:bank                                                 
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets:broker                                               
VERBOSE: Test case: file cmd-equity.test; arguments: equity --lot-prices                                                
VERBOSE: Test case: file cmd-equity.test; arguments: equity --lots --date-format %Y/%m/%d                               
VERBOSE: Test case: file opt-wide.test; arguments: reg --wide                                                           
VERBOSE: Test case: file opt-prepend-format.test; arguments: bal --prepend-format "%(account_base)"                     
VERBOSE: Test case: file opt-prepend-format.test; arguments: reg --prepend-format "%(account_base)"                     
VERBOSE: Test case: file opt-prepend-format.test; arguments: accounts --prepend-format "%(account_base) "               
VERBOSE: Test case: file opt-output.test; arguments: reg --output=/dev/stderr                                           
VERBOSE: Test case: file opt-date.test; arguments: reg --input-date-format %Y-%m-%d --date-format %d-%m-%Y --date 'has_tag("date") ? to_date(tag("date")) : date'
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date + 2'                                                
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date - 2'                                                
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date + 365*2'                                            
VERBOSE: Test case: file opt-weekly_empty.test; arguments: reg --weekly --empty books                                   
VERBOSE: Test case: file feat-balance_assert.test; arguments: balance                                                   
VERBOSE: Test case: file feat-annotations.test; arguments: print                                                        
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in january 2012"                                 
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in feb 2012"                                     
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in march  2012"                                  
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP --now "2012-03-31"                                   
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb                                                           
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb EUR                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb GBP                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb USD                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb U                                                         
VERBOSE: Test case: file opt-sort-all.test; arguments: reg --monthly --sort=-amount                                     
VERBOSE: Test case: file opt-sort-all.test; arguments: reg --monthly --sort-all=-amount                                 
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast "T<200000.00 GBP" reg :rent    
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast-years 1 --forecast "T<200000.00 GBP" reg :rent
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast-years 10 --forecast "T<200000.00 GBP" reg :rent
VERBOSE: Test case: file opt-dow.test; arguments: reg --dow books                                                       
VERBOSE: Test case: file opt-display-amount.test; arguments: reg --display-amount='amount * 10' books                   
VERBOSE: Test case: file 1182_1.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file A28CF697.test; arguments: print                                                                
VERBOSE: Test case: file BBFA1759.test; arguments: period june 2008                                                     
VERBOSE: [xUnit.net 00:00:11.92]     NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_BF3C1F82 [SKIP]
VERBOSE:   ! NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_BF3C1F82 [1ms]                  
VERBOSE: Test case: file 543_a.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_a.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file 2CE7DADB.test; arguments: --anon pricedb --format "%(date) %(amount)\n"                        
VERBOSE: Test case: file 14DB77E7.test; arguments: reg income:adse -X GBP -H                                            
VERBOSE: Test case: file D943AE0F.test; arguments: reg -V --now=2008/04/20                                              
VERBOSE: Test case: file C523E23F.test; arguments: bal                                                                  
VERBOSE: Test case: file 04D86CD0.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 1224.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file A013A73B.test; arguments: reg                                                                  
VERBOSE: Test case: file 1102.test; arguments: -i /dev/null reg                                                         
VERBOSE: Test case: file 78AB4B87_py.test; arguments: python test/regress/78AB4B87.py                                   
VERBOSE: Test case: file 1722.test; arguments: bal                                                                      ]
VERBOSE: Test case: file 727B2DF8.test; arguments: reg --force-color                                                    
VERBOSE: Test case: file 1055.test; arguments: bal                                                                      
VERBOSE: Test case: file 1384C1D8.test; arguments: bal                                                                  
VERBOSE: Test case: file 1147-a.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file 0DDDEBC0.test; arguments: -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/0DDDEBC0.dat
VERBOSE: Test case: file 82763D86.test; arguments: -s reg liabilities                                                   
VERBOSE: Test case: file 1723.test; arguments: reg                                                                      
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_78AB4B87_py [6ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '-5.00 GBP
VERBOSE: ' vs '')                                                                                                       
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_78AB4B87_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 766
VERBOSE: Test case: file CEECC0B0.test; arguments: equity                                                               
VERBOSE: Test case: file 1187_5.test; arguments: bal                                                                    
VERBOSE: Test case: file 370-forecast_period_days.test; arguments: reg --forecast 'date <[2010/08/01]' --now=2010/06/13 
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --cleared                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --cleared                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --cleared                                                     
VERBOSE: Test case: file BF3C1F82-2.test; arguments: -f - reg -> 1                                                      
VERBOSE: Test case: file BF3C1F82-2.test; arguments: -f /dev/stdin reg -> 1                                             
VERBOSE: Test case: file 1106.test; arguments: -F "»%(trim('    Trimmed          '))«\n" reg expenses                   
VERBOSE: Test case: file 1106.test; arguments: -F "»%(trim('Trimmed'))«\n" reg expenses                                 
VERBOSE: Test case: file 981.test; arguments: bal                                                                       
VERBOSE: Test case: file 981.test; arguments: reg --limit 'payee =~ /XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/'
VERBOSE: Test case: file 370-forecast_period_weeks.test; arguments: reg --forecast 'date <[2010/08/01]' --now=2010/06/21
VERBOSE: Test case: file 178501DC.test; arguments: bal -r simon                                                         
VERBOSE: Test case: file 178501DC.test; arguments: reg -r simon                                                         
VERBOSE: Test case: file CFE5D8AA.test; arguments: reg                                                                  
VERBOSE: Test case: file 6E041C52.test; arguments: reg                                                                  
VERBOSE: Test case: file C9D593B3.test; arguments: payees                                                               
VERBOSE: Test case: file 543_c.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_c.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file 6188B0EC.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 4D9288AE_py.test; arguments: python test/regress/4D9288AE.py                                   
VERBOSE: Test case: file 25A099C9.test; arguments: -f test/regress/25A099C9.dat reg -> 29                               ]
VERBOSE: Test case: file 5D92A5EB.test; arguments: -J reg checking -> 1                                                 
VERBOSE: Test case: file 375.test; arguments: reg -p "until Feb 2009"                                                   
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_4D9288AE_py [5ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'None' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_4D9288AE_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 514
VERBOSE: Test case: file 375.test; arguments: reg -p "until February 2009"                                              
VERBOSE: Test case: file 375.test; arguments: reg -p "in Feb 2009"                                                      
VERBOSE: Test case: file DDB54BB8.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file A560FDAD.test; arguments: reg -X EUR -H                                                        
VERBOSE: Test case: file 56BBE69B.test; arguments: bal                                                                  
VERBOSE: Test case: file 6DAB9FE3.test; arguments: reg -E                                                               
VERBOSE: Test case: file 1626.test; arguments: period every 1000 years from 1 Sep 2011 to 30 May 2012 --now=2018-06-10  
VERBOSE: Test case: file BFD3FBE1.test; arguments: reg -X EUR -H                                                        
VERBOSE: Test case: file 543_b.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_b.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file AEDE9734.test; arguments: bal --group-by "tag('trip')"                                         
VERBOSE: Test case: file FDFBA165.test; arguments: --decimal-comma bal                                                  
VERBOSE: Test case: file FDFBA165.test; arguments: --decimal-comma reg                                                  
VERBOSE: Test case: file 889BB167.test; arguments: reg income:adse -X GBP -H                                            
VERBOSE: Test case: file 9EB10714.test; arguments: reg -J -V ^Actif                                                     
VERBOSE: Test case: file 8CE88DB4.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1D275740.test; arguments: print                                                                
VERBOSE: Test case: file 1038_2.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 0CA014F9.test; arguments: bal                                                                  
VERBOSE: Test case: file AA2FF2B.test; arguments: --args-only --decimal-comma bal                                       
VERBOSE: Test case: file E627C594.test; arguments: reg --forecast-while="d<[2010/03/01]" --now=2009/11/01               
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>=2"                                             
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>1"                                              
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>2"                                              
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth==2"                                             
VERBOSE: Test case: file 3AAB00ED.test; arguments: --sort d -p "until 2010" reg                                         
VERBOSE: Test case: file CAE63F5C-c.test; arguments: bal -X $                                                           
VERBOSE: Test case: file 640D3205.test; arguments: print                                                                
VERBOSE: Test case: file 1036.test; arguments: source -> 17                                                             
VERBOSE: Test case: file 686.test; arguments: equity -e 2006                                                            
VERBOSE: Test case: file 8254755E.test; arguments: bal --flat food:out --now=2009/12/31                                 
VERBOSE: Test case: file 8254755E.test; arguments: bal --flat --budget food:out --now=2009/12/31                        
VERBOSE: Test case: file 1182_2.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file 65FECA4D.test; arguments: reg                                                                  
VERBOSE: Test case: file EA18D948.test; arguments: reg A -V -A                                                          
VERBOSE: Test case: file 6D9066DD.test; arguments: print                                                                
VERBOSE: Test case: file 1159.test; arguments: reg -p "every 12 months from 2001/04/01"                                 
VERBOSE: Test case: file 1159.test; arguments: reg -p 'every 12 months'                                                 
VERBOSE: Test case: file FCE11C8D.test; arguments: reg --monthly --invert exp                                           
VERBOSE: Test case: file CAE63F5C-b.test; arguments: bal -X $                                                           
VERBOSE: Test case: file 012ADB60.test; arguments: equity -e 2006                                                       
VERBOSE: Test case: file 553.test; arguments: -f - bal -> 5                                                             
VERBOSE: Test case: file 550-584.test; arguments: payees                                                                
VERBOSE: Test case: file 550-584.test; arguments: reg --group-by "tag('test')"                                          
VERBOSE: Test case: file 550-584.test; arguments: commodities                                                           
VERBOSE: Test case: file D060256A.test; arguments: budget --now=2009/11/01 --end=2009/11/30                             
VERBOSE: Test case: file 785.test; arguments: source -> 14                                                              
VERBOSE: Test case: file 647D5DB9.test; arguments: bal --end 2008/12/31 -JV Equities                                    
VERBOSE: Test case: file 1895.test; arguments: bal                                                                      
VERBOSE: Test case: file 1895.test; arguments: bal --invert                                                             
VERBOSE: Test case: file 1895.test; arguments: reg --format="%(account) %10(amount) %10(amount_expr) %10(total)        %10(display_amount) %10(display_total)\n"
VERBOSE: Test case: file 1895.test; arguments: reg --format="%(account) %10(amount) %10(amount_expr) %10(total)        %10(display_amount) %10(display_total)\n" --invert
VERBOSE: Test case: file 1222.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file 1A546C4D.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file market-group-by.test; arguments: reg -V --group-by commodity                                   
VERBOSE: Test case: file 793F6BF0.test; arguments: entry 2009/03/15 book 10                                             
VERBOSE: Test case: file AFAFB804.test; arguments: reg -S date,payee                                                    
VERBOSE: Test case: file AFAFB804.test; arguments: reg -S payee,date                                                    
VERBOSE: Test case: file 1050.test; arguments: bal                                                                      
VERBOSE: Test case: file 1050.test; arguments: pricedb                                                                  
VERBOSE: Test case: file 3FE26304.test; arguments: bal -X \$ sub1                                                       
VERBOSE: Test case: file 3FE26304.test; arguments: reg -X \$ sub1 --now=2012/03/14                                      
VERBOSE: Test case: file 95350193.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1038_1.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 47C579B8.test; arguments: --decimal-comma --percent balance                                    
VERBOSE: Test case: file 1038_3.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 55831A79.test; arguments: bal discover                                                         
VERBOSE: Test case: file DB490507.test; arguments: print --decimal-comma --columns=999                                  
VERBOSE: Test case: file 5FBF2ED8.test; arguments: bal -B                                                               
VERBOSE: Test case: file B21BF389_py.test; arguments: python test/regress/B21BF389.py                                   
VERBOSE: Test case: file 9E0E606D.test; arguments: reg income:ad -X GBP -H                                              ]
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_B21BF389_py [3ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'Christmas ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_B21BF389_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 976
VERBOSE: Test case: file 755.test; arguments: -F "%a\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%A\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%d\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%D\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%S\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%b\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%B\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%X%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%Y%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%C%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%N\n" reg                                                             
VERBOSE: Test case: file 461980A1.test; arguments: bal                                                                  
VERBOSE: Test case: file 1187_3.test; arguments: bal                                                                    
VERBOSE: Test case: file 1046.test; arguments: print                                                                    
VERBOSE: Test case: file A8FCC765.test; arguments: pricedb --price-db test/regress/A8FCC765.dat                         
VERBOSE: Test case: file 370-budget_period_weeks.test; arguments: reg --budget --now=2010/06/13                         
VERBOSE: Test case: file 1894_1.test; arguments: bal                                                                    
VERBOSE: Test case: file 999-b.test; arguments: pricedb                                                                 
VERBOSE: Test case: file 999-b.test; arguments: reg Equity:Opening -X EUR                                               
VERBOSE: Test case: file 1CF1EEC2.test; arguments: equity assets                                                        
VERBOSE: Test case: file 4509F714.test; arguments: bal --exchange=€                                                     
VERBOSE: Test case: file 4509F714.test; arguments: bal --exchange=€ --percent                                           
VERBOSE: Test case: file 1132.test; arguments: bal -> 1                                                                 
VERBOSE: Test case: file 543_d.test; arguments: bal                                                                     
VERBOSE: Test case: file 543_d.test; arguments: bal -R                                                                  
VERBOSE: Test case: file 620F0674.test; arguments: reg bank --forecast "d<=[next year]" -d "d>=[this month] & d<=[next year]" --sort d --now=2010/06/20
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses                                           
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --monthly                                 
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --monthly --exact                         
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly                                  
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --exact                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --empty                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --empty --exact                  
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011"                                                    
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --monthly                                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly                                           
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --exact                                   
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --empty                                   
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --empty --exact                           
VERBOSE: Test case: file 10D19C11.test; arguments: -E bal liabilities                                                   
VERBOSE: Test case: file 1894_2.test; arguments: bal                                                                    
VERBOSE: Test case: file 3AB70168.test; arguments: bal                                                                  
VERBOSE: Test case: file 1187_2.test; arguments: bal                                                                    
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y.%m.%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y/%m/%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y:%m:%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y-%m-%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %y-%b-%d                      
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-02-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-03-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-04-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-02-20"                            
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-03-20"                            
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-04-20"                            
VERBOSE: Test case: file C19E4E9B.test; arguments: reg --format "%S: %D %P %t %T\n"                                     
VERBOSE: Test case: file CAE63F5C-a.test; arguments: reg a                                                              
VERBOSE: Test case: file 730.test; arguments: -f /dev/null -M reg                                                       
VERBOSE: Test case: file 730.test; arguments: reg -M                                                                    
VERBOSE: Test case: file 730.test; arguments: reg -M .foo                                                               
VERBOSE: Test case: file 730.test; arguments: reg -M -e 2012/01                                                         
VERBOSE: Test case: file 730.test; arguments: reg '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
VERBOSE: Test case: file 730.test; arguments: bal '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
VERBOSE: Test case: file 730.test; arguments: bal reg foo and  expr 'any(account =~ /bar/)' --period 'every week'       
VERBOSE: Test case: file 730.test; arguments: b abc -M                                                                  
VERBOSE: Test case: file 730.test; arguments: reg foo -M                                                                
VERBOSE: Test case: file 730.test; arguments: bal foo -M                                                                
VERBOSE: Test case: file A3FA7601.test; arguments: -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/A3FA7601.dat
VERBOSE: Test case: file 370-period.test; arguments: period 'every 14 days from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 1 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 2 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 3 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 4 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 5 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 6 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 7 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 8 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 9 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 10 weeks from 2011/10/03'                            
VERBOSE: Test case: file total-2.test; arguments: bal                                                                   
VERBOSE: Test case: file 786A3DD0.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1703.test; arguments: reg assets:a -V --now 2018-12-31                                         
VERBOSE: Test case: file 68917252.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/regress/68917252.dat
VERBOSE: Test case: file C0212EAC.test; arguments: reg                                                                  
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food                                                             
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -V                                                          
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$'                                                      
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$,GBP'                                                  
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$!,GBP'                                                 
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$,EUR'                                                  
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2013-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2014-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2014-10-02 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2013-10-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2014-01-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2014-10-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june 2012 to july 2014"                    
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june 2013 to july 2014"                    
VERBOSE: Test case: file 1074.test; arguments: --now 2015-02-03 reg -p "from june 2013 to july 2014"                    
VERBOSE: Test case: file 1147-b.test; arguments: bal                                                                    
VERBOSE: Test case: file 5F1BAF17.test; arguments: bal da39 --flat --sort amount --display-total amount                 
VERBOSE: Test case: file 999-a.test; arguments: prices                                                                  
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 2/1/13                          
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 1/1/14                          
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 2/1/14                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-02-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-03-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-04-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-02-20"                             
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-03-20"                             
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-04-20"                             
VERBOSE: Test case: file E4C9A8EA.test; arguments: reg                                                                  
VERBOSE: Test case: file 1187_1.test; arguments: bal                                                                    
VERBOSE: Test case: file 6E7C2DF9.test; arguments: reg --sort date account                                              
VERBOSE: Test case: file 1E192DF6.test; arguments: reg                                                                  
VERBOSE: Test case: file 1775.test; arguments: reg --input-date-format %F                                               
VERBOSE: Test case: file 53BCED29.test; arguments: bal -V                                                               
VERBOSE: Test case: file xact_code_py.test; arguments: python test/regress/xact_code.py                                 
VERBOSE: Test case: file 89233B6D.test; arguments: reg "^A:"                                                            L]
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_xact_code_py [3ms]              
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'C0-d3' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_xact_code_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 1256
VERBOSE: Test case: file E9F130C5.test; arguments: bal as                                                               
VERBOSE: Test case: file 751B2357.test; arguments: print --date-format=%d.%m.%Y --input-date-format=%d.%m.%Y            
VERBOSE: Test case: file 5A03CFC3.test; arguments: bal assets                                                           
VERBOSE: Test case: file 04C5E1CA.test; arguments: reg                                                                  
VERBOSE: Test case: file E2E479BC.test; arguments: print                                                                
VERBOSE: Test case: file ACE05ECE.test; arguments: reg Hello                                                            
VERBOSE: Test case: file 712-b.test; arguments: bal                                                                     
VERBOSE: Test case: file F559EC12.test; arguments: format "%-12(scrub(amount))"                                         
VERBOSE: Test case: file F559EC12.test; arguments: format "%12(scrub(amount))"                                          
VERBOSE: Test case: file 7C44010B.test; arguments: reg -X F -J Assets                                                   
VERBOSE: Test case: file 0161EB1E.test; arguments: reg                                                                  
VERBOSE: Test case: file 8EAF77C0.test; arguments: reg -> 1                                                             
VERBOSE: Test case: file D2829FC4.test; arguments: reg --forecast 'date<[2011]' --now=2010/06/20                        
VERBOSE: Test case: file error-in-include.test; arguments: bal -> 1                                                     
VERBOSE: Test case: file 712-a.test; arguments: -X $ -V  reg                                                            
VERBOSE: Test case: file 1753.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(""))\n'                                            
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim("a"))\n'                                           
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" a"))\n'                                          
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim("a "))\n'                                          
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" a "))\n'                                         
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" aa "))\n'                                        
VERBOSE: Test case: file 1187_4.test; arguments: bal                                                                    
VERBOSE: Test case: file 86D2BDC4.test; arguments: reg -B                                                               
VERBOSE: Test case: file 370-budget_period_days.test; arguments: reg --budget --now=2010/06/13                          
VERBOSE: Test case: file 13965214.test; arguments: reg                                                                  
VERBOSE: Test case: file 15A80F68.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 2E3496BD.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 605A410D.test; arguments: reg                                                                  
VERBOSE: Test case: file 373540CC.test; arguments: bal --sort total --flat -X '$' not '(Income|Liabilities)'            
VERBOSE: Test case: file total-1.test; arguments: bal                                                                   
VERBOSE: Test case: file 96A8E4A1.test; arguments: -X EUR -H bal                                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 12/01                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 10/01                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009/10                                      
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009/10/01                                   
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009                                         
VERBOSE: Test case: file B68FFB0D.test; arguments: print                                                                
VERBOSE: Test case: file 15230B79.test; arguments: reg                                                                  
VERBOSE: Test case: file D51BFF74.test; arguments: reg -> 1                                                             
VERBOSE: Test case: file fix-missing-trans-in-last-budget-period.test; arguments: reg --budget -b 2014/10 -e 2015/02 --columns 80 --date-format "%F" reg ^Bu
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date>=[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date<=[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date==[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date>[2010/02/10]" reg                                           
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date<[2010/02/10]" reg                                           
VERBOSE: Test case: file F524E251.test; arguments: -n reg                                                               
VERBOSE: Test case: file 9188F587_py.test; arguments: python test/regress/9188F587.py                                   
VERBOSE: Test case: file 1057.test; arguments: --now=2014/06/27 emacs                                                   ]
VERBOSE: Test case: file 1702.test; arguments: bal                                                                      
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_9188F587_py [4ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '-5.00 GBP
VERBOSE: ' vs '')                                                                                                       
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /tmp/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_9188F587_py() in /tmp/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 857
VERBOSE: Test case: file 1127.test; arguments: bal Foo                                                                  
VERBOSE: Test case: file D9C8EB08.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file gh-issues-7.test; arguments: bal                                                               
VERBOSE: Test case: file gh-issues-7.test; arguments: equity                                                            
VERBOSE: Test case: file gh-issues-5.test; arguments: bal -> 1                                                          
VERBOSE: Test case: file nl-baseline-net-1.test; arguments: reg                                                         
VERBOSE: Test case: file nl-baseline-net-4.test; arguments: reg                                                         
VERBOSE: Test case: file opt-download.test; arguments: bal -V                                                           
VERBOSE: Test case: file opt-download.test; arguments: bal -V --download                                                
VERBOSE: Test case: file opt-download.test; arguments: bal -V --download --price-db ./test/nledger/pricedb.dat          
VERBOSE: Test case: file nl-issues-1.test; arguments: --script test/nledger/nl-issues-1.dat                             
VERBOSE: Test case: file nl-baseline-net-3.test; arguments: reg                                                         
VERBOSE: Test case: file nl-baseline-net-2.test; arguments: reg                                                         
VERBOSE:                                                                                                                
VERBOSE: Total tests: 483                                                                                               
VERBOSE:      Passed: 471                                                                                               
VERBOSE:      Failed: 10                                                                                                
VERBOSE:     Skipped: 2                                                                                                 
VERBOSE:  Total time: 18.0224 Seconds                                                                                   
Exception: Unit tests failed for some reason. Run this script again with '-Verbose' to get more information about the cause.
$ 
spaette commented 1 year ago

some of the cited FAILs might be attributed to not having installed find-libpython

$ cd ~
$ python3 -m venv myenv
$ ~/myenv/bin/python3 -m pip install --upgrade pip
Requirement already satisfied: pip in ./myenv/lib/python3.9/site-packages (22.0.4)
Collecting pip
  Downloading pip-22.3.1-py3-none-any.whl (2.1 MB)
     ---------------------------------------- 2.1/2.1 MB 133.9 kB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.0.4
    Uninstalling pip-22.0.4:
      Successfully uninstalled pip-22.0.4
Successfully installed pip-22.3.1
$ ~/myenv/bin/python3 -m pip install find-libpython
Collecting find-libpython
  Downloading find_libpython-0.3.0-py3-none-any.whl (8.5 kB)
Installing collected packages: find-libpython
Successfully installed find-libpython-0.3.0
$ git clone -q https://github.com/dmitry-merzlyakov/nledger
$ source ~/myenv/bin/activate
(myenv) $ cd nledger
(myenv) $ pwsh -file ./get-nledger-tools.ps1 -pythonConnect

Settings file (/home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml) is updated
NLedger Python connection is active (Settings file: /home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml)

(myenv) $ 
spaette commented 1 year ago

it might be a possibility to consider to exit on error when

a. with a Python module build find_libpython can not be located b. any nuget download fails

dmitry-merzlyakov commented 1 year ago

Hi @spaette

I see things are much better, Yes, there are many python-related errors; I suppose we need to check what you have on your environment. However, the first question is - do you need for python integration at all? If no - you can disable python integration and focus on other tests.

The options are:

How to do it by means of the helper tool:

If you want to configure Python anyway, you can troubleshoot the issue by means of the same Python tool. Run it and try the following:

PS /home/dmitry_merzlyakov/nledger3/nledger> status

[Python Extension Status]

'Python Connection' status indicates whether the reference to Python is properly configured
'Python Extension' status indicates whether NLedger uses the referenced Python

Python Connection   : [Enabled] Connection is configured and active
Connection Settings : /home/dmitry_merzlyakov/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml
Python Executable   : /usr/bin/python3
PythonNet Module    : 3.0.0.dev1
Ledger Module       : Not installed
Python Extension    : [Disabled] Extension provider is not set.
                      Use enable command to set correct provider.

What is essential here: Python executable path (should point at a valid python deployment); PythonNet module (should be installed). Ledger module and Python Extension can be ignored.

If you see that PythonNet is not installed, you may either do it manually or execute the following commands (in the same tool):

After that, you can try to build/run tests again.

One more point: besides Python-related tests, I noticed a very strange failure in your test log:

VERBOSE:   X NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [148ms]fNoFile [FAIL]

VERBOSE:   Error Message:                                                                                               
VERBOSE:    Assert.Throws() Failure                                                                                     
VERBOSE: Expected: typeof(NLedger.Textual.ParseError)                                                                   
VERBOSE: Actual:   typeof(NLedger.RuntimeError): No default scope in which to read journal file '/home/soeren/ledger'

This is not very important test, but it is hardly explainable - on your machine, the test gets RuntimeError whereas it is expected to get ParseError. Somehow the initial runtime error was not caught and not wrapped with ParseError. I do not see this issue on my Ubuntu neither with 3.1 not 6.0 framework versions. I do not have any ideas at this moment; further investigation is needed if you need to get an absolutely "clear" result.

Thanks, Dmitry

dmitry-merzlyakov commented 1 year ago

You are asking faster than I am answering :) Yes, as far as I remember, "find-libpython" issue was solved when I properly installed PythonNet module in Python (again, PythonNet 3 or higher).

spaette commented 1 year ago

strange failure

I'll take a look again in a week or so, possibly attempting additionally a Debian 11.1 build.

dmitry-merzlyakov commented 1 year ago

In regard to it:

it might be a possibility to consider to exit on error when

a. with a Python module build find_libpython can not be located
b. any nuget download fails

a) Agree. Basically, the question is about validating whether the python connection works well before using it (some sort of pinging a simple python function). I considered this option but moved to future enhancements as a minor thing b) Agree. Even more, I expected that the build would stop at that moment with an error message. Here is what I have in the Powershell script after "dotnet build":

if ($LASTEXITCODE -ne 0) { throw "Build failed for some reason. Run this script again with '-Verbose' to get more information about the cause." }

Probably, I need to re-test how it manages build failures again.

Thank you!

spaette commented 1 year ago

placing GNU sed commands in a file and then sourcing it is convenient for bulk typo fixes

sed -i "s/Legder/Ledger/g" nledger/Build/NLedgerWix/Product_en-us.wxl
sed -i "s/Optinal/Optional/g" nledger/Source/NLedger/Utility/Settings/CascadeSettings/Sources/EnvironmentVariablesSettingsSource.cs
sed -i "s/Paraneter/Parameter/g" nledger/Source/NLedger.Extensibility.Python.Module/build.ps1
sed -i "s/Popupates/Populates/g" nledger/Source/NLedger/Utility/Settings/NLedgerConfiguration.cs
sed -i "s/Porrted/Ported/g" nledger/Source/NLedger/Post.cs
sed -i "s/Porrted/Ported/g" nledger/Source/NLedger/Scopus/SymbolScope.cs
sed -i "s/Porrted/Ported/g" nledger/Source/NLedger/Commodities/CommodityPool.cs
sed -i "s/Porrted/Ported/g" nledger/Source/NLedger/Commodities/CommodityHistory.cs
sed -i "s/Portd/Ported/g" nledger/Source/NLedger/Utility/ErrorContext.cs
sed -i "s/Porte /Ported /g" nledger/Source/NLedger/Journals/Journal.cs
sed -i "s/Powershel /Powershell /g" nledger/Build/NLedgerWix/InstallerScripts.vbs
sed -i "s/Priviledges/Privileges/g" nledger/Contrib/Install/SysNGen.psm1
sed -i "s/Qunatity/Quantity/g" nledger/Source/NLedger.Tests/BigIntTests.cs
sed -i "s/Sequenece/Sequence/g" nledger/Source/NLedger/Values/ValueError.cs
sed -i "s/Simluate/Simulate/g" nledger/Contrib/Extras/cat.cmd
sed -i "s/Uniinstalling/Uninstalling/g" nledger/Contrib/Install/NLInstall.psm1
spaette commented 1 year ago

Debian 11.1 build

$ cd ~
$ echo $DOTNET_ROOT
/opt/microsoft/dotnet
$ git clone -q https://github.com/dmitry-merzlyakov/nledger.git
$ cd nledger
$ pwsh -file ./get-nledger-tools.ps1 -pythonConnect

Settings file (/home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml) is updated
NLedger Python connection is active (Settings file: /home/soeren/.local/share/NLedger/NLedger.Extensibility.Python.settings.xml)

$ pwsh -file ./get-nledger-up.ps1 -install -Verbose
VERBOSE: Detected: is windows platform=False; is OSX platform: False                                                    
VERBOSE: Detected: dotnet version=3.1.426                                                                               
VERBOSE: Since it is not windows platform, switch 'coreOnly' is changed to 'True'.                                      
VERBOSE: Expected solution path: /home/soeren/nledger/Source/NLedger.sln                                                
VERBOSE: Expected NLTest path: /home/soeren/nledger/Contrib/NLTestToolkit/NLTest.ps1                                    
VERBOSE: Checking NLedger Python extension settings...                                                                  
VERBOSE: GetPythonEnvironment's test-connection returned: <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">   <Obj RefId="0">     <TN RefId="0">       <T>System.Management.Automation.PSCustomObject</T>       <T>System.Object</T>     </TN>     <MS>       <B N="IsConnectionValid">true</B>       <B N="IsWheelInstalled">false</B>       <B N="IsPythonNetInstalled">false</B>     </MS>   </Obj> </Objs>
VERBOSE: Build sources command line: dotnet build '/home/soeren/nledger/Source/NLedger.sln' /p:CoreOnly=True --configuration Release
VERBOSE:                                                                                                                
VERBOSE: Welcome to .NET Core 3.1!                                                                                      
VERBOSE: ---------------------                                                                                          
VERBOSE: SDK Version: 3.1.426                                                                                           
VERBOSE:                                                                                                                
VERBOSE: Telemetry                                                                                                      
VERBOSE: ---------                                                                                                      
VERBOSE: The .NET Core tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
VERBOSE:                                                                                                                
VERBOSE: Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry                             
VERBOSE:                                                                                                                
VERBOSE: ----------------                                                                                               
VERBOSE: Explore documentation: https://aka.ms/dotnet-docs                                                              
VERBOSE: Report issues and find source on GitHub: https://github.com/dotnet/core                                        
VERBOSE: Find out what's new: https://aka.ms/dotnet-whats-new                                                           
VERBOSE: Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https                               
VERBOSE: Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs                         
VERBOSE: Write your first app: https://aka.ms/first-net-core-app                                                        
VERBOSE: --------------------------------------------------------------------------------------                         
VERBOSE: Microsoft (R) Build Engine version 16.7.3+2f374e28e for .NET                                                   
VERBOSE: Copyright (C) Microsoft Corporation. All rights reserved.                                                      
VERBOSE:                                                                                                                
VERBOSE:   Determining projects to restore...                                                                           
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger/NLedger.csproj (in 15.33 sec).                                  
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger.Extensibility.Python/NLedger.Extensibility.Python.csproj (in 22.27 sec).
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger.CLI/NLedger.CLI.csproj (in 21 ms).                              
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger.Tests/NLedger.Tests.csproj (in 24.09 sec).                      
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/NLedger.Extensibility.Python.Tests.csproj (in 39.43 sec).
VERBOSE:   Restored /home/soeren/nledger/Source/NLedger.IntegrationTests/NLedger.IntegrationTests.csproj (in 39.39 sec).
VERBOSE:   NLedger -> /home/soeren/nledger/Source/NLedger/bin/Release/netstandard2.0/NLedger.dll                        
VERBOSE:   NLedger.Extensibility.Python -> /home/soeren/nledger/Source/NLedger.Extensibility.Python/bin/Release/netstandard2.0/NLedger.Extensibility.Python.dll
VERBOSE:   NLedger.Tests -> /home/soeren/nledger/Source/NLedger.Tests/bin/Release/netcoreapp3.1/NLedger.Tests.dll       
VERBOSE:   NLedger.CLI -> /home/soeren/nledger/Source/NLedger.CLI/bin/Release/netcoreapp3.1/NLedger-cli.dll             
VERBOSE:   NLedger.Extensibility.Python.Tests -> /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/bin/Release/netcoreapp3.1/NLedger.Extensibility.Python.Tests.dll
VERBOSE:   NLedger.IntegrationTests -> /home/soeren/nledger/Source/NLedger.IntegrationTests/bin/Release/netcoreapp3.1/NLedger.IntegrationTests.dll
VERBOSE:                                                                                                                
VERBOSE: Build succeeded.                                                                                               
VERBOSE:     0 Warning(s)                                                                                               
VERBOSE:     0 Error(s)                                                                                                 
VERBOSE:                                                                                                                
VERBOSE: Time Elapsed 00:00:59.10                                                                                       
VERBOSE: Run unit tests command line: dotnet test '/home/soeren/nledger/Source/NLedger.sln' /p:CoreOnly=True            
VERBOSE: Test run for /home/soeren/nledger/Source/NLedger.Tests/bin/Debug/netcoreapp3.1/NLedger.Tests.dll(.NETCoreApp,Version=v3.1)
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                
VERBOSE: Test run for /home/soeren/nledger/Source/NLedger.IntegrationTests/bin/Debug/netcoreapp3.1/NLedger.IntegrationTests.dll(.NETCoreApp,Version=v3.1)
^[[38;1R[xUnit.net 00:00:02.11]     NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetValue_Conversions [FAIL]
[xUnit.net 00:00:02.13]     NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetObject_Conversions [FAIL]
[xUnit.net 00:00:02.13]     NLedger.Extensibility.Python.Tests.PythonModuleTests.PythonModule_ExecuteUnitTests [FAIL]
[xUnit.net 00:00:02.18]     NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_ExprFunc_ReturnsValue [FAIL]
[xUnit.net 00:00:02.18]     NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_Constructor_PopulatesProperties [FAIL]
[xUnit.net 00:00:02.24]     NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession [FAIL]
VERBOSE: Test run for /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/bin/Debug/netcoreapp3.1/NLedger.Extensibility.Python.Tests.dll(.NETCoreApp,Version=v3.1)
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                     ]
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE: Microsoft (R) Test Execution Command Line Tool Version 16.7.1                                                  
VERBOSE: Copyright (c) Microsoft Corporation.  All rights reserved.                                                     
VERBOSE:                                                                                                                
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE: Starting test execution, please wait...                                                                        
VERBOSE:                                                                                                                
VERBOSE: A total of 1 test files matched the specified pattern.                                                         
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetValue_Conversions [1ms]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonValueConverterTests..ctor() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/PythonValueConverterTests.cs:line 30
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonValueConverterTests.PythonValueConverter_GetObject_Conversions [1ms]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonValueConverterTests..ctor() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/PythonValueConverterTests.cs:line 30
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonModuleTests.PythonModule_ExecuteUnitTests [1ms]                   ]
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonModuleTests..ctor() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/PythonModuleTests.cs:line 27
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_ExprFunc_ReturnsValue [1ms]            
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.ArgumentException : PyDll Traceback (most recent call last):                                         
VERBOSE:   File "<string>", line 1, in <module>                                                                         
[xUnit.net 00:00:05.50]     NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_4D9288AE_py [FAIL]
VERBOSE: ModuleNotFoundError: No module named 'find_libpython' not found                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.Extensibility.Python.Platform.PythonHost..ctor(PythonConfiguration pythonConfiguration) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonHost.cs:line 36
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect[T](Func`2 contextFactory) in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 59
VERBOSE:    at NLedger.Extensibility.Python.Platform.PythonConnector.Connect() in /home/soeren/nledger/Source/NLedger.Extensibility.Python/Platform/PythonConnector.cs:line 48
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonFunctorTests..ctor() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/PythonFunctorTests.cs:line 22
VERBOSE:   X NLedger.Extensibility.Python.Tests.PythonFunctorTests.PythonFunctor_Constructor_PopulatesProperties [1ms]  
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.InvalidOperationException : Cannot acquire current thread because it has been already acquired       
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.MainApplicationContext.ThreadAcquirer..ctor(MainApplicationContext context) in /home/soeren/nledger/Source/NLedger/MainApplicationContext.cs:line 204
VERBOSE:    at NLedger.MainApplicationContext.AcquireCurrentThread() in /home/soeren/nledger/Source/NLedger/MainApplicationContext.cs:line 168
VERBOSE:    at NLedger.Tests.TestFixture.TestInitialize() in /home/soeren/nledger/Source/NLedger.Tests/TestFixture.cs:line 74
VERBOSE:    at NLedger.Tests.TestFixture..ctor() in /home/soeren/nledger/Source/NLedger.Tests/TestFixture.cs:line 61    
VERBOSE:    at NLedger.Extensibility.Python.Tests.PythonFunctorTests..ctor() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/PythonFunctorTests.cs:line 19
VERBOSE:   X NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession [29ms]         
VERBOSE:   Error Message:                                                                                               
VERBOSE:    System.InvalidOperationException : Cannot acquire current thread because it has been already acquired       
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.MainApplicationContext.ThreadAcquirer..ctor(MainApplicationContext context) in /home/soeren/nledger/Source/NLedger/MainApplicationContext.cs:line 204
VERBOSE:    at NLedger.MainApplicationContext.AcquireCurrentThread() in /home/soeren/nledger/Source/NLedger/MainApplicationContext.cs:line 168
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceSession.InitializeSession(IEnumerable`1 args, CancellationToken token) in /home/soeren/nledger/Source/NLedger/Utility/ServiceAPI/ServiceSession.cs:line 84
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceSession..ctor(ServiceEngine serviceEngine, IEnumerable`1 args, String inputText, CancellationToken token) in /home/soeren/nledger/Source/NLedger/Utility/ServiceAPI/ServiceSession.cs:line 37
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceEngine.CreatingSession(String args, String inputText, CancellationToken token) in /home/soeren/nledger/Source/NLedger/Utility/ServiceAPI/ServiceEngine.cs:line 87
VERBOSE:    at NLedger.Utility.ServiceAPI.ServiceEngine.CreateSession(String args, String inputText) in /home/soeren/nledger/Source/NLedger/Utility/ServiceAPI/ServiceEngine.cs:line 47
VERBOSE:    at NLedger.Extensibility.Python.Tests.ServiceApiIntegrationTests.ServiceAPI_Uses_PythonSession() in /home/soeren/nledger/Source/NLedger.Extensibility.Python.Tests/ServiceApiIntegrationTests.cs:line 54.Net Core] [Release]                                   ]
VERBOSE:                                                                                                                
VERBOSE: Total tests: 24                                                                                                
VERBOSE:      Passed: 18                                                                                                
VERBOSE:      Failed: 6                                                                                                 
VERBOSE:  Total time: 3.4355 Seconds                                                                                    
VERBOSE: Test case: file gh-issues-7.test; arguments: bal                                                               
VERBOSE: Test case: file gh-issues-7.test; arguments: equity                                                            
VERBOSE: Test case: file gh-issues-5.test; arguments: bal -> 1                                                          
VERBOSE: Test case: file nl-baseline-net-1.test; arguments: reg                                                         
VERBOSE: Test case: file nl-baseline-net-4.test; arguments: reg                                                         
VERBOSE: Test case: file opt-download.test; arguments: bal -V                                                           
VERBOSE: Test case: file opt-download.test; arguments: bal -V --download                                                
VERBOSE: Test case: file opt-download.test; arguments: bal -V --download --price-db ./test/nledger/pricedb.dat          
VERBOSE: Test case: file nl-issues-1.test; arguments: --script test/nledger/nl-issues-1.dat                             
VERBOSE: Test case: file nl-baseline-net-3.test; arguments: reg                                                         
VERBOSE: Test case: file nl-baseline-net-2.test; arguments: reg                                                         
VERBOSE: Test case: file 1182_1.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file A28CF697.test; arguments: print                                                                
VERBOSE: [xUnit.net 00:00:04.33]     NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_BF3C1F82 [SKIP]
VERBOSE: Test case: file BBFA1759.test; arguments: period june 2008                                                     
VERBOSE: Test case: file 543_a.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_a.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file 2CE7DADB.test; arguments: --anon pricedb --format "%(date) %(amount)\n"                        
VERBOSE: Test case: file 14DB77E7.test; arguments: reg income:adse -X GBP -H                                            
VERBOSE: Test case: file D943AE0F.test; arguments: reg -V --now=2008/04/20                                              
VERBOSE: Test case: file C523E23F.test; arguments: bal                                                                  
VERBOSE:   ! NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_BF3C1F82 [1ms]                  
VERBOSE: Test case: file 04D86CD0.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 1224.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file A013A73B.test; arguments: reg                                                                  
VERBOSE: Test case: file 1102.test; arguments: -i /dev/null reg                                                         
VERBOSE: Test case: file 78AB4B87_py.test; arguments: python test/regress/78AB4B87.py                                   
VERBOSE: Test case: file 1722.test; arguments: bal                                                                      
VERBOSE: Test case: file 727B2DF8.test; arguments: reg --force-color                                                    
VERBOSE: Test case: file 1055.test; arguments: bal                                                                      L]
VERBOSE: Test case: file 1384C1D8.test; arguments: bal                                                                  
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_78AB4B87_py [19ms]              
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '-5.00 GBP
VERBOSE: ' vs '')                                                                                                       
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
[xUnit.net 00:00:10.09]     NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_9188F587_py [FAIL]
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_78AB4B87_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 766
VERBOSE: Test case: file 1147-a.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file 0DDDEBC0.test; arguments: -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/0DDDEBC0.dat
VERBOSE: Test case: file 82763D86.test; arguments: -s reg liabilities                                                   
VERBOSE: Test case: file 1723.test; arguments: reg                                                                      
VERBOSE: Test case: file CEECC0B0.test; arguments: equity                                                               
VERBOSE: Test case: file 1187_5.test; arguments: bal                                                                    
VERBOSE: Test case: file 370-forecast_period_days.test; arguments: reg --forecast 'date <[2010/08/01]' --now=2010/06/13 
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg u: --cleared                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg p: --cleared                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --uncleared                                                   
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --pending                                                     
VERBOSE: Test case: file DE17CCF1.test; arguments: reg c: --cleared                                                     [FAIL]
VERBOSE: Test case: file BF3C1F82-2.test; arguments: -f - reg -> 1                                                      
VERBOSE: Test case: file BF3C1F82-2.test; arguments: -f /dev/stdin reg -> 1                                             
VERBOSE: Test case: file 1106.test; arguments: -F "»%(trim('    Trimmed          '))«\n" reg expenses                   
VERBOSE: Test case: file 1106.test; arguments: -F "»%(trim('Trimmed'))«\n" reg expenses                                 
VERBOSE: Test case: file 981.test; arguments: bal                                                                       
VERBOSE: Test case: file 981.test; arguments: reg --limit 'payee =~ /XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/'
VERBOSE: Test case: file 370-forecast_period_weeks.test; arguments: reg --forecast 'date <[2010/08/01]' --now=2010/06/21
VERBOSE: Test case: file 178501DC.test; arguments: bal -r simon                                                         
VERBOSE: Test case: file 178501DC.test; arguments: reg -r simon                                                         
VERBOSE: Test case: file CFE5D8AA.test; arguments: reg                                                                  
VERBOSE: Test case: file 6E041C52.test; arguments: reg                                                                  
VERBOSE: Test case: file C9D593B3.test; arguments: payees                                                               
VERBOSE: Test case: file 543_c.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_c.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file 6188B0EC.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 4D9288AE_py.test; arguments: python test/regress/4D9288AE.py                                   
VERBOSE: Test case: file 25A099C9.test; arguments: -f test/regress/25A099C9.dat reg -> 29                               
VERBOSE: Test case: file 5D92A5EB.test; arguments: -J reg checking -> 1                                                 
VERBOSE: Test case: file 375.test; arguments: reg -p "until Feb 2009"                                                   
VERBOSE: Test case: file 375.test; arguments: reg -p "until February 2009"                                              
VERBOSE: Test case: file 375.test; arguments: reg -p "in Feb 2009"                                                      
VERBOSE: Test case: file DDB54BB8.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file A560FDAD.test; arguments: reg -X EUR -H                                                        
VERBOSE: Test case: file 56BBE69B.test; arguments: bal                                                                  
VERBOSE: Test case: file 6DAB9FE3.test; arguments: reg -E                                                               
VERBOSE: Test case: file 1626.test; arguments: period every 1000 years from 1 Sep 2011 to 30 May 2012 --now=2018-06-10  
VERBOSE: Test case: file BFD3FBE1.test; arguments: reg -X EUR -H                                                        
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_4D9288AE_py [4ms]               
VERBOSE:   Error Message:                                                                                               
[xUnit.net 00:00:13.07]     NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_import_py [FAIL]
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'None' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_4D9288AE_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 514
VERBOSE: Test case: file 543_b.test; arguments: bal Assets                                                              
VERBOSE: Test case: file 543_b.test; arguments: bal Assets -R                                                           
VERBOSE: Test case: file AEDE9734.test; arguments: bal --group-by "tag('trip')"                                         
VERBOSE: Test case: file FDFBA165.test; arguments: --decimal-comma bal                                                  
VERBOSE: Test case: file FDFBA165.test; arguments: --decimal-comma reg                                                  
VERBOSE: Test case: file 889BB167.test; arguments: reg income:adse -X GBP -H                                            
VERBOSE: Test case: file 9EB10714.test; arguments: reg -J -V ^Actif                                                     
VERBOSE: Test case: file 8CE88DB4.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1D275740.test; arguments: print                                                                
VERBOSE: Test case: file 1038_2.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 0CA014F9.test; arguments: bal                                                                  
VERBOSE: Test case: file AA2FF2B.test; arguments: --args-only --decimal-comma bal                                       
VERBOSE: Test case: file E627C594.test; arguments: reg --forecast-while="d<[2010/03/01]" --now=2009/11/01               
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>=2"                                             
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>1"                                              
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth>2"                                              
VERBOSE: Test case: file 854150DF.test; arguments: bal --flat -d "depth==2"                                             
VERBOSE: Test case: file 3AAB00ED.test; arguments: --sort d -p "until 2010" reg                                         
VERBOSE: Test case: file CAE63F5C-c.test; arguments: bal -X $                                                           
VERBOSE: Test case: file 640D3205.test; arguments: print                                                                
VERBOSE: Test case: file 1036.test; arguments: source -> 17                                                             
VERBOSE: Test case: file 686.test; arguments: equity -e 2006                                                            
VERBOSE: Test case: file 8254755E.test; arguments: bal --flat food:out --now=2009/12/31                                 
VERBOSE: Test case: file 8254755E.test; arguments: bal --flat --budget food:out --now=2009/12/31                        
VERBOSE: Test case: file 1182_2.test; arguments: bal -> 1                                                               
VERBOSE: Test case: file 65FECA4D.test; arguments: reg                                                                  
VERBOSE: Test case: file EA18D948.test; arguments: reg A -V -A                                                          
VERBOSE: Test case: file 6D9066DD.test; arguments: print                                                                
VERBOSE: Test case: file 1159.test; arguments: reg -p "every 12 months from 2001/04/01"                                 
VERBOSE: Test case: file 1159.test; arguments: reg -p 'every 12 months'                                                 
VERBOSE: Test case: file FCE11C8D.test; arguments: reg --monthly --invert exp                                           
VERBOSE: Test case: file CAE63F5C-b.test; arguments: bal -X $                                                           
[xUnit.net 00:00:15.59]     NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py3 [FAIL]
VERBOSE: Test case: file 012ADB60.test; arguments: equity -e 2006                                                       
VERBOSE: Test case: file 553.test; arguments: -f - bal -> 5                                                             
VERBOSE: Test case: file 550-584.test; arguments: payees                                                                
VERBOSE: Test case: file 550-584.test; arguments: reg --group-by "tag('test')"                                          
VERBOSE: Test case: file 550-584.test; arguments: commodities                                                           
VERBOSE: Test case: file D060256A.test; arguments: budget --now=2009/11/01 --end=2009/11/30                             
VERBOSE: Test case: file 785.test; arguments: source -> 14                                                              
VERBOSE: Test case: file 647D5DB9.test; arguments: bal --end 2008/12/31 -JV Equities                                    
VERBOSE: Test case: file 1895.test; arguments: bal                                                                      
VERBOSE: Test case: file 1895.test; arguments: bal --invert                                                             
VERBOSE: Test case: file 1895.test; arguments: reg --format="%(account) %10(amount) %10(amount_expr) %10(total)        %10(display_amount) %10(display_total)\n"
VERBOSE: Test case: file 1895.test; arguments: reg --format="%(account) %10(amount) %10(amount_expr) %10(total)        %10(display_amount) %10(display_total)\n" --invert
VERBOSE: Test case: file 1222.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file 1A546C4D.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file market-group-by.test; arguments: reg -V --group-by commodity                                   
VERBOSE: Test case: file 793F6BF0.test; arguments: entry 2009/03/15 book 10                                             
VERBOSE: Test case: file AFAFB804.test; arguments: reg -S date,payee                                                    
VERBOSE: Test case: file AFAFB804.test; arguments: reg -S payee,date                                                    
VERBOSE: Test case: file 1050.test; arguments: bal                                                                      
VERBOSE: Test case: file 1050.test; arguments: pricedb                                                                  FAIL]
VERBOSE: Test case: file 3FE26304.test; arguments: bal -X \$ sub1                                                       
VERBOSE: Test case: file 3FE26304.test; arguments: reg -X \$ sub1 --now=2012/03/14                                      
VERBOSE: Test case: file 95350193.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1038_1.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 47C579B8.test; arguments: --decimal-comma --percent balance                                    
VERBOSE: Test case: file 1038_3.test; arguments: reg --now 2014-05-14 -p 'this month'                                   
VERBOSE: Test case: file 55831A79.test; arguments: bal discover                                                         
VERBOSE: Test case: file DB490507.test; arguments: print --decimal-comma --columns=999                                  
VERBOSE: Test case: file 5FBF2ED8.test; arguments: bal -B                                                               
VERBOSE: Test case: file B21BF389_py.test; arguments: python test/regress/B21BF389.py                                   
VERBOSE: Test case: file 9E0E606D.test; arguments: reg income:ad -X GBP -H                                              
VERBOSE: Test case: file 755.test; arguments: -F "%a\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%A\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%d\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%D\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%S\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%b\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%B\n" reg                                                             
VERBOSE: Test case: file 755.test; arguments: -F "%X%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%Y%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%C%P\n" reg                                                           
VERBOSE: Test case: file 755.test; arguments: -F "%N\n" reg                                                             
VERBOSE: Test case: file 461980A1.test; arguments: bal                                                                  
VERBOSE: Test case: file 1187_3.test; arguments: bal                                                                    
VERBOSE: Test case: file 1046.test; arguments: print                                                                    [FAIL]
VERBOSE: Test case: file A8FCC765.test; arguments: pricedb --price-db test/regress/A8FCC765.dat                         
VERBOSE: Test case: file 370-budget_period_weeks.test; arguments: reg --budget --now=2010/06/13                         
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_B21BF389_py [5ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'Christmas ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_B21BF389_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 976
VERBOSE: Test case: file 1894_1.test; arguments: bal                                                                    
VERBOSE: Test case: file 999-b.test; arguments: pricedb                                                                 
VERBOSE: Test case: file 999-b.test; arguments: reg Equity:Opening -X EUR                                               
VERBOSE:                                                                                                                
VERBOSE: Test Run Successful.                                                                                           
VERBOSE: Total tests: 1197                                                                                              
VERBOSE:      Passed: 1197                                                                                              
VERBOSE:  Total time: 8.5421 Seconds                                                                                    
VERBOSE: Test case: file 1CF1EEC2.test; arguments: equity assets                                                        
VERBOSE: Test case: file 4509F714.test; arguments: bal --exchange=€                                                     
VERBOSE: Test case: file 4509F714.test; arguments: bal --exchange=€ --percent                                           
VERBOSE: Test case: file 1132.test; arguments: bal -> 1                                                                 
VERBOSE: Test case: file 543_d.test; arguments: bal                                                                     
VERBOSE: Test case: file 543_d.test; arguments: bal -R                                                                  
VERBOSE: Test case: file 620F0674.test; arguments: reg bank --forecast "d<=[next year]" -d "d>=[this month] & d<=[next year]" --sort d --now=2010/06/20
Test Run Failed.
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses                                           
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --monthly                                 
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --monthly --exact                         
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly                                  
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --exact                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --empty                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "apr 2011" Expenses --weekly --empty --exact                  
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011"                                                    
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --monthly                                          
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly                                           
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --exact                                   
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --empty                                   
VERBOSE: Test case: file F06D5554.test; arguments: reg -p "may 2011" --weekly --empty --exact                           
VERBOSE: Test case: file 10D19C11.test; arguments: -E bal liabilities                                                   
VERBOSE: Test case: file 1894_2.test; arguments: bal                                                                    
VERBOSE: Test case: file 3AB70168.test; arguments: bal                                                                  
VERBOSE: Test case: file 1187_2.test; arguments: bal                                                                    
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y.%m.%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y/%m/%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y:%m:%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %Y-%m-%d                      
VERBOSE: Test case: file 383.test; arguments: bal Assets:Investments --lots --date-format %y-%b-%d                      
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-02-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-03-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal -B Assets:Investments -p "until 2011-04-20"                         
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-02-20"                            
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-03-20"                            
VERBOSE: Test case: file 713-a.test; arguments: bal Assets:Investments -p "until 2011-04-20"                            
VERBOSE: Test case: file C19E4E9B.test; arguments: reg --format "%S: %D %P %t %T\n"                                     
VERBOSE: Test case: file CAE63F5C-a.test; arguments: reg a                                                              
VERBOSE: Test case: file 730.test; arguments: -f /dev/null -M reg                                                       
VERBOSE: Test case: file 730.test; arguments: reg -M                                                                    
VERBOSE: Test case: file 730.test; arguments: reg -M .foo                                                               
VERBOSE: Test case: file 730.test; arguments: reg -M -e 2012/01                                                         
VERBOSE: Test case: file 730.test; arguments: reg '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
VERBOSE: Test case: file 730.test; arguments: bal '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
VERBOSE: Test case: file 730.test; arguments: bal reg foo and  expr 'any(account =~ /bar/)' --period 'every week'       
VERBOSE: Test case: file 730.test; arguments: b abc -M                                                                  
VERBOSE: Test case: file 730.test; arguments: reg foo -M                                                                
VERBOSE: Test case: file 730.test; arguments: bal foo -M                                                                
VERBOSE: Test case: file A3FA7601.test; arguments: -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/A3FA7601.dat
VERBOSE: Test case: file 370-period.test; arguments: period 'every 14 days from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 1 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 2 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 3 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 4 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 5 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 6 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 7 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 8 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 9 weeks from 2011/10/03'                             
VERBOSE: Test case: file 370-period.test; arguments: period 'every 10 weeks from 2011/10/03'                            
VERBOSE: Test case: file total-2.test; arguments: bal                                                                   
VERBOSE: Test case: file 786A3DD0.test; arguments: pricedb                                                              
VERBOSE: Test case: file 1703.test; arguments: reg assets:a -V --now 2018-12-31                                         
VERBOSE: Test case: file 68917252.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/regress/68917252.dat
VERBOSE: Test case: file C0212EAC.test; arguments: reg                                                                  
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food                                                             
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -V                                                          
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$'                                                      
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$,GBP'                                                  
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$!,GBP'                                                 
VERBOSE: Test case: file 83B4A0E5.test; arguments: reg food -X '$,EUR'                                                  
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2013-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2014-02-03 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2014-10-02 reg -p "from june to july"                              
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2013-10-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2014-01-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2014-10-02 reg -p "from june to july 2014"                         
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june 2012 to july 2014"                    
VERBOSE: Test case: file 1074.test; arguments: --now 2012-02-03 reg -p "from june 2013 to july 2014"                    
VERBOSE: Test case: file 1074.test; arguments: --now 2015-02-03 reg -p "from june 2013 to july 2014"                    
VERBOSE: Test case: file 1147-b.test; arguments: bal                                                                    
VERBOSE: Test case: file 5F1BAF17.test; arguments: bal da39 --flat --sort amount --display-total amount                 
VERBOSE: Test case: file 999-a.test; arguments: prices                                                                  
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 2/1/13                          
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 1/1/14                          
VERBOSE: Test case: file 1072.test; arguments: --input-date-format %d/%m/%y reg --begin 2/1/14                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-02-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-03-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal -B Assets:Investment -p "until 2014-04-20"                          
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-02-20"                             
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-03-20"                             
VERBOSE: Test case: file 713-b.test; arguments: bal Assets:Investment -p "until 2014-04-20"                             
VERBOSE: Test case: file E4C9A8EA.test; arguments: reg                                                                  
VERBOSE: Test case: file 1187_1.test; arguments: bal                                                                    
VERBOSE: Test case: file 6E7C2DF9.test; arguments: reg --sort date account                                              
VERBOSE: Test case: file 1E192DF6.test; arguments: reg                                                                  
VERBOSE: Test case: file 1775.test; arguments: reg --input-date-format %F                                               
VERBOSE: Test case: file 53BCED29.test; arguments: bal -V                                                               
VERBOSE: Test case: file xact_code_py.test; arguments: python test/regress/xact_code.py                                 
VERBOSE: Test case: file 89233B6D.test; arguments: reg "^A:"                                                            
VERBOSE: Test case: file E9F130C5.test; arguments: bal as                                                               
VERBOSE: Test case: file 751B2357.test; arguments: print --date-format=%d.%m.%Y --input-date-format=%d.%m.%Y            
VERBOSE: Test case: file 5A03CFC3.test; arguments: bal assets                                                           
VERBOSE: Test case: file 04C5E1CA.test; arguments: reg                                                                  
VERBOSE: Test case: file E2E479BC.test; arguments: print                                                                
VERBOSE: Test case: file ACE05ECE.test; arguments: reg Hello                                                            
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_xact_code_py [2ms]              
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'C0-d3' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_xact_code_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 1256
VERBOSE: Test case: file 712-b.test; arguments: bal                                                                     
VERBOSE: Test case: file F559EC12.test; arguments: format "%-12(scrub(amount))"                                         
VERBOSE: Test case: file F559EC12.test; arguments: format "%12(scrub(amount))"                                          
VERBOSE: Test case: file 7C44010B.test; arguments: reg -X F -J Assets                                                   
VERBOSE: Test case: file 0161EB1E.test; arguments: reg                                                                  
VERBOSE: Test case: file 8EAF77C0.test; arguments: reg -> 1                                                             
VERBOSE: Test case: file D2829FC4.test; arguments: reg --forecast 'date<[2011]' --now=2010/06/20                        
VERBOSE: Test case: file error-in-include.test; arguments: bal -> 1                                                     
VERBOSE: Test case: file 712-a.test; arguments: -X $ -V  reg                                                            
VERBOSE: Test case: file 1753.test; arguments: reg -> 1                                                                 
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(""))\n'                                            
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim("a"))\n'                                           
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" a"))\n'                                          
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim("a "))\n'                                          
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" a "))\n'                                         
VERBOSE: Test case: file GH520.test; arguments: reg --format '%(trim(" aa "))\n'                                        
VERBOSE: Test case: file 1187_4.test; arguments: bal                                                                    
VERBOSE: Test case: file 86D2BDC4.test; arguments: reg -B                                                               
VERBOSE: Test case: file 370-budget_period_days.test; arguments: reg --budget --now=2010/06/13                          
VERBOSE: Test case: file 13965214.test; arguments: reg                                                                  
VERBOSE: Test case: file 15A80F68.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 2E3496BD.test; arguments: bal -> 1                                                             
VERBOSE: Test case: file 605A410D.test; arguments: reg                                                                  
VERBOSE: Test case: file 373540CC.test; arguments: bal --sort total --flat -X '$' not '(Income|Liabilities)'            
VERBOSE: Test case: file total-1.test; arguments: bal                                                                   
VERBOSE: Test case: file 96A8E4A1.test; arguments: -X EUR -H bal                                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 12/01                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 10/01                                        
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009/10                                      
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009/10/01                                   
VERBOSE: Test case: file 7F3650FD.test; arguments: period --now=2010/11/01 2009                                         
VERBOSE: Test case: file B68FFB0D.test; arguments: print                                                                
VERBOSE: Test case: file 15230B79.test; arguments: reg                                                                  
VERBOSE: Test case: file D51BFF74.test; arguments: reg -> 1                                                             
VERBOSE: Test case: file fix-missing-trans-in-last-budget-period.test; arguments: reg --budget -b 2014/10 -e 2015/02 --columns 80 --date-format "%F" reg ^Bu
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date>=[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date<=[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date==[2010/02/10]" reg                                          
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date>[2010/02/10]" reg                                           
VERBOSE: Test case: file C927CFFE.test; arguments: -l "date<[2010/02/10]" reg                                           
VERBOSE: Test case: file F524E251.test; arguments: -n reg                                                               
VERBOSE: Test case: file 9188F587_py.test; arguments: python test/regress/9188F587.py                                   
VERBOSE: Test case: file 1057.test; arguments: --now=2014/06/27 emacs                                                   
VERBOSE: Test case: file 1702.test; arguments: bal                                                                      
VERBOSE: Test case: file 1127.test; arguments: bal Foo                                                                  
VERBOSE: Test case: file D9C8EB08.test; arguments: bal -> 1                                                             
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_9188F587_py [2ms]               
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '-5.00 GBP
VERBOSE: ' vs '')                                                                                                       
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_regress.IntegrationTest_test_regress_9188F587_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetRegress.cs:line 857
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --auto-match convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --account Assets:Bank convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-auto-match.test; arguments: --input-date-format "%Y-%m-%d" --auto-match --account Assets:Bank convert test/baseline/opt-auto-match.dat
VERBOSE: Test case: file opt-uncleared.test; arguments: reg --uncleared                                                 
VERBOSE: Test case: file opt-plot-total-format.test; arguments: reg -J --plot-total-format='X %(format_date(date, "%Y-%m-%d")) Y %(quantity(scrub(display_amount)))\n'
VERBOSE: Test case: file opt-immediate.test; arguments: bal -V --unrealized                                             
VERBOSE: Test case: file opt-immediate.test; arguments: bal -V --immediate                                              
VERBOSE: Test case: file opt-immediate.test; arguments: reg -V --immediate                                              
VERBOSE: Test case: file opt-amount.test; arguments: reg --amount=10                                                    
VERBOSE: Test case: file opt-no-rounding.test; arguments: reg -X EUR -H --no-rounding                                   
VERBOSE: Test case: file opt-unround.test; arguments: bal --percent --unround                                           
VERBOSE: Test case: file opt-code-as-account.test; arguments: reg --account=code                                        
VERBOSE: Test case: file dir-account.test; arguments: reg                                                               
VERBOSE: Test case: file opt-no-titles.test; arguments: reg -f test/input/drewr3.dat --no-titles --group-by payee reg food
VERBOSE: Test case: file feat-value-expr.test; arguments: reg -V food                                                   
VERBOSE: Test case: file opt-total-data.test; arguments: reg --market --total-data                                      
VERBOSE: Test case: file opt-csv-format.test; arguments: csv --csv-format='"%(date)"\n'                                 
VERBOSE: Test case: file opt-group-by.test; arguments: reg --group-by payee                                             
VERBOSE: Test case: file opt-group-by.test; arguments: reg --group-by commodity                                         
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by commodity                                         
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by payee                                             
VERBOSE: Test case: file opt-group-by.test; arguments: bal --group-by date                                              
VERBOSE: Test case: file opt-amount-width.test; arguments: reg --amount-width=18                                        
VERBOSE: Test case: file opt-yearly.test; arguments: reg --yearly books                                                 
VERBOSE: Test case: file dir-commodity-value.test; arguments: reg food -X EUR --now=2012-03-15                          
VERBOSE: Test case: file opt-recursive-aliases.test; arguments: reg --recursive-aliases                                 
VERBOSE: Test case: file dir-commodity.test; arguments: bal --pedantic -> 1                                             
VERBOSE: Test case: file opt-pager.test; arguments: reg --pager=cat                                                     
VERBOSE: 07-Feb-02 RD VMMXX              As:Inves:Vanguar:VMMXX  0.350 VMMXX  0.350 VMMXX                               
VERBOSE:                                 In:Divid:Vanguar:VMMXX       $-0.35       $-0.35                               
VERBOSE:                                                                      0.350 VMMXX                               
VERBOSE: Test case: file opt-equity.test; arguments: reg --equity                                                       
VERBOSE: Test case: file opt-equity.test; arguments: reg assets --equity                                                
VERBOSE: Test case: file opt-equity.test; arguments: reg assets:bank --equity                                           
VERBOSE: Test case: file opt-equity.test; arguments: reg assets:broker --equity                                         
VERBOSE: Test case: file opt-equity.test; arguments: reg --lots --date-format %Y/%m/%d --equity                         
VERBOSE: Test case: file cmd-tags.test; arguments: tags                                                                 
VERBOSE: Test case: file cmd-tags.test; arguments: tags --values                                                        
VERBOSE: Test case: file cmd-tags.test; arguments: tags --values --count                                                
VERBOSE: Test case: file opt-real.test; arguments: reg --real                                                           
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 1                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 2                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 3                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 4                                                       
VERBOSE: Test case: file opt-depth.test; arguments: bal --depth 5                                                       
VERBOSE: Test case: file opt-meta.test; arguments: reg --meta Sample                                                    
VERBOSE: Test case: file opt-count.test; arguments: accounts --count                                                    
VERBOSE: Test case: file opt-count.test; arguments: commodities --count                                                 
VERBOSE: Test case: file opt-count.test; arguments: payees --count                                                      
VERBOSE: Test case: file opt-count.test; arguments: commodities :rent --count                                           
VERBOSE: Test case: file opt-count.test; arguments: payees tag bnb --count                                              
VERBOSE: Test case: file opt-check-payees.test; arguments: bal --strict --check-payees                                  
VERBOSE: Test case: file dir-apply.test; arguments: reg food                                                            
VERBOSE: Test case: file opt-actual.test; arguments: print --actual                                                     
VERBOSE: Test case: file opt-abbrev-len.test; arguments: reg --abbrev-len=4                                             
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 1"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 2"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 3"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: --now 2012/03/25 xact "Test 4"                                       
VERBOSE: Test case: file cmd-xact.test; arguments: xact no:such:account -> 1                                            
VERBOSE: Test case: file opt-basis.test; arguments: bal --basis                                                         
VERBOSE: Test case: file feat-import_py.test; arguments: reg                                                            
VERBOSE: Test case: file opt-code-as-payee.test; arguments: reg --payee=code                                            
VERBOSE: Test case: file opt-decimal-comma.test; arguments: --decimal-comma bal                                         
VERBOSE: Test case: file opt-by-payee.test; arguments: reg --by-payee not @End                                          
VERBOSE: Test case: file opt-budget.test; arguments: reg --budget books --now=2009/12/31                                
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -V --value-expr "25.00 EUR"             
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_import_py [3ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_import_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 318
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -G --value-expr "date < [March 2015] ? 22.00 EUR : 25.00 EUR" --now "2015-02-20"
VERBOSE: Test case: file opt-value-expr.test; arguments: bal assets:investments -G --value-expr "date < [March 2015] ? 22.00 EUR : 25.00 EUR" --now "2015-03-20"
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food                                              
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food -V                                           
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food   -X "DM" --now "2015-05-02"                 
VERBOSE: Test case: file opt-value-expr.test; arguments: bal expenses:food   -X "DM" --now "2015-06-02"                 
VERBOSE: Test case: file opt-unrealized.test; arguments: bal -V --unrealized                                            
VERBOSE: Test case: file opt-exact.test; arguments: reg --weekly --exact books                                          
VERBOSE: Test case: file opt-prepend-width.test; arguments: bal --prepend-format "%(account_base) " --prepend-width=10  
VERBOSE: Test case: file opt-prepend-width.test; arguments: reg --prepend-format "%(account_base) " --prepend-width=10  
VERBOSE: Test case: file opt-prepend-width.test; arguments: accounts --prepend-format "%(account_base) " --prepend-width=10
VERBOSE: Test case: file opt-budget-format.test; arguments: budget --now 2012-02-29 --budget-format "%(justify(scrub(display_total), 0))\n"
VERBOSE: [xUnit.net 00:00:11.55]     NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py2 [SKIP]
VERBOSE: Test case: file cmd-source.test; arguments: source -> 7                                                        
VERBOSE: Test case: file opt-lots_basis_base.test; arguments: reg --basis --base                                        
VERBOSE: Test case: file opt-raw.test; arguments: print --raw                                                           
VERBOSE: Test case: file opt-plot-amount-format.test; arguments: reg -j --plot-amount-format='X %(format_date(date, "%Y-%m-%d")) Y %(quantity(scrub(display_amount)))\n'
VERBOSE:   ! NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py2 [1ms]          
VERBOSE: Test case: file opt-forecast_only.test; arguments: reg --forecast 'date <[2011]' --now=2010/06/21              
VERBOSE: Test case: file cmd-print.test; arguments: print --decimal-comma                                               
VERBOSE: Test case: file opt-master-account.test; arguments: bal --master-account=Master                                
VERBOSE: Test case: file cmd-register.test; arguments: reg                                                              
VERBOSE: Test case: file cmd-register.test; arguments: r :inve                                                          
VERBOSE: Test case: file cmd-register.test; arguments: reg :inve                                                        
VERBOSE: Test case: file cmd-register.test; arguments: register :inve                                                   
VERBOSE: Test case: file opt-limit.test; arguments: reg --limit='account =~ /Books/ and amount < 50'                    
VERBOSE: Test case: file opt-inject.test; arguments: --inject Expected reg Expenses:Phone                               
VERBOSE: Test case: file opt-head.test; arguments: reg --head=10 books                                                  
VERBOSE: Test case: file opt-head.test; arguments: reg --first=10 books                                                 
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert1.dat
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert2.dat
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-convert3.dat -> 1
VERBOSE: Test case: file cmd-convert.test; arguments: -f /dev/null convert test/baseline/cmd-convert4.dat -> 1          
VERBOSE: Test case: file opt-exchange.test; arguments: reg --exchange=' C, A '                                          
VERBOSE: Test case: file opt-exchange.test; arguments: reg --exchange=' C!, A '                                         
VERBOSE: Test case: file opt-dc.test; arguments: reg --dc                                                               
VERBOSE: Test case: file opt-dc.test; arguments: bal --dc                                                               
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount" from posts                          
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount from posts where account =~ /^e/"    
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount from posts where account =~ /e/"     
VERBOSE: Test case: file cmd-select.test; arguments: select "date, account, amount where account =~ /e/"                
VERBOSE: Test case: file cmd-select.test; arguments: select "date, payee, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, payee, amount * 2 from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, code, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file cmd-select.test; arguments: select "date, code * 2, amount from posts where account =~ /e/ and commodity =~ /GBP/"
VERBOSE: Test case: file opt-now.test; arguments: eval today --now=2009/01/01                                           
VERBOSE: Test case: file opt-total.test; arguments: reg --total=10                                                      
VERBOSE: Test case: file opt-begin.test; arguments: reg --begin=2009/02                                                 
VERBOSE: Test case: file opt-cost.test; arguments: bal --cost                                                           
VERBOSE: Test case: file opt-day-break.test; arguments: reg --base                                                      
VERBOSE: Test case: file opt-day-break.test; arguments: reg --base --day-break                                          
VERBOSE: Test case: file opt-unrealized-gains.test; arguments: bal -V --unrealized --unrealized-gains G                 
VERBOSE: Test case: file opt-price.test; arguments: reg equities                                                        
VERBOSE: Test case: file opt-price.test; arguments: reg -B equities                                                     
VERBOSE: Test case: file opt-price.test; arguments: reg --end 2009/06/26 -V equities                                    
VERBOSE: Test case: file opt-price.test; arguments: reg --end 2009/06/26 -G equities                                    
VERBOSE: Test case: file opt-price.test; arguments: reg -I equities                                                     
VERBOSE: Test case: file opt-file.test; arguments: -f opt-file-does-not-exist.dat bal -> 1                              
VERBOSE: Test case: file opt-file.test; arguments: -f test/baseline/opt-file1.dat -f test/baseline/opt-file2.dat bal    
VERBOSE: Test case: file cmd-balance.test; arguments: bal                                                               
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n                                                            
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n -E                                                         
VERBOSE: Test case: file cmd-balance.test; arguments: bal -E                                                            
VERBOSE: Test case: file cmd-balance.test; arguments: bal --flat                                                        
VERBOSE: Test case: file cmd-balance.test; arguments: bal --flat -E                                                     
VERBOSE: Test case: file cmd-balance.test; arguments: bal -E --flat --no-total                                          
VERBOSE: Test case: file cmd-balance.test; arguments: bal -n --flat                                                     
VERBOSE: Test case: file opt-no-total.test; arguments: bal --no-total                                                   
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 1"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 2"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 3"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: --now 2012/03/25 entry "Test 4"                                     
VERBOSE: Test case: file cmd-entry.test; arguments: entry no:such:account -> 1                                          
VERBOSE: Test case: file opt-empty_collapse.test; arguments: reg --empty --collapse                                     
VERBOSE: Test case: file dir-import_py.test; arguments: reg                                                             
VERBOSE: Test case: file opt-deviation.test; arguments: reg -A --deviation books                                        
VERBOSE: Test case: file opt-quarterly.test; arguments: reg --quarterly books                                           
VERBOSE: Test case: file opt-forecast-while.test; arguments: reg --now=2009/03/21 --forecast-while='total < $3500' books
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_import_py [4ms]           
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_import_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 234
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts                                                         
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts assets:a                                                
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts b                                                       
VERBOSE: Test case: file cmd-accounts.test; arguments: accounts ß                                                       
VERBOSE: Test case: file opt-average.test; arguments: reg --average books                                               
VERBOSE: Test case: file feat-convert-with-directives.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat
VERBOSE: Test case: file feat-convert-with-directives.test; arguments: --account "Assets:Cash" convert test/baseline/feat-convert-with-directives.dat
VERBOSE: Test case: file cmd-payees.test; arguments: payees                                                             
VERBOSE: Test case: file cmd-payees.test; arguments: payees a                                                           
VERBOSE: Test case: file cmd-payees.test; arguments: payees no:such:account                                             
VERBOSE: Test case: file cmd-payees.test; arguments: payees "^B$"                                                       
VERBOSE: Test case: file opt-amount-data.test; arguments: reg --amount-data                                             
VERBOSE: Test case: file opt-collapse.test; arguments: bal --collapse                                                   
VERBOSE: Test case: file opt-empty_bal_flat.test; arguments: bal --empty --flat                                         
VERBOSE: Test case: file opt-account.test; arguments: reg --account='payee + ":" + commodity'                           
VERBOSE: Test case: file opt-init-file.test; arguments: --init-file test/baseline/opt-init-file.dat bal                 
VERBOSE: Test case: file opt-script.test; arguments: --script test/baseline/opt-script.dat                              
VERBOSE: Test case: file opt-gain.test; arguments: reg --gain stocks                                                    
VERBOSE: Test case: file opt-gain.test; arguments: bal --change                                                         
VERBOSE: Test case: file opt-gain.test; arguments: bal -G                                                               
VERBOSE: Test case: file opt-invert.test; arguments: reg --invert                                                       
VERBOSE: Test case: file cmd-csv.test; arguments: csv                                                                   
VERBOSE: Test case: file opt-payee-width.test; arguments: reg --payee-width=40                                          
VERBOSE: Test case: file opt-start-of-week.test; arguments: reg --weekly --start-of-week=mon books                      
VERBOSE: Test case: file opt-monthly.test; arguments: reg --monthly books                                               
VERBOSE: Test case: file opt-current.test; arguments: bal --current                                                     
VERBOSE: Test case: file cmd-stats.test; arguments: stats --now "2012-03-31"                                            
VERBOSE: Test case: file opt-weekly.test; arguments: reg --weekly books                                                 
VERBOSE: Test case: file opt-market.test; arguments: reg --market stocks                                                
VERBOSE: Test case: file opt-add-budget.test; arguments: reg --add-budget books cards --now=2009/12/31                  
VERBOSE: Test case: file opt-lots_basis.test; arguments: reg --basis                                                    
VERBOSE: Test case: file feat-fixated-prices.test; arguments: reg -V gas                                                
VERBOSE: Test case: file opt-bold-if.test; arguments: reg --bold-if 'has_tag("test")'                                   
VERBOSE: Test case: file feat-balance-assignments.test; arguments: bal                                                  
VERBOSE: Test case: file dir-alias.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-values.test; arguments: tags -f test/input/drewr3.dat --values                             
VERBOSE: Test case: file opt-lot-tags.test; arguments: bal --lot-tags tajer                                             
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice                              
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --flat                       
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty                      
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty -p "until 2014-05-05"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Invoice --empty -p "until 2014-05-06"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer                             
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --flat                      
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty                     
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty -p "until 2014-05-05"
VERBOSE: Test case: file opt-pivot.test; arguments: bal assets:receivables --pivot Customer --empty -p "until 2014-05-06"
VERBOSE: Test case: file opt-time-colon.test; arguments: bal                                                            
VERBOSE: Test case: file opt-time-colon.test; arguments: bal --time-colon                                               
VERBOSE: Test case: file opt-time-colon.test; arguments: reg --time-colon                                               
VERBOSE: Test case: file feat-balance_assert-off.test; arguments: bal -> 1                                              
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities                                                   
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities Assets:Rewards                                    
VERBOSE: Test case: file cmd-commodities.test; arguments: commodities no:such:account                                   
VERBOSE: Test case: file feat-balance_assert_split.test; arguments: balance                                             
VERBOSE: Test case: file opt-aux-date.test; arguments: reg --aux-date                                                   
VERBOSE: Test case: file opt-related-all.test; arguments: reg --related-all credit                                      
VERBOSE: Test case: file opt-pending.test; arguments: reg --pending                                                     
VERBOSE: Test case: file feat-check.test; arguments: bal                                                                
VERBOSE: Test case: file opt-end.test; arguments: reg --end=2009/02                                                     
VERBOSE: Test case: file opt-trace.test; arguments: reg --trace 10 2>/dev/null                                          
VERBOSE: Test case: file opt-collapse-if-zero.test; arguments: reg --collapse-if-zero                                   
VERBOSE: Test case: file opt-lots.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lots --date-format %Y/%m/%d
VERBOSE: Test case: file dir-alias-fail.test; arguments: source -> 1                                                    
VERBOSE: Test case: file opt-input-date-format.test; arguments: reg --input-date-format='%m%%%d%%%Y'                    
VERBOSE: Test case: file opt-lots-actual.test; arguments: reg --format '%(justify(scrub(total_expr), 40, 40, true))\n' --lots --date-format %Y/%m/%d
VERBOSE: Test case: file opt-lots-actual.test; arguments: reg --format '%(justify(scrub(total_expr), 40, 40, true))\n' --lots-actual
VERBOSE: Test case: file opt-related.test; arguments: reg --related credit                                              
VERBOSE: Test case: file opt-empty.test; arguments: reg --empty                                                         
VERBOSE: Test case: file opt-percent.test; arguments: bal --percent                                                     
VERBOSE: Test case: file opt-tail.test; arguments: reg --tail=10 books                                                  
VERBOSE: Test case: file opt-tail.test; arguments: reg --last=10 books                                                  
VERBOSE: Test case: file opt-no-revalued.test; arguments: reg --market --no-revalued stocks                             
VERBOSE: Test case: file opt-budget_only.test; arguments: reg income --budget --now=2010/06/20                          
VERBOSE: Test case: file opt-flat.test; arguments: bal --flat                                                           
VERBOSE: Test case: file opt-group-title-format.test; arguments: bal --group-by payee --group-title-format "-%(value)-\n"
VERBOSE: Test case: file opt-group-title-format.test; arguments: bal --group-by date --group-title-format "|%(value)|\n"
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(w, u)=(z=w+u;z*2); (a=1 + 1; foo(10, 15))'               
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(x, y, z)=print(x, y, z); bar(x)=x; foo(1, 2, 3); bar(3)' 
VERBOSE: Test case: file cmd-script.test; arguments: eval 'total_expr=$100;amount_expr=$15;x=total_expr;x=x/5;x=amount_expr-x*5;x'
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo = x, y, z -> print(x, y, z); foo(1, 2, 3)'               
VERBOSE: Test case: file cmd-script.test; arguments: eval 'foo(x,y)=y(1, 2, 3);foo(amount_expr, (s,d,t -> t))'          
VERBOSE: Test case: file opt-account-width.test; arguments: reg --account-width=40                                      
VERBOSE: Test case: file feat-value_py3.test; arguments: reg                                                            
VERBOSE: Test case: file opt-sort-xacts.test; arguments: reg --sort=account                                             
VERBOSE: Test case: file opt-sort-xacts.test; arguments: reg --sort-xacts=account                                       
VERBOSE: Test case: file opt-pedantic.test; arguments: bal --pedantic -> 2                                              
VERBOSE: Test case: file opt-unbudgeted.test; arguments: reg --unbudgeted                                               
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --begin 2014/01/01 --end 2014/01/14               
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --effective --begin 2014/01/01 --end 2014/01/14   
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --primary-date --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: bal Income --actual-dates --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --begin 2014/01/01 --end 2014/01/14              
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --effective --begin 2014/01/01 --end 2014/01/14  
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --primary-date --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg  Income --actual-dates --effective --begin 2014/01/01 --end 2014/01/14
VERBOSE: Test case: file opt-primary-date.test; arguments: reg checking                                                 
VERBOSE: Test case: file opt-primary-date.test; arguments: reg checking --primary-date --effective                      
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries                                           
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --effective                               
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --primary-date --effective                
VERBOSE: Test case: file opt-primary-date.test; arguments: register Groceries --actual-dates --effective                
VERBOSE: Test case: file dir-payee.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-display.test; arguments: reg --display='payee =~ /February/' books                         
VERBOSE: Test case: file opt-time-report.test; arguments: bal                                                           
VERBOSE: Test case: file opt-time-report.test; arguments: bal --time-report                                             
VERBOSE: Test case: file opt-time-report.test; arguments: bal --time-report --time-colon                                
VERBOSE: Test case: file opt-pricedb-format.test; arguments: pricedb --pricedb-format='P %(date) %(scrub(display_amount))\n'
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py3 [6ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '<class 'bo' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_value_py3() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 346
VERBOSE: Test case: file opt-date-width.test; arguments: reg --date-width=20                                            
VERBOSE: Test case: file opt-permissive.test; arguments: bal --permissive                                               
VERBOSE: Test case: file dir-fixed.test; arguments: reg                                                                 
VERBOSE: Test case: file opt-cleared.test; arguments: reg --cleared                                                     
VERBOSE: Test case: file opt-revalued-only.test; arguments: reg --market --revalued-only stocks                         
VERBOSE: Test case: file opt-display-total.test; arguments: reg --display-total='amount * 10' books                     
VERBOSE: Test case: file cmd-echo.test; arguments: echo foo                                                             
VERBOSE: Test case: file cmd-echo.test; arguments: echo "foo bar"                                                       
VERBOSE: Test case: file cmd-echo.test; arguments: echo "foo\nbar"                                                      
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --now '2014/08/01'
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --detail --now '2014/08/01'
VERBOSE: Test case: file opt-rich-data.test; arguments: -f /dev/null convert test/baseline/feat-convert-with-directives.dat --rich-data --date-format %d-%m-%Y --now '2014/08/01'
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 1 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 2 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 3 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 4 --flat                                           
VERBOSE: Test case: file opt-depth_flat.test; arguments: bal --depth 5 --flat                                           
VERBOSE: Test case: file opt-budget_range.test; arguments: reg --now=2010/02 --sort=date exp --budget                   
VERBOSE: Test case: file opt-columns.test; arguments: reg --columns=100                                                 
VERBOSE: Test case: file opt-empty_bal.test; arguments: bal --empty                                                     
VERBOSE: Test case: file opt-format.test; arguments: reg --format='%(account) = %(strip(amount))\n'                     
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date                                              
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date,amount                                       
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=date,-amount                                      
VERBOSE: Test case: file opt-sort.test; arguments: reg airfare --sort=-date,-amount                                     
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=total                                                     
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=-total                                                    
VERBOSE: Test case: file opt-sort.test; arguments: bal --sort=-account                                                  
VERBOSE: Test case: file opt-sort.test; arguments: reg --sort=account                                                   
VERBOSE: Test case: file cmd-cleared.test; arguments: cleared                                                           
VERBOSE: Test case: file opt-payee-as-account.test; arguments: reg --account=payee                                      
VERBOSE: Test case: file dir-python_py.test; arguments: reg                                                             
VERBOSE: Test case: file cmd-pricemap.test; arguments: pricemap                                                         
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_python_py [4ms]           
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: '12-Feb-29 ' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_dir_python_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 248
VERBOSE: Test case: file opt-lot-prices.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lot-prices
VERBOSE: Test case: file opt-revalued.test; arguments: reg --market --revalued stocks                                   
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --limit='amount > $100'                          
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --only='amount > $100'                           
VERBOSE: Test case: file opt-only.test; arguments: reg books --monthly --display='amount > $100'                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks                                                     
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -V --now=2012/05/10                                 
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -V --now=2012/05/10                              
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -X EUR --now=2012/05/10                             
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -X EUR --now=2012/05/10                          
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H                                                  
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H -V                                               
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H -V                                            
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -H -X EUR                                           
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -O -H -X EUR                                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -B -H -X EUR                                        
VERBOSE: Test case: file opt-historical.test; arguments: reg stocks -I -H -X EUR                                        
VERBOSE: Test case: file opt-register-format.test; arguments: reg --register-format='%(amount)\n'                       
VERBOSE: Test case: file opt-balance-format.test; arguments: bal --balance-format='%(account)\n' --no-total             
VERBOSE: Test case: file opt-average-lot-prices.test; arguments: bal assets:investments --average-lot-prices            
VERBOSE: Test case: file opt-meta-width.test; arguments: reg --meta Sample --meta-width=15                              
VERBOSE: Test case: file opt-commodity-as-account.test; arguments: reg --account=commodity                              
VERBOSE: Test case: file opt-commodity-as-payee.test; arguments: reg --payee=commodity                                  
VERBOSE: Test case: file opt-price-db.test; arguments: pricedb --price-db test/baseline/opt-price-db.dat                
VERBOSE: Test case: file opt-no-aliases.test; arguments: reg                                                            
VERBOSE: Test case: file opt-no-aliases.test; arguments: reg --no-aliases                                               
VERBOSE: Test case: file opt-collapse_reg.test; arguments: reg --collapse food                                          
VERBOSE: Test case: file opt-total-width.test; arguments: reg --total-width=25                                          
VERBOSE: Test case: file opt-period.test; arguments: reg -p "january 2008"                                              
VERBOSE: Test case: file opt-period.test; arguments: reg -p "monthly january 2008"                                      
VERBOSE: Test case: file opt-period.test; arguments: reg -p "weekly january 2008"                                       
VERBOSE: Test case: file opt-period.test; arguments: reg -p "yearly 2008"                                               
VERBOSE: Test case: file opt-period.test; arguments: reg -p "from 2009/11/01"                                           
VERBOSE: Test case: file opt-strict.test; arguments: reg --strict                                                       
VERBOSE: Test case: file opt-color.test; arguments: bal --color                                                         
VERBOSE: Test case: file opt-cleared-format.test; arguments: cleared --file test/input/drewr3.dat --cleared-format "%-30(account) %15(get_at(total_expr, 0)) %15(get_at(total_expr, 1))\n%/"
VERBOSE: Test case: file opt-quantity.test; arguments: reg --quantity                                                   
VERBOSE: Test case: file opt-prices-format.test; arguments: prices --prices-format='%(datetime) %(scrub(display_amount))\n'
VERBOSE: Test case: file opt-base.test; arguments: bal --base                                                           
VERBOSE: Test case: file opt-unrealized-losses.test; arguments: bal -V --unrealized --unrealized-losses L               
VERBOSE: Test case: file feat-option_py.test; arguments: reg                                                            
VERBOSE: Test case: file opt-lot-notes.test; arguments: bal assets:voucher --lot-notes                                  
VERBOSE: Test case: file opt-lot-notes.test; arguments: reg assets:voucher --lot-notes                                  
VERBOSE: Test case: file opt-force-color.test; arguments: bal --force-color                                             
VERBOSE: Test case: file opt-force-color.test; arguments: bal                                                           
VERBOSE: Test case: file dir-tag.test; arguments: reg                                                                   
VERBOSE: Test case: file dir-commodity-alias.test; arguments: bal                                                       
VERBOSE:   X NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_option_py [3ms]          
VERBOSE:   Error Message:                                                                                               
VERBOSE:    Test case failed with runtime error: Produced output does not match expected one (First difference at 0 position: 'In --pyfir' vs '')
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE: Expected: True                                                                                                 
VERBOSE: Actual:   False                                                                                                
VERBOSE:   Stack Trace:                                                                                                 
VERBOSE:      at NLedger.IntegrationTests.TestRunner.Run(String extensionProviderName) in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestRunner.cs:line 151
VERBOSE:    at NLedger.IntegrationTests.TestSet_test_baseline.IntegrationTest_test_baseline_feat_option_py() in /home/soeren/nledger/Source/NLedger.IntegrationTests/TestSetBaseline.cs:line 325
VERBOSE: Test case: file dir-commodity-alias.test; arguments: reg a                                                     
VERBOSE: Test case: file cmd-prices.test; arguments: prices                                                             
VERBOSE: Test case: file cmd-prices.test; arguments: prices EUR                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices USD                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices GBP                                                         
VERBOSE: Test case: file cmd-prices.test; arguments: prices U                                                           
VERBOSE: Test case: file opt-daily.test; arguments: reg --daily                                                         
VERBOSE: Test case: file opt-payee.test; arguments: reg --payee='account_base + ":" + commodity'                        
VERBOSE: Test case: file opt-lot-dates.test; arguments: reg -F '%(justify(scrub(total_expr), 80, 80, true))\n' --lot-dates --date-format %Y/%m/%d
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=leading                                   
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=middle                                    
VERBOSE: Test case: file opt-truncate.test; arguments: reg airfare --truncate=trailing                                  
VERBOSE: Test case: file opt-date-format.test; arguments: reg --date-format='%Y'                                        
VERBOSE: Test case: file opt-datetime-format.test; arguments: bal --time-report --datetime-format '%m/%d/%y %I:%M %p'   
VERBOSE: Test case: file opt-subtotal.test; arguments: reg --subtotal                                                   
VERBOSE: Test case: file opt-explicit.test; arguments: bal --explicit --strict                                          
VERBOSE: Test case: file cmd-equity.test; arguments: equity                                                             
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets                                                      
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets:bank                                                 
VERBOSE: Test case: file cmd-equity.test; arguments: equity assets:broker                                               
VERBOSE: Test case: file cmd-equity.test; arguments: equity --lot-prices                                                
VERBOSE: Test case: file cmd-equity.test; arguments: equity --lots --date-format %Y/%m/%d                               
VERBOSE: Test case: file opt-wide.test; arguments: reg --wide                                                           
VERBOSE: Test case: file opt-prepend-format.test; arguments: bal --prepend-format "%(account_base)"                     
VERBOSE: Test case: file opt-prepend-format.test; arguments: reg --prepend-format "%(account_base)"                     
VERBOSE: Test case: file opt-prepend-format.test; arguments: accounts --prepend-format "%(account_base) "               
VERBOSE: Test case: file opt-output.test; arguments: reg --output=/dev/stderr                                           
VERBOSE: Test case: file opt-date.test; arguments: reg --input-date-format %Y-%m-%d --date-format %d-%m-%Y --date 'has_tag("date") ? to_date(tag("date")) : date'
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date + 2'                                                
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date - 2'                                                
VERBOSE: Test case: file opt-date.test; arguments: reg --date 'date + 365*2'                                            
VERBOSE: Test case: file opt-weekly_empty.test; arguments: reg --weekly --empty books                                   
VERBOSE: Test case: file feat-balance_assert.test; arguments: balance                                                   
VERBOSE: Test case: file feat-annotations.test; arguments: print                                                        
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in january 2012"                                 
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in feb 2012"                                     
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP -p "in march  2012"                                  
VERBOSE: Test case: file cmd-budget.test; arguments: budget -X GBP --now "2012-03-31"                                   
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb                                                           
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb EUR                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb GBP                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb USD                                                       
VERBOSE: Test case: file cmd-pricedb.test; arguments: pricedb U                                                         
VERBOSE: Test case: file opt-sort-all.test; arguments: reg --monthly --sort=-amount                                     
VERBOSE: Test case: file opt-sort-all.test; arguments: reg --monthly --sort-all=-amount                                 
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast "T<200000.00 GBP" reg :rent    
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast-years 1 --forecast "T<200000.00 GBP" reg :rent
VERBOSE: Test case: file opt-forecast-years.test; arguments: --now 2012-01-01 --forecast-years 10 --forecast "T<200000.00 GBP" reg :rent
VERBOSE: Test case: file opt-dow.test; arguments: reg --dow books                                                       
VERBOSE: Test case: file opt-display-amount.test; arguments: reg --display-amount='amount * 10' books                   
VERBOSE: Test case: file transaction-status-3.test; arguments: reg --columns=60 food --uncleared                        
VERBOSE: Test case: file transaction-notes-4.test; arguments: bal food and tag type --account='"Tags:" + tag("Type")'   
VERBOSE: Test case: file transaction-status-2.test; arguments: reg --columns=60 food --cleared                          
VERBOSE: Test case: file transaction-codes-2.test; arguments: bal checking --account=code                               
VERBOSE: Test case: file transaction-codes-1.test; arguments: reg --columns=60 food and code xfer                       
VERBOSE: Test case: file transaction-notes-1.test; arguments: reg --columns=60 food and note eat                        
VERBOSE: Test case: file transaction-notes-3.test; arguments: reg --columns=60 food and tag type=dining                 
VERBOSE: Test case: file transaction-status-4.test; arguments: reg --columns=60 food --pending                          
VERBOSE: Test case: file transaction-notes-2.test; arguments: reg --columns=60 food and tag eating                      
VERBOSE: Test case: file transaction-status-1.test; arguments: reg --columns=60 food                                    
VERBOSE:                                                                                                                
VERBOSE: Total tests: 483                                                                                               
VERBOSE:      Passed: 471                                                                                               
VERBOSE:      Failed: 10                                                                                                
VERBOSE:     Skipped: 2                                                                                                 
VERBOSE:  Total time: 21.3548 Seconds                                                                                   
Exception: Unit tests failed for some reason. Run this script again with '-Verbose' to get more information about the cause.
$ 
dmitry-merzlyakov commented 1 year ago

Hi @spaette

Thank you for the update! I might miss something, but now I see Python-related test failures only. You can rebuild with "noPython" switch or troubleshoot your Python environment (I bet your Python does not have PythonNet module). Besides that, it looks good, thanks.

spaette commented 1 year ago

https://github.com/dmitry-merzlyakov/nledger/issues/25#issuecomment-1399345399

very strange failure in your test log

That was when running Slackware 15.0.

My previous comment had the output from running Debian 11.1 11.6.

your Python does not have PythonNet module

I don't think it was present on either Linux distribution that I've been testing nledger installations on.

dmitry-merzlyakov commented 1 year ago

If you need for Python: PythonNet module should be installed as it is described here Let me know if you need any help with it.

spaette commented 1 year ago
$ cat /etc/slackware-version
Slackware 15.0
$ 

Below are some extracts of the shell output using the -noPython -Verbose switches.

VERBOSE: Test Run Successful.
VERBOSE: Total tests: 24
VERBOSE:      Passed: 18
VERBOSE:     Skipped: 6
VERBOSE:   X NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [148ms]fNoFile [FAIL]

VERBOSE:   Error Message:                                                                                               
VERBOSE:    Assert.Throws() Failure                                                                                     
VERBOSE: Expected: typeof(NLedger.Textual.ParseError)                                                                   
VERBOSE: Actual:   typeof(NLedger.RuntimeError): No default scope in which to read journal file '/home/soeren/ledger'
VERBOSE: Total tests: 1197                                                                                              
VERBOSE:      Passed: 1196                                                                                              
VERBOSE:      Failed: 1                                                                                                 
VERBOSE:  Total time: 8.0586 Seconds
VERBOSE: Test Run Successful.                                                                                           
VERBOSE: Total tests: 483                                                                                               
VERBOSE:      Passed: 471                                                                                               
VERBOSE:     Skipped: 12                                                                                                
VERBOSE:  Total time: 18.8357 Seconds
spaette commented 1 year ago
$ cat /etc/debian_version
11.6
$ 

Below is the end of the shell output using the -noPython -Verbose switches.

*** NLedger Build succeeded ***                                                 

Build source code: OK [.Net Core] [Release]
   .Net Core binary: /tmp/nledger/Source/NLedger.CLI/bin/Release/netcoreapp3.1/NLedger-cli

Unit tests: OK [.Net Core] [Release]

NLedger tests: OK [.Net Core] [Release]

Python module: IGNORED

NLedger is ready to be installed (use ./get-nledger-tools -install)

very strange failure in your test log

The context of the single fail running Slackware which doesn't appear running Debian remains unexplained.

spaette commented 1 year ago

PythonNet

As per nledger.md both the find-libpython and PythonNet modules should be installed.

It's easy for me to author Slackware Linux package generation scripts for those modules.

I don't think I'll pursue that however owing to the "strange failure" on that Linux distribution.


As regards the Debian Linux distribution, time permitting I'll try setting up a virtural environment with those modules.

dmitry-merzlyakov commented 1 year ago

Hi @spaette

Yes, PythonNet module for Python is only needed if you want to enable NLedger<->Python integration. Practically, it allows you adding python functions to your ledger files and some other things (like getting ledger objects in Python session). If it is not a focus of your interest - you can ignore it (build with -noPython). Of course, it is not connected to the failed unit test on Slackware.

(By the way, I did not know that it would be a problem to install a Python module on a specific Linux distribution by means of pypi. Does it really require a special effort?)

In regard to the failed unit test (Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile) - my understanding is that it fails on Slackware 15.0 only; I do not see this failure on Debian 11.6 (by the way, you can try to rebuild it on Debian with -noPython - I would expect a clear result with no errors). Let me know if I am missing something and Debian is affected as well. As I mentioned, Ubuntu is OK.

So, since it is Slackware-only issue, I am downloading VirtualBox image to troubleshoot it. I will let you know once I have any updates, thanks.

spaette commented 1 year ago

install a Python module

Slackware

Just a habit of modules' installation via packages under /usr/lib64/python3.9.

spaette commented 1 year ago

I'm not running in a production environment.

$ cat /etc/slackware-version
Slackware 15.0
$ uname -m
x86_64
$ 

system installed

$ python --version
Python 2.7.18
$ python3 --version
Python 3.9.16
$ which pip
/usr/bin/pip
$ cat /usr/bin/pip | sed 1q
#!/usr/bin/python3
$ pip --version
pip 21.3.1 from /usr/lib64/python3.9/site-packages/pip (python 3.9)
$ 

downloads

dotnet-sdk-3.1.426-linux-x64.tar.gz powershell-7.3.1-linux-x64.tar.gz

$ tree --noreport -L 1 /opt/microsoft
/opt/microsoft
|-- dotnet
`-- powershell
$ 

added executable scripts and symlinks

$ ls -l /etc/profile.d/dotnet*   
-rwxr-xr-x 1 root root 52 Jan 19 13:45 /etc/profile.d/dotnet.csh
-rwxr-xr-x 1 root root 51 Jan 19 13:45 /etc/profile.d/dotnet.sh
$ cat /etc/profile.d/dotnet.csh
#!/bin/csh
setenv DOTNET_ROOT /opt/microsoft/dotnet
$ cat /etc/profile.d/dotnet.sh
#!/bin/sh
export DOTNET_ROOT=/opt/microsoft/dotnet
$ file /usr/bin/dotnet
/usr/bin/dotnet: symbolic link to /opt/microsoft/dotnet/dotnet
$ file /usr/bin/pwsh
/usr/bin/pwsh: symbolic link to /opt/microsoft/powershell/pwsh
$ 
spaette commented 1 year ago

you can try to rebuild it on Debian with -noPython

https://github.com/dmitry-merzlyakov/nledger/issues/25#issuecomment-1412741534

dmitry-merzlyakov commented 1 year ago

Hi @spaette

I need your assistance to install .Net Core on Slackware in a proper way. I downloaded and run Virtual Box image containing Slackware 15.0 (from here); it works fine. However, I have realized that I have limited knowledge how to manage packages on Slackware. So, I have dotnet-sdk-3.1.426-linux-x64.tar.gz - please, point me at some sort of instruction how to install it (note: none of packaging tools like installpkg are included into this distribution, so I will need to know how to get them too). Thank you!

spaette commented 1 year ago

downloads

dotnet-sdk-3.1.426-linux-x64.tar.gz powershell-7.3.1-linux-x64.tar.gz

Manually installing the pre-compiled downloads might look like this.

bash-5.1$ cd /tmp
bash-5.1$ md5sum powershell-7.3.1-linux-x64.tar.gz
9615eaa74bb1a2471b6a38b9c22f6d4b  powershell-7.3.1-linux-x64.tar.gz
bash-5.1$ mkdir powershell
bash-5.1$ tar -xf powershell-7.3.1-linux-x64.tar.gz -C powershell
bash-5.1$ md5sum dotnet-sdk-3.1.426-linux-x64.tar.gz
69efb31243eea340f6764f8461def1f1  dotnet-sdk-3.1.426-linux-x64.tar.gz
bash-5.1$ mkdir dotnet
bash-5.1$ tar -xf dotnet-sdk-3.1.426-linux-x64.tar.gz -C dotnet
bash-5.1$ su
Password: 
bash-5.1# chown -R root:root powershell
bash-5.1# chown -R root:root dotnet
bash-5.1# mkdir -p /opt/microsoft
bash-5.1# mv powershell /opt/microsoft/
bash-5.1# ln -s /opt/microsoft/powershell/pwsh /usr/bin/pwsh
bash-5.1# mv dotnet /opt/microsoft/
bash-5.1# ln -s /opt/microsoft/dotnet/dotnet /usr/bin/dotnet
bash-5.1# cat > /etc/profile.d/dotnet.sh << EOF
> #!/bin/sh
> export DOTNET_ROOT=/opt/microsoft/dotnet
> EOF
bash-5.1# chmod 755 /etc/profile.d/dotnet.sh
bash-5.1# 

The variable in dotnet.sh will only be accessible after sourcing the file or rebooting.


FWIW, Slackware Linux installed on hardware.

bash-5.1$ which installpkg
which: no installpkg in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/libexec/kf5:/usr/lib64/qt5/bin)
bash-5.1$ which slackpkg
which: no slackpkg in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/libexec/kf5:/usr/lib64/qt5/bin)
bash-5.1$ su
Password: 
bash-5.1# which installpkg
/sbin/installpkg
bash-5.1# which slackpkg
/usr/sbin/slackpkg
bash-5.1# 
dmitry-merzlyakov commented 1 year ago

Hi @spaette ,

Thank you for your assistance to configure Slackware; everything works well now.

Unfortunately, the issue has not been reproduced on my machine: once I sorted out environmental-related things, I got a clear result. Here is my output:

sh-5.1# dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.426
 Commit:    e81f6c8565

Runtime Environment:
 OS Name:     slackware
 OS Version:  15.0
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /opt/microsoft/dotnet/sdk/3.1.426/

Host (useful for support):
  Version: 3.1.32
  Commit:  f94bb2c3ff

.NET Core SDKs installed:
  3.1.426 [/opt/microsoft/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.32 [/opt/microsoft/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.32 [/opt/microsoft/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

sh-5.1# pwsh -file ./get-nledger-up.ps1
WARNING: NLedger Python Extension settings are not configured or not valid. This does not prevent the build from completing, but unit and integration tests that require Python will be skipped. Building Ledger module will be skipped. Use './get-nledger-tools.ps1 -pythonTools' command to configure settings or disable this warning by adding a switch './get-nledger-up.ps1 -noPython'.
*** NLedger Build succeeded ***

Build source code: OK [.Net Core] [Release]
   .Net Core binary: /nledger/Source/NLedger.CLI/bin/Release/netcoreapp3.1/NLedger-cli

Unit tests: OK [.Net Core] [Release]

NLedger tests: OK [.Net Core] [Release]

Python module: IGNORED

NLedger is ready to be installed (use ./get-nledger-tools -install)

sh-5.1#

I also attached detailed logs for dotnet unit tests and integration test cases. Everything indicates that nledger utility is ready to use.

nledger.slackware15.executable.tests.txt nledger.slackware15.dotnet.unittests.txt

The test that failed on your machine is also OK on my side:

  √ NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [< 1ms]

I have to mention that I used a virtual environment (docker image) because I have no chances to test it on a real hardware. Just in case, here are details:

So, what we can do more to troubleshoot that failed test: I can repeat verification using VirtualBox image on Monday. However, I feel like that the problem is more specific to your environment. As a first step to troubleshoot it, you can catch the unexpected exception and show me the full error trace stack. How to do so:

In the output, you should find something like that (a failed test with an extra message):

  X NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [10ms]
  Error Message:
   NLedger.Textual.ParseError: No journal file was specified (please use -f)
   at NLedger.Scopus.Session.ReadData(String masterAccount) in /nledger/Source/NLedger/Scopus/Session.cs:line 125
   at NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile() in /nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 75
Expected: True
Actual:   False
  Stack Trace:
     at NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile() in /nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 75
  √ NLedger.Tests.Scopus.SessionTests.Session_FnLotTag_ReturnsDateFromFirstArgAmouunt [< 1ms]

Please, find this stack trace in your output and share with me.

Thank you!

spaette commented 1 year ago

From your shell prompt it looks like you're running as root.

  • Installed git and dependencies: git-2.30.7-x86_64-1_slack14.2.txz; nghttp2-1.46.0-x86_64-1.txz; brotli-1.0.9-x86_64-7.txz; cyrus-sasl-2.1.26-x86_64-1.txz
  • fixed NuGet certificate issues: ca-certificates-20221205-noarch-2_slack15.0.txz
  • fixed dotnet globalization issues: glibc-zoneinfo-2022g-noarch-1_slack15.0.txz Basically, this is useless information since you did not have these issues.

I concur that the information is likely not an issue with the failed unit test.

Your git is from Slackware-14.2.

https://mirrors.slackware.com/slackware/slackware64-15.0/patches/packages/

My git and cyrus-sasl versions are found in patches/packages.

https://mirrors.slackware.com/slackware/slackware64-15.0/slackware64/l/

https://mirrors.slackware.com/slackware/slackware64-15.0/slackware64/n/

The brotli and nghttp2 packages are found respectively in slackware64/l and slackware64/n.

$ ls /var/log/packages | grep git | sed 1q
git-2.35.6-x86_64-1_slack15.0
$ ls /var/log/packages | grep nghttp2     
nghttp2-1.46.0-x86_64-1
$ ls /var/log/packages | grep brotli 
brotli-1.0.9-x86_64-7
$ ls /var/log/packages | grep cyrus\-sasl
cyrus-sasl-2.1.28-x86_64-1_slack15.0
$ ls /var/log/packages | grep ca\-certificates
ca-certificates-20221205-noarch-2_slack15.0
$ ls /var/log/packages | grep glibc\-zoneinfo
glibc-zoneinfo-2022g-noarch-1_slack15.0
$ 
spaette commented 1 year ago

fresh clone w/ modified file

$ ed -s nledger/Source/NLedger.Tests/Scopus/SessionTests.cs <<<'70,76p'
        [Fact]
        public void Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile()
        {
            Session session = new Session();
            try { session.ReadData(null); } catch (Exception ex) { Assert.True(false,ex.ToString()); }
            Assert.Throws<ParseError>(() => session.ReadData(null));
        }
$ 

cd'ing into nledger/Source/NLedger.Tests

extract of running dotnet test /p:CoreOnly=True --configuration Release --verbosity normal

  X NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile [14ms]
  Error Message:
   NLedger.RuntimeError: No default scope in which to read journal file '/home/soeren/ledger'
   at NLedger.Journals.Journal.Read(ParseContextStack context) in /tmp/nledger/Source/NLedger/Journals/Journal.cs:line 292
   at NLedger.Scopus.Session.ReadData(String masterAccount) in /tmp/nledger/Source/NLedger/Scopus/Session.cs:line 212
   at NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile() in /tmp/nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 74
Expected: True
Actual:   False
  Stack Trace:
     at NLedger.Tests.Scopus.SessionTests.Session_ReadData_UsesDefaultLedgerFileNameIfNoFilesSpecifiedAndFilesBecauseOfNoFile() in /tmp/nledger/Source/NLedger.Tests/Scopus/SessionTests.cs:line 74
  √ NLedger.Tests.Scopus.SessionTests.Session_FnLotTag_ReturnsDateFromFirstArgAmouunt [1ms]
spaette commented 1 year ago

'/home/soeren/ledger'

I think the problem was the above is a flat file containing notes on the C++ program.

dmitry-merzlyakov commented 1 year ago

Hi @spaette ,

Thank you for all your input! It helped me to find the root cause. So, it was an incorrect unit test - it was potentially affected by a default ledger file (/ledger) that might physically exist on a local machine. I've never seen it, so I missed this case.

In few words: when you call "session.Read", it should start reading data as it was specified in the command line (typically -f option). If none specified, it should try to open a "default" ledger file. Eventually, if it does not exist either, it should raise a Parse error.

The test is intended to check this case, so I just created a session but did not specify anything in FileHandler - the call to session.Read should immediately return Parse error (assuming that the default ledger file does not exist either). However, on your machine it existed - and the test returned another error.

So, no mystery; it was just incorrect unit test; the utility itself is OK. I added a fix to the current dev branch (https://github.com/dmitry-merzlyakov/nledger/tree/next-dev-0.8.5); you can take the latest code from there. It will go to master with the nearest release. Or, you can just apply the fix manually on your machine or just remove it - it does not affect the functionality.

Thank you!

spaette commented 1 year ago

Seems we were on a roundabout for a while.

FWIW, aside from the misspelling of guarantees the below is slightly reworded on the second line.

+            // The fake file system instance guarantees that the session object does not see a default ledger file
+            // that might physically be present on the machine (e.g. %HOMEPATH%\ledger on Windows)
dmitry-merzlyakov commented 1 year ago

I would say, it was more like a spiral :) - the way out was found eventually.

In regard to misspelling - yep, one more item to the list corrections. Will do.