Conversation
First test infrastructure in the repository. Ten facts pin the current main behaviour: integer and boolean symbols over anonymous-type environments, chained Where clauses, tuple multi-symbol theorems, Z3Methods.Distinct, Optimize in both directions, contradictory constraints returning null, and the NewTheorem<T>(T) overload. Verified locally: 10 passed, 0 failed (dotnet test, net8.0). Feature suites from the downstream fork (collections, records, DateTime round-trip, bit-vectors, pseudo-boolean, solver configuration) intentionally NOT included: they exercise APIs main does not have yet and will arrive one-concern-per-PR alongside each feature, as discussed on #29 and endjin#43. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
|
Re-confirmed xUnit harness on
Recommended follow-ups before merge:
Happy to iterate on (1) if useful — would let this PR ship today as the first CI-checked test in the repository. Branch is at |
Member
|
I'm still waiting on the internal work to get the latest Z3 package up on nuget. There's been some progress, but it's still a WIP. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the first xUnit test project to the repository (
solutions/Z3.Linq.Tests), wired intoZ3.Linq.sln.Ten facts pin the theorem API as it exists on
maintoday:Whereclauses (conjunction)Z3Methods.DistinctOptimizein both directions (objective on a symbol and on a tuple expression)Solve()returnsnull(pins the unsat contract)NewTheorem<T>(T dummy)overloadVerified locally: 10 passed, 0 failed (
dotnet test, net8.0).Why this first
This is the opening move of the plan discussed on #29 and #43: send things one concern at a time, tests first. A green floor on current
maingives the modernisation stack (#44–#110) a regression net to land on — anything that changes the behaviours pinned here shows up as a red test instead of a silent semantic drift.What is deliberately NOT here
The downstream fork (
MyIntelligenceAgency/Z3.Linq, 45 commits ahead, 0 behind) carries 14 more suites, but they exercise APIsmaindoes not have yet (collection handling, positional-record environments, conditionalIte, bit-vector widths, pseudo-booleanExactlyOne/WeightedAtLeast, solver configuration, UNSAT-core explanations, witness evaluation, rational-exact arithmetic). They would not compile — or would fail by construction — against this base, so each will arrive with its feature PR, one concern at a time. Two notes for the stack specifically:DateTimeround-trip suite is red onmaintoday by construction — it is the reproducing evidence for Encode a DateTime as ticks rather than a file time #95 (file-time encoding vs ticks), happy to send it targeted at that branch if useful;Targeting
Opened against
main; if a staging branch suits the stack better, retarget or say the word — drift adaptation on our side is agent-driven, matching the workflow you described on #43.Related: #29 · #43 · #95 · #110
🤖 Generated with Claude Code