tilingPuzzles 0.2.1__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/Demo.ipynb +8 -6
  2. tilingpuzzles-0.2.3/Demo.qmd +49 -0
  3. tilingpuzzles-0.2.3/PKG-INFO +79 -0
  4. tilingpuzzles-0.2.3/README.md +61 -0
  5. tilingpuzzles-0.2.3/README.qmd +51 -0
  6. tilingpuzzles-0.2.3/README_files/figure-commonmark/cell-2-output-1.png +0 -0
  7. tilingpuzzles-0.2.3/README_files/figure-commonmark/cell-2-output-2.png +0 -0
  8. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/pyproject.toml +2 -2
  9. tilingpuzzles-0.2.1/PKG-INFO +0 -42
  10. tilingpuzzles-0.2.1/README.md +0 -24
  11. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/.gitignore +0 -0
  12. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/.python-version +0 -0
  13. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/.gitignore +0 -0
  14. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Test-subtree.qmd +0 -0
  15. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-counts.qmd +0 -0
  16. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-grafik.qmd +0 -0
  17. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-pytest.qmd +0 -0
  18. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/IPYNB/Testing-solvers.qmd +0 -0
  19. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/.gitignore +0 -0
  20. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/README.md +0 -0
  21. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/_quarto.yml +0 -0
  22. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/src/Stone.qmd +0 -0
  23. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/docs/src/Tile.qmd +0 -0
  24. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/pytest.ini +0 -0
  25. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/__init__.py +0 -0
  26. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/README.md +0 -0
  27. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/__init__.py +0 -0
  28. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/data/timingResulsts.csv +0 -0
  29. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/git_state.py +0 -0
  30. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/benchmark/run_benchmark.py +0 -0
  31. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/README.md +0 -0
  32. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/__init__.py +0 -0
  33. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/rectangularPentomino.py +0 -0
  34. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/scaledStones.py +0 -0
  35. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/__init__.py +0 -0
  36. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/test_rectangularPentomino.py +0 -0
  37. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/examples/tests/test_scaledStones.py +0 -0
  38. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/__init__.py +0 -0
  39. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/game.py +0 -0
  40. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/generic.py +0 -0
  41. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/komino.py +0 -0
  42. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/realisations.py +0 -0
  43. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/stone.py +0 -0
  44. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/stone_core.py +0 -0
  45. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/__init__.py +0 -0
  46. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_game.py +0 -0
  47. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_komino.py +0 -0
  48. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_realisations.py +0 -0
  49. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_stone.py +0 -0
  50. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tests/test_tile.py +0 -0
  51. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/games/tile.py +0 -0
  52. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logUtils/__init__.py +0 -0
  53. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logUtils/callGraph.py +0 -0
  54. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/logger.py +0 -0
  55. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/__init__.py +0 -0
  56. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/hights.py +0 -0
  57. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/kominoSolver.py +0 -0
  58. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/solvers/tests/test_komino_solver.py +0 -0
  59. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/visualize/__init__.py +0 -0
  60. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/src/tilingpuzzles/visualize/visualize.py +0 -0
  61. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/test/test_pytest.py +0 -0
  62. {tilingpuzzles-0.2.1 → tilingpuzzles-0.2.3}/test/vibetest_1.py +0 -0
@@ -57,11 +57,11 @@
57
57
  "from tilingpuzzles.games.stone import Stone\n",
58
58
  "from tilingpuzzles.games.komino import Komino\n",
59
59
  "\n",
60
- "# Ordnung der steine \n",
60
+ "# Degree of the stones\n",
61
61
  "# k=5 => Pentomino\n",
62
62
  "k=6\n",
63
63
  "\n",
64
- "# Zu bedeckende fläche \n",
64
+ "# The Universe of the Coverage problem\n",
65
65
  "U=\"\"\"\n",
66
66
  "#######\n",
67
67
  "#######\n",
