[Bug]: Switch operator lacks support of virtualized changeset
维护者通常 1 天内回复
评估
调研方向
The report identifies IChangeSet<TObject, TKey, VirtualContext<TObject>> and includes a failing SwitchSet_Switch_Virtualized test, but names no file. Start by finding that test and the existing Switch operator overloads for changesets. The linked open pull request #1166 means work is already underway; check its status before attempting this issue.
由索引模型根据 Issue 内容生成。
描述
Describe the bug 🐞
There is no Switch operator version for virtualized changesets IChangeSet<TObject, TKey, VirtualContext<TObject>>.
In this case default reactive Switch operator is used, so the test fails.
[Fact]
public void SwitchSet_Switch_Virtualized()
{
BehaviorSubject<bool> enableSubj = new(true);
SourceCache<int, int> cache = new(x => x);
cache.Edit(updater => updater.AddOrUpdate(Enumerable.Range(0, 100)));
SortExpressionComparer<int> comparer = SortExpressionComparer<int>.Ascending(x => x);
int count = 10;
IObservable<VirtualRequest> virtualReqStream
= Observable.Return(new VirtualRequest(0, count)).Concat(Observable.Never<VirtualRequest>());
IObservable<IChangeSet<int, int, VirtualContext<int>>> virtualizedChangeSet = cache.Connect()
.SortAndVirtualize(comparer, virtualReqStream);
IObservable<IChangeSet<int, int, VirtualContext<int>>> testStream = enableSubj
.Select(enable =>
{
if (!enable)
return Observable.Empty<IChangeSet<int, int, VirtualContext<int>>>();
return virtualizedChangeSet;
})
.Switch();
TestScheduler scheduler = new();
ITestableObserver<IChangeSet<int, int, VirtualContext<int>>> observer
= scheduler.CreateObserver<IChangeSet<int, int, VirtualContext<int>>>();
testStream.Subscribe(observer);
enableSubj.OnNext(false);
Assert.Collection(
observer.Messages,
msg =>
{
Assert.Equal(NotificationKind.OnNext, msg.Value.Kind);
Assert.Equal(count, msg.Value.Value.Adds);
Assert.Equal(0, msg.Value.Value.Removes);
},
msg =>
{
Assert.Equal(NotificationKind.OnNext, msg.Value.Kind);
Assert.Equal(0, msg.Value.Value.Adds);
Assert.Equal(count, msg.Value.Value.Removes);
}
);
}
DynamicData Version
9.4.33
- 主要语言
- C#
- 星标
- 1.9k
- 派生
- 194
- 平均合并
- 12 分钟
- 30 天内合并 PR
- 1
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
reactivemarbles/DynamicData 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
reactivemarbles/DynamicData#1229 ·
维护者通常 1 天内回复
-
infrastructure
难度 2/5 1-3 小时 新手友好度 64/100
reactivemarbles/DynamicData#1089 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug]: ChangeAwareList merges an insert one slot before a pending AddRange, corrupting list order downstream可能已有人在做 @dwcullop 于 9 天前认领。 未关闭bug
难度 3/5 半天 新手友好度 63/100
reactivemarbles/DynamicData#1225 ·
维护者通常 1 天内回复
-
[Feature]: Make Avg, StdDev, Maximum and Minimum refresh-aware, consistent with Sum可能已有人在做 @dwcullop 于 14 天前认领。 未关闭breaking change enhancement
难度 5/5 一周以上 新手友好度 20/100
reactivemarbles/DynamicData#1214 ·
维护者通常 1 天内回复
-
bug
难度 5/5 一周以上 新手友好度 35/100
reactivemarbles/DynamicData#1196 ·
维护者通常 1 天内回复
查看 reactivemarbles/DynamicData 的全部 Issue
相似的 Issue
-
Feature needs response
难度 2/5 1-3 小时 新手友好度 70/100
Adyen/adyen-dotnet-api-library#1907 ·
维护者通常 5 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
immichFrame/ImmichFrame#735 ·
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
dimitar-radenkov/Pointframe#318 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
DotHarness/dotcraft#546 ·
维护者通常 1 天内回复
-
a-corriger bug
难度 2/5 1-3 小时 新手友好度 78/100
christian-raj/S-Aloha#303 · 1 条评论 ·