-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Tuplewise operator #711
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually generated file are normally presents in the repository
af83e1f
to
0ec9b4f
Compare
Oh, OK. I'll roll back that commit then. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR! It's looking good for a start. I am quite short on time these days so I'll have to review this in multiple sittings (unless others can jump in and help) but I've started with an initial one for now.
@@ -78,7 +83,15 @@ | |||
</ItemGroup> | |||
|
|||
<ItemGroup> | |||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know what this is and do we need it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's because I've added the T4 template to the test project. I don't believe it's 'needed' as far as building is concerned, but I think it's basically a tag used by the IDE to expose certain things for the project.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that's what the service in the following line was but seems 82a7f48d-3b50-4b1e-b82e-3ada8210c358
is for tests so this one must be for T4. I was just surprised it wasn't already there since we've been using T4 since a long time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since we've been using T4 since a long time.
Not in MoreLinq.Test project, until now
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that certainly explains it, @Orace!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co-Authored-By: Atif Aziz <[email protected]>
… T4 template and into a separate partial class.
Codecov Report
@@ Coverage Diff @@
## master #711 +/- ##
==========================================
+ Coverage 92.52% 92.56% +0.03%
==========================================
Files 113 114 +1
Lines 3440 3482 +42
Branches 1024 1039 +15
==========================================
+ Hits 3183 3223 +40
Misses 192 192
- Partials 65 67 +2
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
…rator Conflicts resolved: - MoreLinq.Test/MoreLinq.Test.csproj
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the allocation-free a big enough of an advantage to introduce a separate operator with 3 overloads? Seems like the behavior at least is already covered by Window
. Keep in mind the 2-param version is effectively the same as Lag
/Lead
as well.
The Tuplewise operator extends the functionality of the Pairwise operator to N-tuples.
The overload set is generated using a .tt template and is currently set to a max size of 4-tuple, but this could be set to much larger except that the unit tests use BreakingFunc.Of<>() which only has a limited set of overloads. If anyone wants a larger overload set then this is easily extended.