@@ -81,7 +81,7 @@
81
81
  "display(U)\n",
82
82
  "\n",
83
83
  "komi=Komino(U,k=k)\n",
84
- "# limits: anzahl wie oft jeder stein verwendet werden kann\n",
84
+ "# limits: number of times a stone of a certain shape can be used.\n",
85
85
  "komi.find_solution(limits=1)\n"
86
86
  ]
87
87
  },
@@ -90,7 +90,9 @@
90
90
  "id": "6ac3e29d",
91
91
  "metadata": {},
92
92
  "source": [
93
- "# Anzahl Lösungen wenn jeder stein beliebig oft verwendet werden kann"
93
+ "# Count Solutions \n",
94
+ "Calculate the number of Solutions if every Stone can be used a unlimited amount of time\n",
95
+ "\n"
94
96
  ]
95
97
  },
96
98
  {
@@ -406,8 +408,8 @@
406
408
  ],
407
409
  "source": [
408
410
  "\n",
409
- "komi.count_solutions(limits=None,progressLevel=2)\n",
410
- "# andere grenzen als ´None´ sind nicht implementiert\n"
411
+ "komi.count_solutions(limits=None,progressLevel=0)\n",
412
+ "\n"
411
413
  ]
412
414
  }
413
415
  ],
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: finden einer Lösung
3
+ jupyter: python3
4
+ ---
5
+
6
+
7
+
8
+ ```{python}
9
+ from tilingpuzzles.games.stone import Stone
10
+ from tilingpuzzles.games.komino import Komino
11
+
12
+ # Degree of the stones
13
+ # k=5 => Pentomino
14
+ k=6
15
+
16
+ # The Universe of the Coverage problem
17
+ U="""
18
+ #######
19
+ #######
20
+ ###
21
+ #######
22
+ #######
23
+ ###
24
+ ######
25
+ #######
26
+ #######
27
+ """
28
+
29
+ U=Stone.from_string(U)
30
+
31
+ assert len(U)%k==0
32
+
33
+ display(U)
34
+
35
+ komi=Komino(U,k=k)
36
+ # limits: number of times a stone of a certain shape can be used.
37
+ komi.find_solution(limits=1)
38
+ ```
39
+
40
+ # Count Solutions
41
+ Calculate the number of Solutions if every Stone can be used a unlimited amount of time
42
+
43
+
44
+ ```{python}
45
+
46
+ komi.count_solutions(limits=None,progressLevel=0)
47
+
48
+ ```
49
+
@@ -0,0 +1,79 @@
1
+ Metadata-Version: 2.4
2
+ Name: tilingPuzzles
3
+ Version: 0.2.3
4
+ Summary: finding and counting solutions of tilingpuzzles like Pentomino
5
+ Author-email: jonathan graf <jonathangraf@outlook.de>
6
+ Requires-Python: >=3.10
7
+ Requires-Dist: graphviz>=0.20.3
8
+ Requires-Dist: jupyter>=1.1.1
9
+ Requires-Dist: matplotlib>=3.10.3
10
+ Requires-Dist: numpy>=2.2.6
11
+ Requires-Dist: pandas>=2.2.3
12
+ Requires-Dist: py-cpuinfo>=9.0.0
13
+ Requires-Dist: pytest>=8.3.5
14
+ Requires-Dist: scipy>=1.15.3
15
+ Requires-Dist: timeout-decorator>=0.5.0
16
+ Requires-Dist: tqdm>=4.67.1
17
+ Description-Content-Type: text/markdown
18
+
19
+ # Count Solutions
20
+
21
+
22
+ # tilingPuzzles
23
+
24
+ ## Finding a solution
25
+
26
+ ``` python
27
+ from tilingpuzzles.games.stone import Stone
28
+ from tilingpuzzles.games.komino import Komino
29
+
30
+ # Degree of the stones
31
+ # k=5 => Pentomino
32
+ k=6
33
+
34
+ # The Universe of the Coverage problem
35
+ U="""
36
+ #######
37
+ #######
38
+ ###
39
+ #######
40
+ #######
41
+ ###
42
+ ######
43
+ #######
44
+ #######
45
+ """
46
+
47
+ U=Stone.from_string(U)
48
+
49
+ assert len(U)%k==0
50
+
51
+ display(U)
52
+
53
+ komi=Komino(U,k=k)
54
+ # limits: number of times a stone of a certain shape can be used.
55
+ komi.find_solution(limits=1)
56
+ ```
57
+
58
+ ![](README_files/figure-commonmark/cell-2-output-1.png)
59
+
60
+ ![](README_files/figure-commonmark/cell-2-output-2.png)
61
+
62
+ [frozenset({(7, 7), (8, 6), (8, 7), (8, 8), (9, 7), (9, 8)}),
63
+ frozenset({(5, 2), (6, 2), (6, 3), (7, 2), (7, 3), (8, 2)}),
64
+ frozenset({(6, 4), (7, 4), (7, 5), (7, 6), (8, 4), (8, 5)}),
65
+ frozenset({(8, 3), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)}),
66
+ frozenset({(3, 2), (4, 0), (4, 1), (4, 2), (5, 0), (5, 1)}),
67
+ frozenset({(2, 3), (3, 3), (4, 3), (5, 3), (5, 4), (5, 5)}),
68
+ frozenset({(2, 4), (3, 4), (4, 4), (4, 5), (4, 6), (5, 6)}),
69
+ frozenset({(1, 3), (1, 4), (1, 5), (1, 6), (2, 5), (2, 6)}),
70
+ frozenset({(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)})]
71
+
72
+ Calculate the number of Solutions if every Stone can be used a unlimited
73
+ amount of time
74
+
75
+ ``` python
76
+ komi.count_solutions(limits=None,progressLevel=0)
77
+ ```
78
+
79
+ 115373
@@ -0,0 +1,61 @@
1
+ # Count Solutions
2
+
3
+
4
+ # tilingPuzzles
5
+
6
+ ## Finding a solution
7
+
8
+ ``` python
9
+ from tilingpuzzles.games.stone import Stone
10
+ from tilingpuzzles.games.komino import Komino
11
+
12
+ # Degree of the stones
13
+ # k=5 => Pentomino
14
+ k=6
15
+
16
+ # The Universe of the Coverage problem
17
+ U="""
18
+ #######
19
+ #######
20
+ ###
21
+ #######
22
+ #######
23
+ ###
24
+ ######
25
+ #######
26
+ #######
27
+ """
28
+
29
+ U=Stone.from_string(U)
30
+
31
+ assert len(U)%k==0
32
+
33
+ display(U)
34
+
35
+ komi=Komino(U,k=k)
36
+ # limits: number of times a stone of a certain shape can be used.
37
+ komi.find_solution(limits=1)
38
+ ```
39
+
40
+ ![](README_files/figure-commonmark/cell-2-output-1.png)
41
+
42
+ ![](README_files/figure-commonmark/cell-2-output-2.png)
43
+
44
+ [frozenset({(7, 7), (8, 6), (8, 7), (8, 8), (9, 7), (9, 8)}),
45
+ frozenset({(5, 2), (6, 2), (6, 3), (7, 2), (7, 3), (8, 2)}),
46
+ frozenset({(6, 4), (7, 4), (7, 5), (7, 6), (8, 4), (8, 5)}),
47
+ frozenset({(8, 3), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)}),
48
+ frozenset({(3, 2), (4, 0), (4, 1), (4, 2), (5, 0), (5, 1)}),
49
+ frozenset({(2, 3), (3, 3), (4, 3), (5, 3), (5, 4), (5, 5)}),
50
+ frozenset({(2, 4), (3, 4), (4, 4), (4, 5), (4, 6), (5, 6)}),
51
+ frozenset({(1, 3), (1, 4), (1, 5), (1, 6), (2, 5), (2, 6)}),
52
+ frozenset({(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)})]
53
+
54
+ Calculate the number of Solutions if every Stone can be used a unlimited
55
+ amount of time
56
+
57
+ ``` python
58
+ komi.count_solutions(limits=None,progressLevel=0)
59
+ ```
60
+
61
+ 115373
@@ -0,0 +1,51 @@
1
+ ---
2
+ format: gfm
3
+ ---
4
+
5
+ # tilingPuzzles
6
+
7
+ ## Finding a solution
8
+
9
+
10
+ ```{python}
11
+ from tilingpuzzles.games.stone import Stone
12
+ from tilingpuzzles.games.komino import Komino
13
+
14
+ # Degree of the stones
15
+ # k=5 => Pentomino
16
+ k=6
17
+
18
+ # The Universe of the Coverage problem
19
+ U="""
20
+ #######
21
+ #######
22
+ ###
23
+ #######
24
+ #######
25
+ ###
26
+ ######
27
+ #######
28
+ #######
29
+ """
30
+
31
+ U=Stone.from_string(U)
32
+
33
+ assert len(U)%k==0
34
+
35
+ display(U)
36
+
37
+ komi=Komino(U,k=k)
38
+ # limits: number of times a stone of a certain shape can be used.
39
+ komi.find_solution(limits=1)
40
+ ```
41
+
42
+ ## Count Solutions
43
+
44
+ Calculate the number of Solutions if every Stone can be used a unlimited amount of time
45
+
46
+
47
+ ```{python}
48
+
49
+ komi.count_solutions(limits=None,progressLevel=0)
50
+
51
+ ```
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "tilingPuzzles"
3
- version = "0.2.1"
4
- description = "Add your description here"
3
+ version = "0.2.3"
4
+ description = "finding and counting solutions of tilingpuzzles like Pentomino"
5
5
  readme = "README.md"
