`_points_equal` incorrectly compares floats with `is not`
评估
调研方向
打开 sno/pyvendor/vector_tile_base/engine.py,并检查第 313 行附近的 _points_equal。将身份比较替换为值比较,然后运行项目现有的测试,并验证相等的浮点坐标能够使闭合环被识别。
由索引模型根据 Issue 内容生成。
描述
I noticed add_ring is not treating my closed ring like a closed ring:
ipdb> pt1
(19188372.37109346, -5402212.477493137)
ipdb> pt2
(19188372.37109346, -5402212.477493137)
ipdb> n
> /Users/cdestigter/checkout/sno/sno/pyvendor/vector_tile_base/engine.py(314)_points_equal()
313 if pt1[0] is not pt2[0] or pt1[1] is not pt2[1] or (self._has_elevation and pt1[2] is not pt2[2]):
--> 314 return False
315 return True
ipdb> pt1[0] == pt2[0]
True
ipdb> pt1[0] is pt2[0]
False
is not isn't the appropriate comparator here, it shoudl be !=. python doesn't guarantee two equal floats are the same float.
- 主要语言
- Python
- 星标
- 57
- 派生
- 17
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
mapbox/vector-tile-base 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 25/100
mapbox/vector-tile-base#25 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 42/100
mapbox/vector-tile-base#23 · 2 条评论 ·
-
难度 3/5 1-2 天 新手友好度 35/100
mapbox/vector-tile-base#18 · 1 条评论 · 9 个 reaction ·
-
难度 1/5 1 小时以内 新手友好度 25/100
mapbox/vector-tile-base#10 ·
-
难度 2/5 1-3 小时 新手友好度 35/100
mapbox/vector-tile-base#9 · 1 条评论 ·
查看 mapbox/vector-tile-base 的全部 Issue
相似的 Issue
-
难度 1/5 1-3 小时 新手友好度 85/100
pytest-dev/pluggy#757 ·
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 85/100
NousResearch/hermes-agent#134960 ·
维护者通常 1 天内回复
-
HTML backend: `<br>` leaks the internal sentinel U+E000 into list items, headings and captions可能已有人在做 @morten-lagabote 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 67/100
docling-project/docling#4671 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
good first issue hacktoberfest infra
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复