6
6
  authors = [
7
7
  { name = "jonathan graf", email = "jonathangraf@outlook.de" }
@@ -1,42 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: tilingPuzzles
3
- Version: 0.2.1
4
- Summary: Add your description here
5
- Author-email: jonathan graf <jonathangraf@outlook.de>
6
- Requires-Python: >=3.10
7
- Requires-Dist: graphviz>=0.20.3
8
- Requires-Dist: jupyter>=1.1.1
9
- Requires-Dist: matplotlib>=3.10.3
10
- Requires-Dist: numpy>=2.2.6
11
- Requires-Dist: pandas>=2.2.3
12
- Requires-Dist: py-cpuinfo>=9.0.0
13
- Requires-Dist: pytest>=8.3.5
14
- Requires-Dist: scipy>=1.15.3
15
- Requires-Dist: timeout-decorator>=0.5.0
16
- Requires-Dist: tqdm>=4.67.1
17
- Description-Content-Type: text/markdown
18
-
19
- # TilingPuzzles
20
-
21
- ## Requirements
22
-
23
- ```bash
24
- pip install uv
25
- uv sync
26
- ```
27
-
28
- ## Test
29
-
30
- ```bash
31
- pytest
32
- ```
33
-
34
- ## Build
35
-
36
- ```bash
37
- uv build
38
- ```
39
-
40
- # Demo
41
-
42
- [notebook](Demo.ipynb)
@@ -1,24 +0,0 @@
1
- # TilingPuzzles
2
-
3
- ## Requirements
4
-
5
- ```bash
6
- pip install uv
7
- uv sync
8
- ```
9
-
10
- ## Test
11
-
12
- ```bash
13
- pytest
14
- ```
15
-
16
- ## Build
17
-
18
- ```bash
19
- uv build
20
- ```
21
-
22
- # Demo
23
-
24
- [notebook](Demo.ipynb)
File without changes
File without changes