@mat3ra/made 2026.8.13-0 → 2026.8.26-0

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 (493) hide show
  1. package/package.json +9 -5
  2. package/.babelrc +0 -10
  3. package/.eslintrc.json +0 -11
  4. package/.gitattributes +0 -1
  5. package/.husky/post-checkout +0 -3
  6. package/.husky/post-commit +0 -3
  7. package/.husky/post-merge +0 -3
  8. package/.husky/pre-commit +0 -6
  9. package/.husky/pre-push +0 -3
  10. package/.mocharc.json +0 -5
  11. package/.pre-commit-config.yaml +0 -26
  12. package/.prettierignore +0 -2
  13. package/.prettierrc +0 -6
  14. package/AGENTS.md +0 -133
  15. package/MANIFEST.in +0 -1
  16. package/data/constants.json +0 -13
  17. package/data/reciprocal_paths.json +0 -111
  18. package/images/made/tools/tools_diagram_general.png +0 -3
  19. package/images/made/tools/tools_diagram_interface.png +0 -3
  20. package/pyproject.toml +0 -123
  21. package/scripts/generate-mixins.ts +0 -28
  22. package/src/__init__.py +0 -0
  23. package/src/js/Material.ts +0 -618
  24. package/src/js/basis/basis.ts +0 -634
  25. package/src/js/basis/constrained_basis.ts +0 -115
  26. package/src/js/basis/coordinates.ts +0 -92
  27. package/src/js/basis/elements.ts +0 -24
  28. package/src/js/basis/helpers.ts +0 -20
  29. package/src/js/basis/labels.ts +0 -6
  30. package/src/js/cell/cell.ts +0 -149
  31. package/src/js/cell/conventional_cell.ts +0 -86
  32. package/src/js/cell/primitive_cell.ts +0 -166
  33. package/src/js/constants/molecule.ts +0 -18
  34. package/src/js/constants.ts +0 -4
  35. package/src/js/constraints/constraints.ts +0 -45
  36. package/src/js/generated/MaterialSchemaMixin.ts +0 -79
  37. package/src/js/lattice/lattice.ts +0 -308
  38. package/src/js/lattice/lattice_types.ts +0 -134
  39. package/src/js/lattice/reciprocal/lattice_reciprocal.ts +0 -206
  40. package/src/js/lattice/reciprocal/paths.ts +0 -39
  41. package/src/js/lattice/reciprocal/symmetry_points.ts +0 -886
  42. package/src/js/lattice/unit_cell.ts +0 -66
  43. package/src/js/made.ts +0 -62
  44. package/src/js/parsers/cif.ts +0 -25
  45. package/src/js/parsers/errors.ts +0 -6
  46. package/src/js/parsers/espresso.ts +0 -29
  47. package/src/js/parsers/native_format_parsers.ts +0 -52
  48. package/src/js/parsers/parsers.ts +0 -13
  49. package/src/js/parsers/poscar.ts +0 -218
  50. package/src/js/parsers/xyz.ts +0 -190
  51. package/src/js/parsers/xyz_combinatorial_basis.ts +0 -268
  52. package/src/js/tools/basis.ts +0 -131
  53. package/src/js/tools/cell.ts +0 -40
  54. package/src/js/tools/index.ts +0 -11
  55. package/src/js/tools/material.ts +0 -64
  56. package/src/js/tools/supercell.ts +0 -89
  57. package/src/js/tools/surface.ts +0 -213
  58. package/src/py/__init__.py +0 -0
  59. package/src/py/mat3ra/__init__.py +0 -1
  60. package/src/py/mat3ra/made/__init__.py +0 -7
  61. package/src/py/mat3ra/made/basis/__init__.py +0 -255
  62. package/src/py/mat3ra/made/basis/coordinates.py +0 -43
  63. package/src/py/mat3ra/made/cell/__init__.py +0 -55
  64. package/src/py/mat3ra/made/cell/primitive_cell.py +0 -156
  65. package/src/py/mat3ra/made/data_helper.py +0 -5
  66. package/src/py/mat3ra/made/lattice.py +0 -195
  67. package/src/py/mat3ra/made/material.py +0 -135
  68. package/src/py/mat3ra/made/metadata.py +0 -45
  69. package/src/py/mat3ra/made/reciprocal/__init__.py +0 -5
  70. package/src/py/mat3ra/made/reciprocal/lattice_reciprocal.py +0 -147
  71. package/src/py/mat3ra/made/reciprocal/paths.py +0 -30
  72. package/src/py/mat3ra/made/reciprocal/symmetry_points.py +0 -385
  73. package/src/py/mat3ra/made/tools/README.md +0 -173
  74. package/src/py/mat3ra/made/tools/__init__.py +0 -0
  75. package/src/py/mat3ra/made/tools/analyze/__init__.py +0 -31
  76. package/src/py/mat3ra/made/tools/analyze/basis/__init__.py +0 -3
  77. package/src/py/mat3ra/made/tools/analyze/basis/analyzer.py +0 -50
  78. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer.py +0 -32
  79. package/src/py/mat3ra/made/tools/analyze/build_metadata_analyzer_factory.py +0 -31
  80. package/src/py/mat3ra/made/tools/analyze/coordination.py +0 -56
  81. package/src/py/mat3ra/made/tools/analyze/crystal_site/__init__.py +0 -0
  82. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_crystal_site_material_analyzer.py +0 -35
  83. package/src/py/mat3ra/made/tools/analyze/crystal_site/adatom_material_analyzer.py +0 -49
  84. package/src/py/mat3ra/made/tools/analyze/crystal_site/crystal_site_analyzer.py +0 -65
  85. package/src/py/mat3ra/made/tools/analyze/crystal_site/voronoi_crystal_site_analyzer.py +0 -47
  86. package/src/py/mat3ra/made/tools/analyze/enums.py +0 -33
  87. package/src/py/mat3ra/made/tools/analyze/fingerprint/__init__.py +0 -4
  88. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/__init__.py +0 -0
  89. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/layered_fingerprint_along_axis.py +0 -83
  90. package/src/py/mat3ra/made/tools/analyze/fingerprint/layers/unique_element_string_per_layer.py +0 -9
  91. package/src/py/mat3ra/made/tools/analyze/interface/__init__.py +0 -20
  92. package/src/py/mat3ra/made/tools/analyze/interface/commensurate.py +0 -156
  93. package/src/py/mat3ra/made/tools/analyze/interface/enums.py +0 -60
  94. package/src/py/mat3ra/made/tools/analyze/interface/grain_boundary.py +0 -80
  95. package/src/py/mat3ra/made/tools/analyze/interface/simple.py +0 -251
  96. package/src/py/mat3ra/made/tools/analyze/interface/twisted_nanoribbons.py +0 -91
  97. package/src/py/mat3ra/made/tools/analyze/interface/utils/__init__.py +0 -77
  98. package/src/py/mat3ra/made/tools/analyze/interface/utils/holders.py +0 -14
  99. package/src/py/mat3ra/made/tools/analyze/interface/utils/vector.py +0 -56
  100. package/src/py/mat3ra/made/tools/analyze/interface/zsl.py +0 -259
  101. package/src/py/mat3ra/made/tools/analyze/interface_material.py +0 -45
  102. package/src/py/mat3ra/made/tools/analyze/lattice/__init__.py +0 -2
  103. package/src/py/mat3ra/made/tools/analyze/lattice/analyzer.py +0 -126
  104. package/src/py/mat3ra/made/tools/analyze/lattice/helpers.py +0 -31
  105. package/src/py/mat3ra/made/tools/analyze/lattice_lines.py +0 -30
  106. package/src/py/mat3ra/made/tools/analyze/lattice_planes.py +0 -192
  107. package/src/py/mat3ra/made/tools/analyze/lattice_swap_analyzer.py +0 -105
  108. package/src/py/mat3ra/made/tools/analyze/material.py +0 -276
  109. package/src/py/mat3ra/made/tools/analyze/other.py +0 -434
  110. package/src/py/mat3ra/made/tools/analyze/rdf.py +0 -74
  111. package/src/py/mat3ra/made/tools/analyze/slab.py +0 -76
  112. package/src/py/mat3ra/made/tools/analyze/solid_solution_analyzer.py +0 -171
  113. package/src/py/mat3ra/made/tools/analyze/terrace.py +0 -105
  114. package/src/py/mat3ra/made/tools/analyze/utils.py +0 -162
  115. package/src/py/mat3ra/made/tools/bond_directions/__init__.py +0 -0
  116. package/src/py/mat3ra/made/tools/bond_directions/bond_directions.py +0 -150
  117. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_for_element_list.py +0 -7
  118. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_enum.py +0 -8
  119. package/src/py/mat3ra/made/tools/bond_directions/bond_directions_templates_for_element.py +0 -16
  120. package/src/py/mat3ra/made/tools/build/__init__.py +0 -25
  121. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/__init__.py +0 -7
  122. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/helpers.py +0 -59
  123. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/types.py +0 -26
  124. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/heterostructure/utils.py +0 -139
  125. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/__init__.py +0 -47
  126. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/__init__.py +0 -11
  127. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/build_parameters.py +0 -5
  128. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/builder.py +0 -164
  129. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/configuration.py +0 -48
  130. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/base/helpers.py +0 -134
  131. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/__init__.py +0 -6
  132. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/commensurate/helpers.py +0 -157
  133. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/enums.py +0 -7
  134. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/__init__.py +0 -7
  135. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/configuration.py +0 -13
  136. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/twisted/helpers.py +0 -70
  137. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/utils.py +0 -87
  138. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/__init__.py +0 -6
  139. package/src/py/mat3ra/made/tools/build/compound_pristine_structures/two_dimensional/interface/zsl/helpers.py +0 -129
  140. package/src/py/mat3ra/made/tools/build/defective_structures/__init__.py +0 -0
  141. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/__init__.py +0 -0
  142. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +0 -0
  143. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/build_parameters.py +0 -12
  144. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/builder.py +0 -17
  145. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +0 -40
  146. package/src/py/mat3ra/made/tools/build/defective_structures/one_dimensional/grain_boundary_linear/helpers.py +0 -82
  147. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/__init__.py +0 -1
  148. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/__init__.py +0 -9
  149. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/builder.py +0 -37
  150. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/configuration.py +0 -30
  151. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/enums.py +0 -8
  152. package/src/py/mat3ra/made/tools/build/defective_structures/three_dimensional/solid_solution/helpers.py +0 -76
  153. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/__init__.py +0 -0
  154. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/__init__.py +0 -0
  155. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/builder.py +0 -11
  156. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/configuration.py +0 -18
  157. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/helpers.py +0 -137
  158. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/adatom/types.py +0 -22
  159. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +0 -0
  160. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/builder.py +0 -28
  161. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +0 -55
  162. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/grain_boundary_planar/helpers.py +0 -75
  163. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/builder.py +0 -15
  164. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/configuration.py +0 -16
  165. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/island/helpers.py +0 -116
  166. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/build_parameters.py +0 -10
  167. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/builder.py +0 -30
  168. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/configuration.py +0 -11
  169. package/src/py/mat3ra/made/tools/build/defective_structures/two_dimensional/terrace/helpers.py +0 -78
  170. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/__init__.py +0 -0
  171. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/__init__.py +0 -0
  172. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/builder.py +0 -31
  173. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/configuration.py +0 -45
  174. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/pair_defect/helpers.py +0 -80
  175. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/__init__.py +0 -40
  176. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/atom_placement_method_enum.py +0 -14
  177. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/__init__.py +0 -7
  178. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/builder.py +0 -42
  179. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/base/configuration.py +0 -27
  180. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/complex_defect_type_enum.py +0 -5
  181. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/factories.py +0 -69
  182. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/helpers.py +0 -92
  183. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/__init__.py +0 -7
  184. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/builder.py +0 -8
  185. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/configuration.py +0 -29
  186. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/helpers.py +0 -48
  187. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/interstitial/interstitial_placement_method_enum.py +0 -8
  188. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/point_defect_type_enum.py +0 -8
  189. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/__init__.py +0 -7
  190. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/builder.py +0 -6
  191. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/configuration.py +0 -41
  192. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/helpers.py +0 -43
  193. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/substitutional/substitution_placement_method_enum.py +0 -7
  194. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/types.py +0 -24
  195. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/__init__.py +0 -7
  196. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/builder.py +0 -19
  197. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/configuration.py +0 -27
  198. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/helpers.py +0 -42
  199. package/src/py/mat3ra/made/tools/build/defective_structures/zero_dimensional/point_defect/vacancy/vacancy_placement_method_enum.py +0 -7
  200. package/src/py/mat3ra/made/tools/build/pristine_structures/__init__.py +0 -0
  201. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/__init__.py +0 -0
  202. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/builder.py +0 -80
  203. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/configurations.py +0 -22
  204. package/src/py/mat3ra/made/tools/build/pristine_structures/three_dimensional/ideal_crystal/helpers.py +0 -40
  205. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/__init__.py +0 -0
  206. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/__init__.py +0 -29
  207. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/build_parameters.py +0 -5
  208. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/builders.py +0 -56
  209. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/configuration.py +0 -33
  210. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanoribbon/helpers.py +0 -76
  211. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/__init__.py +0 -11
  212. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/build_parameters.py +0 -9
  213. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/builders.py +0 -83
  214. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/configuration.py +0 -35
  215. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/nanotape/helpers.py +0 -62
  216. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/__init__.py +0 -9
  217. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/build_parameters.py +0 -8
  218. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/builder.py +0 -42
  219. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/configuration.py +0 -99
  220. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/helpers.py +0 -95
  221. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/termination_utils.py +0 -14
  222. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab/utils.py +0 -61
  223. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/builder.py +0 -22
  224. package/src/py/mat3ra/made/tools/build/pristine_structures/two_dimensional/slab_strained_supercell/configuration.py +0 -17
  225. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/__init__.py +0 -0
  226. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/__init__.py +0 -19
  227. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/analyzer.py +0 -86
  228. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/__init__.py +0 -7
  229. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/builder.py +0 -54
  230. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/ase_based/configuration.py +0 -19
  231. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/enums.py +0 -42
  232. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/helpers.py +0 -127
  233. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/__init__.py +0 -7
  234. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/builder.py +0 -33
  235. package/src/py/mat3ra/made/tools/build/pristine_structures/zero_dimensional/nanoparticle/merge_based/configuration.py +0 -16
  236. package/src/py/mat3ra/made/tools/build/processed_structures/__init__.py +0 -0
  237. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/__init__.py +0 -0
  238. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/__init__.py +0 -0
  239. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/__init__.py +0 -9
  240. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/coordination_based_passivation_material_analyzer.py +0 -112
  241. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/passivation_material_analyzer.py +0 -16
  242. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/analyzers/surface_passivation_material_analyzer.py +0 -32
  243. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/builder.py +0 -23
  244. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/configuration.py +0 -31
  245. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/enums.py +0 -7
  246. package/src/py/mat3ra/made/tools/build/processed_structures/two_dimensional/passivation/helpers.py +0 -151
  247. package/src/py/mat3ra/made/tools/build_components/__init__.py +0 -10
  248. package/src/py/mat3ra/made/tools/build_components/entities/__init__.py +0 -0
  249. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/__init__.py +0 -0
  250. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +0 -0
  251. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/miller_indices.py +0 -18
  252. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/two_dimensional/termination.py +0 -33
  253. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/__init__.py +0 -0
  254. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/__init__.py +0 -2
  255. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site.py +0 -24
  256. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/crystal_site/crystal_site_list.py +0 -9
  257. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/builder.py +0 -32
  258. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/point_defect_site/configuration.py +0 -14
  259. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/__init__.py +0 -0
  260. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/builder.py +0 -29
  261. package/src/py/mat3ra/made/tools/build_components/entities/auxiliary/zero_dimensional/void_region/configuration.py +0 -19
  262. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/builder.py +0 -48
  263. package/src/py/mat3ra/made/tools/build_components/entities/core/two_dimensional/vacuum/configuration.py +0 -17
  264. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/builder.py +0 -25
  265. package/src/py/mat3ra/made/tools/build_components/entities/core/zero_dimensional/atom/configuration.py +0 -8
  266. package/src/py/mat3ra/made/tools/build_components/entities/reusable/__init__.py +0 -0
  267. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/__init__.py +0 -16
  268. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_configuration_pydantic.py +0 -5
  269. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/base_single_builder.py +0 -87
  270. package/src/py/mat3ra/made/tools/build_components/entities/reusable/base_builder/build_parameters.py +0 -5
  271. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/__init__.py +0 -0
  272. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/__init__.py +0 -4
  273. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/builder.py +0 -46
  274. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/configuration.py +0 -19
  275. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/edge_types.py +0 -51
  276. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines/helpers.py +0 -58
  277. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/__init__.py +0 -4
  278. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/builder.py +0 -42
  279. package/src/py/mat3ra/made/tools/build_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated/configuration.py +0 -21
  280. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/__init__.py +0 -0
  281. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/configuration.py +0 -11
  282. package/src/py/mat3ra/made/tools/build_components/entities/reusable/three_dimensional/supercell/helpers.py +0 -38
  283. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/__init__.py +0 -24
  284. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/__init__.py +0 -7
  285. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/builder.py +0 -62
  286. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/configuration.py +0 -14
  287. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated/helpers.py +0 -42
  288. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/__init__.py +0 -7
  289. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/builder.py +0 -39
  290. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/crystal_lattice_planes/configuration.py +0 -24
  291. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/__init__.py +0 -10
  292. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/builder.py +0 -36
  293. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/configuration.py +0 -31
  294. package/src/py/mat3ra/made/tools/build_components/entities/reusable/two_dimensional/slab_stack/helpers.py +0 -80
  295. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/__init__.py +0 -0
  296. package/src/py/mat3ra/made/tools/build_components/entities/reusable/zero_dimensional/coordinates_shape_enum.py +0 -8
  297. package/src/py/mat3ra/made/tools/build_components/metadata/__init__.py +0 -2
  298. package/src/py/mat3ra/made/tools/build_components/metadata/build_metadata.py +0 -7
  299. package/src/py/mat3ra/made/tools/build_components/metadata/material_build_metadata.py +0 -35
  300. package/src/py/mat3ra/made/tools/build_components/metadata/material_with_build_metadata.py +0 -8
  301. package/src/py/mat3ra/made/tools/build_components/mixins/__init__.py +0 -2
  302. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_ase_atoms_mixin.py +0 -8
  303. package/src/py/mat3ra/made/tools/build_components/mixins/convert_generated_items_pymatgen_structure_mixin.py +0 -8
  304. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/__init__.py +0 -0
  305. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/enums.py +0 -11
  306. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/__init__.py +0 -6
  307. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/build_parameters.py +0 -18
  308. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/builder.py +0 -93
  309. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/merge/configuration.py +0 -20
  310. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/builder.py +0 -83
  311. package/src/py/mat3ra/made/tools/build_components/operations/core/combinations/stack/configuration.py +0 -24
  312. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/__init__.py +0 -15
  313. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/build_parameters.py +0 -5
  314. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/base.py +0 -33
  315. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/builders/isometric.py +0 -25
  316. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/configuration.py +0 -24
  317. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/__init__.py +0 -13
  318. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/atomic_mass_dependent_function_holder.py +0 -32
  319. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/function_holder.py +0 -80
  320. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/maxwell_boltzmann.py +0 -39
  321. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/perturbation_function_holder.py +0 -45
  322. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/functions/sine_wave_perturbation_function_holder.py +0 -29
  323. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/perturb/helpers.py +0 -83
  324. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/__init__.py +0 -5
  325. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/builder.py +0 -25
  326. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/configuration.py +0 -23
  327. package/src/py/mat3ra/made/tools/build_components/operations/core/modifications/strain/helpers.py +0 -49
  328. package/src/py/mat3ra/made/tools/build_components/utils.py +0 -44
  329. package/src/py/mat3ra/made/tools/calculate/__init__.py +0 -149
  330. package/src/py/mat3ra/made/tools/calculate/ase/__init__.py +0 -133
  331. package/src/py/mat3ra/made/tools/calculate/ase/constraints.py +0 -91
  332. package/src/py/mat3ra/made/tools/calculate/calculators/__init__.py +0 -4
  333. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator.py +0 -70
  334. package/src/py/mat3ra/made/tools/calculate/calculators/interface_material_calculator_parameters.py +0 -14
  335. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator.py +0 -32
  336. package/src/py/mat3ra/made/tools/calculate/calculators/material_calculator_parameters.py +0 -17
  337. package/src/py/mat3ra/made/tools/calculate/interaction_functions.py +0 -23
  338. package/src/py/mat3ra/made/tools/convert/__init__.py +0 -286
  339. package/src/py/mat3ra/made/tools/convert/interface_parts_enum.py +0 -9
  340. package/src/py/mat3ra/made/tools/convert/utils.py +0 -96
  341. package/src/py/mat3ra/made/tools/entities/__init__.py +0 -5
  342. package/src/py/mat3ra/made/tools/entities/coordinate/__init__.py +0 -14
  343. package/src/py/mat3ra/made/tools/entities/coordinate/box_coordinate_condition.py +0 -15
  344. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_condition.py +0 -16
  345. package/src/py/mat3ra/made/tools/entities/coordinate/coordinate_functions.py +0 -158
  346. package/src/py/mat3ra/made/tools/entities/coordinate/cylinder_coordinate_condition.py +0 -17
  347. package/src/py/mat3ra/made/tools/entities/coordinate/plane_coordinate_condition.py +0 -14
  348. package/src/py/mat3ra/made/tools/entities/coordinate/sphere_coordinate_condition.py +0 -15
  349. package/src/py/mat3ra/made/tools/entities/coordinate/triangular_prism_coordinate_condition.py +0 -26
  350. package/src/py/mat3ra/made/tools/entities/termination_holder.py +0 -12
  351. package/src/py/mat3ra/made/tools/helpers.py +0 -168
  352. package/src/py/mat3ra/made/tools/modify.py +0 -627
  353. package/src/py/mat3ra/made/tools/operations/core/binary.py +0 -106
  354. package/src/py/mat3ra/made/tools/operations/core/unary.py +0 -170
  355. package/src/py/mat3ra/made/tools/operations/core/utils.py +0 -138
  356. package/src/py/mat3ra/made/tools/operations/reusable/unary.py +0 -53
  357. package/src/py/mat3ra/made/tools/optimize.py +0 -55
  358. package/src/py/mat3ra/made/tools/third_party.py +0 -69
  359. package/src/py/mat3ra/made/tools/utils.py +0 -182
  360. package/src/py/mat3ra/made/utils.py +0 -144
  361. package/tests/.gitattributes +0 -1
  362. package/tests/fixtures/AsGe-basis.json +0 -3
  363. package/tests/fixtures/C2H4-translated.json +0 -3
  364. package/tests/fixtures/C2H4.json +0 -3
  365. package/tests/fixtures/FeLiSi-basis.json +0 -3
  366. package/tests/fixtures/FeO.json +0 -3
  367. package/tests/fixtures/Ge2-basis.json +0 -3
  368. package/tests/fixtures/Graphene.json +0 -3
  369. package/tests/fixtures/Graphene.poscar +0 -3
  370. package/tests/fixtures/H2+H-final.json +0 -3
  371. package/tests/fixtures/H2+H-image.json +0 -3
  372. package/tests/fixtures/H2+H-initial.json +0 -3
  373. package/tests/fixtures/H2O.poscar +0 -3
  374. package/tests/fixtures/LiFeSi-basis-labels.json +0 -3
  375. package/tests/fixtures/LiFeSi-basis.json +0 -3
  376. package/tests/fixtures/Na.json +0 -3
  377. package/tests/fixtures/Na4Cl4-cartesian.json +0 -3
  378. package/tests/fixtures/Na4Cl4.json +0 -3
  379. package/tests/fixtures/Na4Cl4.poscar +0 -3
  380. package/tests/fixtures/Ni-hex.json +0 -3
  381. package/tests/fixtures/Ni-hex.poscar +0 -3
  382. package/tests/fixtures/OSi-basis.json +0 -3
  383. package/tests/fixtures/Si-hex.poscar +0 -3
  384. package/tests/fixtures/Si-pwscf.in +0 -3
  385. package/tests/fixtures/Si-slab.json +0 -3
  386. package/tests/fixtures/Si-supercell.json +0 -3
  387. package/tests/fixtures/Si2-basis-repeated.json +0 -3
  388. package/tests/fixtures/Si2-basis.json +0 -3
  389. package/tests/fixtures/Zr1H23Zr1H1.json +0 -3
  390. package/tests/fixtures/Zr1H23Zr1H1.poscar +0 -3
  391. package/tests/fixtures/atomic-constraints.json +0 -3
  392. package/tests/fixtures/hashes.json +0 -3
  393. package/tests/fixtures/si-slab-100.json +0 -3
  394. package/tests/fixtures/si-slab-111-0-vacuum.json +0 -3
  395. package/tests/fixtures/si-slab-111-0.5-vacuum-gamma-120.json +0 -3
  396. package/tests/fixtures/si-slab-111-0.5-vacuum-ratio.json +0 -3
  397. package/tests/fixtures/si-standata.json +0 -3
  398. package/tests/js/basis/basis.ts +0 -247
  399. package/tests/js/cell/cell.ts +0 -182
  400. package/tests/js/cell/primitive_cell.ts +0 -21
  401. package/tests/js/constraints/constraints.ts +0 -11
  402. package/tests/js/fixtures.ts +0 -123
  403. package/tests/js/lattice/lattice.ts +0 -43
  404. package/tests/js/lattice/lattice_reciprocal.ts +0 -104
  405. package/tests/js/material/material.ts +0 -161
  406. package/tests/js/parsers/espresso.ts +0 -12
  407. package/tests/js/parsers/native_formats.ts +0 -35
  408. package/tests/js/parsers/poscar.ts +0 -89
  409. package/tests/js/parsers/xyz.ts +0 -33
  410. package/tests/js/parsers/xyz_combinatorial_basis.ts +0 -156
  411. package/tests/js/register-esse-schemas.cjs +0 -10
  412. package/tests/js/setup.ts +0 -6
  413. package/tests/js/tools/basis.ts +0 -22
  414. package/tests/js/tools/supercell.ts +0 -58
  415. package/tests/js/tools/surface.ts +0 -111
  416. package/tests/py/conftest.py +0 -34
  417. package/tests/py/mat3ra/debug_utils.py +0 -75
  418. package/tests/py/unit/__init__.py +0 -0
  419. package/tests/py/unit/fixtures/__init__.py +0 -0
  420. package/tests/py/unit/fixtures/adatom.py +0 -60
  421. package/tests/py/unit/fixtures/bulk.py +0 -162
  422. package/tests/py/unit/fixtures/cuts.py +0 -118
  423. package/tests/py/unit/fixtures/grain_boundary.py +0 -875
  424. package/tests/py/unit/fixtures/interface/commensurate.py +0 -498
  425. package/tests/py/unit/fixtures/interface/gaas_dia.py +0 -837
  426. package/tests/py/unit/fixtures/interface/gr_ni_111_top_hcp.py +0 -123
  427. package/tests/py/unit/fixtures/interface/simple.py +0 -84
  428. package/tests/py/unit/fixtures/interface/twisted_nanoribbons.py +0 -131
  429. package/tests/py/unit/fixtures/interface/zsl.py +0 -756
  430. package/tests/py/unit/fixtures/island.py +0 -336
  431. package/tests/py/unit/fixtures/merge.py +0 -147
  432. package/tests/py/unit/fixtures/monolayer.py +0 -46
  433. package/tests/py/unit/fixtures/nanoparticle.py +0 -116
  434. package/tests/py/unit/fixtures/nanoribbon/__init__.py +0 -0
  435. package/tests/py/unit/fixtures/nanoribbon/armchair.py +0 -102
  436. package/tests/py/unit/fixtures/nanoribbon/nanoribbon.py +0 -145
  437. package/tests/py/unit/fixtures/nanoribbon/zigzag.py +0 -54
  438. package/tests/py/unit/fixtures/pair_defects.py +0 -41
  439. package/tests/py/unit/fixtures/passivated/nanoribbon.py +0 -69
  440. package/tests/py/unit/fixtures/passivated/slab.py +0 -58
  441. package/tests/py/unit/fixtures/point_defects.py +0 -158
  442. package/tests/py/unit/fixtures/slab.py +0 -606
  443. package/tests/py/unit/fixtures/strain.py +0 -42
  444. package/tests/py/unit/fixtures/supercell.py +0 -64
  445. package/tests/py/unit/fixtures/terrace.py +0 -70
  446. package/tests/py/unit/fixtures/thrid_party/ase_atoms.py +0 -13
  447. package/tests/py/unit/test_analyze_lattice_planes.py +0 -131
  448. package/tests/py/unit/test_cell.py +0 -104
  449. package/tests/py/unit/test_data_files.py +0 -68
  450. package/tests/py/unit/test_lattice.py +0 -103
  451. package/tests/py/unit/test_lattice_type_extended.py +0 -53
  452. package/tests/py/unit/test_material.py +0 -158
  453. package/tests/py/unit/test_operations.py +0 -126
  454. package/tests/py/unit/test_primitive_cell.py +0 -118
  455. package/tests/py/unit/test_reciprocal_lattice.py +0 -86
  456. package/tests/py/unit/test_reciprocal_paths.py +0 -64
  457. package/tests/py/unit/test_symmetry_points.py +0 -151
  458. package/tests/py/unit/test_tools_analyze.py +0 -219
  459. package/tests/py/unit/test_tools_analyze_basis.py +0 -105
  460. package/tests/py/unit/test_tools_analyze_interface.py +0 -223
  461. package/tests/py/unit/test_tools_analyze_interface_material.py +0 -63
  462. package/tests/py/unit/test_tools_analyze_interface_zsl.py +0 -187
  463. package/tests/py/unit/test_tools_analyze_lattice.py +0 -74
  464. package/tests/py/unit/test_tools_analyze_swap.py +0 -80
  465. package/tests/py/unit/test_tools_build.py +0 -158
  466. package/tests/py/unit/test_tools_build_defect/__init__.py +0 -0
  467. package/tests/py/unit/test_tools_build_defect/test_adatom.py +0 -84
  468. package/tests/py/unit/test_tools_build_defect/test_island.py +0 -45
  469. package/tests/py/unit/test_tools_build_defect/test_pair_defect.py +0 -84
  470. package/tests/py/unit/test_tools_build_defect/test_point_defect.py +0 -196
  471. package/tests/py/unit/test_tools_build_defect/test_slab_stack.py +0 -30
  472. package/tests/py/unit/test_tools_build_defect/test_solid_solution.py +0 -90
  473. package/tests/py/unit/test_tools_build_defect/test_terrace.py +0 -44
  474. package/tests/py/unit/test_tools_build_grain_boundary.py +0 -133
  475. package/tests/py/unit/test_tools_build_heterostructure.py +0 -46
  476. package/tests/py/unit/test_tools_build_interface.py +0 -292
  477. package/tests/py/unit/test_tools_build_interface_zsl.py +0 -263
  478. package/tests/py/unit/test_tools_build_maxwell_disorder.py +0 -123
  479. package/tests/py/unit/test_tools_build_metadata.py +0 -79
  480. package/tests/py/unit/test_tools_build_monolayer.py +0 -33
  481. package/tests/py/unit/test_tools_build_nanoparticle.py +0 -42
  482. package/tests/py/unit/test_tools_build_nanoribbon.py +0 -45
  483. package/tests/py/unit/test_tools_build_passivation.py +0 -85
  484. package/tests/py/unit/test_tools_build_perturbation.py +0 -103
  485. package/tests/py/unit/test_tools_build_slab.py +0 -382
  486. package/tests/py/unit/test_tools_build_strain.py +0 -36
  487. package/tests/py/unit/test_tools_build_supercell.py +0 -47
  488. package/tests/py/unit/test_tools_calculate.py +0 -67
  489. package/tests/py/unit/test_tools_convert.py +0 -174
  490. package/tests/py/unit/test_tools_modify.py +0 -248
  491. package/tests/py/unit/utils.py +0 -142
  492. package/tsconfig-transpile.json +0 -3
  493. package/tsconfig.json +0 -3
@@ -1,104 +0,0 @@
1
- import "../setup";
2
-
3
- import { LatticeSchema } from "@mat3ra/esse/dist/js/types";
4
- import { Utils } from "@mat3ra/utils";
5
- import { expect } from "chai";
6
-
7
- import { ReciprocalLattice } from "../../../src/js/lattice/reciprocal/lattice_reciprocal";
8
- import { Na4Cl4, Silicon, SiSlab } from "../fixtures";
9
-
10
- const { assertDeepAlmostEqual } = Utils.assertion;
11
-
12
- describe("Lattice Reciprocal", () => {
13
- it("should extract kpoint path", () => {
14
- const lattice = new ReciprocalLattice(Na4Cl4.lattice as LatticeSchema);
15
- const expectedPath = [
16
- {
17
- point: "Γ",
18
- steps: 0,
19
- coordinates: [0, 0, 0],
20
- },
21
- {
22
- point: "R",
23
- steps: 1,
24
- coordinates: [0.5, 0.5, 0.5],
25
- },
26
- ];
27
- const actualPath = lattice.extractKpointPath([
28
- [0, 0, 0],
29
- [0.5, 0.5, 0.5],
30
- ]);
31
- assertDeepAlmostEqual(expectedPath, actualPath);
32
- });
33
-
34
- it("should return cartesian coordinates of a point", () => {
35
- const lattice = new ReciprocalLattice(Na4Cl4.lattice as LatticeSchema);
36
- const expectedCoordinates = [0.5, 0.5, 0.5];
37
- const actualCoordinates = lattice.getCartesianCoordinates([0.5, 0.5, 0.5]);
38
- assertDeepAlmostEqual(actualCoordinates, expectedCoordinates);
39
- });
40
-
41
- it("should return reciprocal vectors", () => {
42
- const lattice = new ReciprocalLattice(Silicon.lattice as LatticeSchema);
43
- const actualVectors = lattice.reciprocalVectors;
44
- const expectedVectors = [
45
- [1.1547005383792517, -0.40824829046386313, 0],
46
- [0, 1.2247448713915892, 0],
47
- [-0.5773502691896261, -0.40824829046386313, 1],
48
- ];
49
- assertDeepAlmostEqual(actualVectors, expectedVectors);
50
- });
51
-
52
- it("should extract symmetry points", () => {
53
- const lattice = new ReciprocalLattice(Na4Cl4.lattice as LatticeSchema);
54
- const actualPoints = lattice.symmetryPoints;
55
- const expectedPoints = [
56
- {
57
- point: "Γ",
58
- coordinates: [0, 0, 0],
59
- },
60
- {
61
- point: "R",
62
- coordinates: [0.5, 0.5, 0.5],
63
- },
64
- {
65
- point: "X",
66
- coordinates: [0, 0.5, 0],
67
- },
68
- {
69
- point: "M",
70
- coordinates: [0.5, 0.5, 0],
71
- },
72
- ];
73
- assertDeepAlmostEqual(actualPoints, expectedPoints);
74
- });
75
-
76
- it("should calculate k-grid dimensions based on number of points", () => {
77
- const lattice = new ReciprocalLattice(SiSlab.lattice as LatticeSchema);
78
- const dimensions = lattice.getDimensionsFromPointsCount(500);
79
- const expectedDimensions = [12, 12, 4];
80
- assertDeepAlmostEqual(dimensions, expectedDimensions);
81
- });
82
-
83
- it("should calculate k-grid dimensions based on spacing in cartesian units", () => {
84
- const lattice = new ReciprocalLattice(SiSlab.lattice as LatticeSchema);
85
- const dimensions = lattice.getDimensionsFromSpacing(0.09);
86
- const expectedDimensions = [12, 12, 4];
87
- assertDeepAlmostEqual(dimensions, expectedDimensions);
88
- });
89
-
90
- it("should calculate k-grid dimensions based on spacing in 1/angstrom", () => {
91
- const lattice = new ReciprocalLattice(SiSlab.lattice as LatticeSchema);
92
- const dimensions = lattice.getDimensionsFromSpacing(0.11, "angstrom");
93
- const expectedDimensions = [12, 12, 4];
94
- assertDeepAlmostEqual(dimensions, expectedDimensions);
95
- });
96
-
97
- it("should calculate average spacing in 1/angstrom based on k-grid dimensions", () => {
98
- const lattice = new ReciprocalLattice(SiSlab.lattice as LatticeSchema);
99
- const dimensions = [12, 12, 4];
100
- const expectedSpacing = 0.1047;
101
- const spacing = lattice.getSpacingFromDimensions(dimensions, "angstrom");
102
- expect(spacing).to.be.almost(expectedSpacing, 1e-4);
103
- });
104
- });
@@ -1,161 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import Material from "../../../src/js/Material";
4
- import { FeOStandata, Graphene, Na4Cl4, Silicon } from "../fixtures";
5
-
6
- const newBasisXYZ = `Si 0.000000 0.000000 0.000000
7
- Ge 0.250000 0.250000 0.250000
8
- `;
9
-
10
- describe("Material", () => {
11
- it("should return unique elements", () => {
12
- const material = new Material(Na4Cl4);
13
- expect(material.uniqueElements).to.have.same.members(["Na", "Cl"]);
14
- });
15
-
16
- it("should return cloned material", () => {
17
- const material = new Material(Silicon);
18
- const clonedMaterial = material.clone();
19
- clonedMaterial.setBasis(newBasisXYZ, "xyz", clonedMaterial.getBasis().units);
20
- expect(clonedMaterial.getBasis().elements).to.have.lengthOf(2);
21
- });
22
-
23
- it("defaults missing metadata to empty object", () => {
24
- const material = new Material({
25
- name: Silicon.name,
26
- basis: Silicon.basis,
27
- lattice: Silicon.lattice,
28
- });
29
- expect(material.metadata).to.deep.equal({});
30
- expect(material.toJSON().metadata).to.deep.equal({});
31
- });
32
-
33
- describe("toJSON variants", () => {
34
- const material = new Material(Silicon);
35
-
36
- it("toJSONPure omits hash and basis.constraints", () => {
37
- const json = material.toJSONPure();
38
- expect(json).to.not.have.property("hash");
39
- expect(json).to.not.have.property("scaledHash");
40
- expect(json.basis).to.not.have.property("constraints");
41
- expect(json.name).to.equal(Silicon.name);
42
- });
43
-
44
- it("toJSONEnhanced includes basis.constraints and omits hash", () => {
45
- const json = material.toJSONEnhanced();
46
- expect(json).to.not.have.property("hash");
47
- expect(json).to.not.have.property("scaledHash");
48
- expect(json.basis).to.have.property("constraints").that.is.an("array");
49
- });
50
-
51
- it("toJSONHashed includes hash and omits basis.constraints", () => {
52
- const json = material.toJSONHashed();
53
- expect(json.hash).to.be.a("string");
54
- expect(json.hash.length).to.be.greaterThan(0);
55
- expect(json.basis).to.not.have.property("constraints");
56
- });
57
-
58
- it("toJSONEnhancedHashed includes hash and basis.constraints", () => {
59
- const json = material.toJSONEnhancedHashed();
60
- expect(json.hash).to.be.a("string");
61
- expect(json.hash.length).to.be.greaterThan(0);
62
- expect(json.basis.constraints).to.be.an("array");
63
- });
64
-
65
- it("toJSON equals toJSONEnhancedHashed", () => {
66
- expect(material.toJSON()).to.deep.equal(material.toJSONEnhancedHashed());
67
- });
68
- });
69
-
70
- it("getBasisAsXyz includes atomic constraints via toJSONEnhanced", () => {
71
- const material = new Material({
72
- name: "Li-with-constraints",
73
- basis: {
74
- elements: [
75
- { id: 0, value: "Li" },
76
- { id: 1, value: "Li" },
77
- ],
78
- coordinates: [
79
- { id: 0, value: [0, 0, 0] },
80
- { id: 1, value: [0.25, 0.25, 0.25] },
81
- ],
82
- units: "crystal",
83
- constraints: [
84
- { id: 0, value: [true, true, false] },
85
- { id: 1, value: [true, true, true] },
86
- ],
87
- },
88
- lattice: Silicon.lattice,
89
- });
90
-
91
- const xyz = material.getBasisAsXyz();
92
- expect(xyz).to.match(/Li\s+0\.000000\s+0\.000000\s+0\.000000\s+1\s+1\s+0/);
93
- expect(xyz).to.match(/Li\s+0\.250000\s+0\.250000\s+0\.250000\s+1\s+1\s+1/);
94
- // Regression: toJSONPure strips constraints — must not be used for XYZ display.
95
- expect(material.toJSONPure().basis).to.not.have.property("constraints");
96
- });
97
-
98
- describe("calculateHash", () => {
99
- [
100
- { name: "Silicon", fixture: Silicon },
101
- { name: "Graphene", fixture: Graphene },
102
- ].forEach(({ name, fixture }) => {
103
- it(`should match expected hash for ${name}`, () => {
104
- const material = new Material(fixture);
105
- expect(material.calculateHash()).to.equal(fixture.hash);
106
- expect(material.scaledHash).to.equal(fixture.scaledHash);
107
- });
108
- });
109
-
110
- it("should match expected hash for FeO (standata)", () => {
111
- // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
112
- const expectedHashes = require("../../fixtures/hashes.json");
113
- const material = new Material(FeOStandata);
114
- expect(material.calculateHash()).to.equal(expectedHashes.FeO.hash);
115
- // scaledHash is stored on schema; standata config may omit it — match main's computed getter.
116
- expect(material.calculateHash("", true)).to.equal(expectedHashes.FeO.scaledHash);
117
- });
118
-
119
- it("stores InChI hash for non-periodic materials when InChI is present", () => {
120
- // MD5 of the InChI string — same contract as web-app MolView upload.
121
- const inchi =
122
- "1S/C8H18N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h5-9,13-14H,4H2,1-3H3";
123
- const expectedInchiHash = "b3680772bb4f0cba602788d519531914";
124
-
125
- const material = new Material({
126
- name: "non-periodic-inchi",
127
- isNonPeriodic: true,
128
- basis: Silicon.basis,
129
- lattice: Silicon.lattice,
130
- derivedProperties: [{ name: "inchi", value: inchi }],
131
- });
132
-
133
- expect(material.isNonPeriodic).to.equal(true);
134
- expect(material.getInchiStringForHash()).to.equal(inchi);
135
- expect(material.calculateHash()).to.equal(expectedInchiHash);
136
- expect(material.hash).to.equal(expectedInchiHash);
137
-
138
- const geometricHashWithBypass = material.calculateHash("", false, true);
139
- material.lattice = { ...material.lattice };
140
- expect(material.hash).to.equal(expectedInchiHash);
141
- expect(material.hash).to.not.equal(geometricHashWithBypass);
142
- });
143
-
144
- it("uses geometric hash when non-periodic but InChI is not derived yet", () => {
145
- // Designer toggle sets isNonPeriodic then scales lattice before butler adds InChI.
146
- const material = new Material({
147
- name: "non-periodic-no-inchi",
148
- isNonPeriodic: true,
149
- basis: Silicon.basis,
150
- lattice: Silicon.lattice,
151
- });
152
-
153
- const expectedGeometricHash = material.calculateHash("", false, true);
154
- expect(material.hash).to.equal(expectedGeometricHash);
155
- expect(() => material.calculateHash()).to.throw(/Missing InChI/);
156
-
157
- material.lattice = { ...material.lattice };
158
- expect(material.hash).to.equal(material.calculateHash("", false, true));
159
- });
160
- });
161
- });
@@ -1,12 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import Material from "../../../src/js/Material";
4
- import parsers from "../../../src/js/parsers/parsers";
5
- import { Silicon, SiPWSCFInput } from "../fixtures";
6
-
7
- describe("Parsers:Espresso", () => {
8
- it("should return textual representation of a material according to QE pw.x input format", () => {
9
- const material = new Material(Silicon);
10
- expect(parsers.espresso.toEspressoFormat(material.toJSON())).to.be.equal(SiPWSCFInput);
11
- });
12
- });
@@ -1,35 +0,0 @@
1
- import "../setup";
2
-
3
- import { Utils } from "@mat3ra/utils";
4
- import { expect } from "chai";
5
-
6
- import nativeFormatParsers from "../../../src/js/parsers/native_format_parsers";
7
- import { Graphene, GraphenePoscar, NiHex, NiHexPoscar } from "../fixtures";
8
-
9
- const { assertDeepAlmostEqual } = Utils.assertion;
10
-
11
- describe("Parsers.NativeFormat", () => {
12
- it("should return a material config for graphene from a json", () => {
13
- const json = JSON.stringify(Graphene);
14
- expect(nativeFormatParsers.convertFromNativeFormat(json)).to.deep.equal(Graphene);
15
- });
16
-
17
- it("should return a material config for graphene from a poscar", () => {
18
- const poscar = GraphenePoscar;
19
- const config = nativeFormatParsers.convertFromNativeFormat(poscar);
20
- assertDeepAlmostEqual(config, Graphene, ["basis.labels", "lattice"]);
21
- assertDeepAlmostEqual(config.lattice, Graphene.lattice, ["type"]);
22
- });
23
-
24
- it("should return a material config for Ni hex from a poscar", () => {
25
- const poscar = NiHexPoscar;
26
- const config = nativeFormatParsers.convertFromNativeFormat(poscar);
27
- assertDeepAlmostEqual(config, NiHex, ["lattice", "basis.labels"]);
28
- assertDeepAlmostEqual(config.lattice, NiHex.lattice, ["type"]); // to omit "lattice.type" property
29
- });
30
-
31
- it("should throw an error for unknown format", () => {
32
- const text = "A\n snippet from an unknown format";
33
- expect(() => nativeFormatParsers.convertFromNativeFormat(text)).to.throw("Unknown format");
34
- });
35
- });
@@ -1,89 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import { AtomicConstraints } from "../../../src/js/constraints/constraints";
4
- import Material from "../../../src/js/Material";
5
- import parsers from "../../../src/js/parsers/parsers";
6
- import { atomsCount } from "../../../src/js/parsers/poscar";
7
- import {
8
- atomicConstraints,
9
- H2OPoscar,
10
- Na4Cl4,
11
- Na4Cl4Poscar,
12
- Silicon,
13
- Zr1H23Zr1H1,
14
- Zr1H23Zr1H1Poscar,
15
- } from "../fixtures";
16
-
17
- const O2_POSCAR_WITH_COMMENTS = `O2 molecule in a box
18
- 1.0 ! universal scaling parameters
19
- 12.0 0.0 0.0 ! lattice vector a(1)
20
- 0.0 12.0 0.0 ! lattice vector a(2)
21
- 0.0 0.0 12.0 ! lattice vector a(3)
22
- O
23
- 2 ! number of atoms
24
- cart ! positions in cartesian coordinates
25
- 0 0 0 O
26
- 0 0 1.21 O
27
- `;
28
-
29
- describe("Parsers.POSCAR", () => {
30
- it("should return a valid poscar", () => {
31
- const material = new Material(Na4Cl4);
32
- expect(`${material.getAsPOSCAR()}\n`).to.be.equal(Na4Cl4Poscar);
33
- });
34
-
35
- it("should return poscar elements line according to id in basis, duplicate entries separate", () => {
36
- const material = new Material(Zr1H23Zr1H1);
37
- expect(`${material.getAsPOSCAR()}\n`).to.be.equal(Zr1H23Zr1H1Poscar);
38
- });
39
-
40
- it("should return the number of atoms for a molecule in a poscar file", () => {
41
- expect(atomsCount(H2OPoscar)).to.be.equal(3);
42
- });
43
-
44
- it("should detect POSCAR with VASP-style comments", () => {
45
- expect(parsers.poscar.isPoscar(O2_POSCAR_WITH_COMMENTS)).to.be.equal(true);
46
- expect(parsers.nativeFormatParsers.detectFormat(O2_POSCAR_WITH_COMMENTS)).to.be.equal(
47
- "poscar",
48
- );
49
- });
50
-
51
- it("should parse POSCAR with VASP-style comments", () => {
52
- const materialConfig = parsers.poscar.fromPoscar(O2_POSCAR_WITH_COMMENTS);
53
- expect(materialConfig).to.have.property("basis");
54
- expect((materialConfig as { basis: { elements: object[] } }).basis.elements).to.have.length(
55
- 2,
56
- );
57
- });
58
-
59
- it("should return constraints as string with given map function", () => {
60
- const constraints = AtomicConstraints.fromObjects(atomicConstraints);
61
- expect(
62
- constraints.getAsStringByIndex(0, parsers.poscar.atomicConstraintsCharFromBool),
63
- ).to.be.equal("T T F");
64
- });
65
-
66
- it("should generate POSCAR with constraints if they were present", () => {
67
- const newBasisXYZ = `Si 0.000000 0.000000 0.000000 0 0 0
68
- Ge 0.250000 0.250000 0.250000 1 1 1
69
- `;
70
- const poscarConstraints = `Silicon FCC
71
- 1.0
72
- 3.348920000\t 0.000000000\t 1.933500000
73
- 1.116307000\t 3.157392000\t 1.933500000
74
- 0.000000000\t 0.000000000\t 3.867000000
75
- Si Ge
76
- 1 1
77
- Selective dynamics
78
- direct
79
- 0.000000000 0.000000000 0.000000000 F F F Si
80
- 0.250000000 0.250000000 0.250000000 T T T Ge`;
81
-
82
- const material = new Material(Silicon);
83
- const clonedMaterial = material.clone();
84
- clonedMaterial.setBasis(newBasisXYZ, "xyz", clonedMaterial.getBasis().units);
85
-
86
- const poscar = clonedMaterial.getAsPOSCAR(true);
87
- expect(poscar).to.be.equal(poscarConstraints);
88
- });
89
- });
@@ -1,33 +0,0 @@
1
- import { Utils } from "@mat3ra/utils";
2
-
3
- import parsers from "../../../src/js/parsers/parsers";
4
- import { FeO, Silicon } from "../fixtures";
5
-
6
- const { assertDeepAlmostEqual } = Utils.assertion;
7
-
8
- describe("Parsers:XYZ", () => {
9
- it("should extract basis from XYZ text", () => {
10
- const text = "Si 0 0 0 \n Si 0.25 0.25 0.25";
11
- assertDeepAlmostEqual(parsers.xyz.toBasisConfig(text), Silicon.basis, [
12
- "constraints",
13
- "cell",
14
- "units",
15
- ]);
16
- });
17
-
18
- it("should extract basis from XYZ text with atomic labels", () => {
19
- const text =
20
- "Fe1 0.00 0.00 0.00 1 1 1\n" +
21
- "Fe2 0.50 0.50 0.50 1 1 1\n" +
22
- "O 0.25 0.25 0.25 1 1 1\n" +
23
- "O 0.75 0.75 0.75 1 1 1";
24
- assertDeepAlmostEqual(parsers.xyz.toBasisConfig(text), FeO.basis, ["cell", "units"]);
25
- });
26
-
27
- it("should return [true, true, true] as constraints for the line without any constraints", () => {
28
- const text = "Si 0 0 0 0 1 1\n Si 0.25 0.25 0.25";
29
- const basis = parsers.xyz.toBasisConfig(text);
30
- assertDeepAlmostEqual(basis.constraints[0].value, [false, true, true]);
31
- assertDeepAlmostEqual(basis.constraints[1].value, [true, true, true]);
32
- });
33
- });
@@ -1,156 +0,0 @@
1
- import { expect } from "chai";
2
-
3
- import { Basis } from "../../../src/js/basis/basis";
4
- import { CombinatorialBasis } from "../../../src/js/parsers/xyz_combinatorial_basis";
5
- import { AsGeBasis, FeLiSiBasis, Ge2Basis, OSiBasis, Si2Basis } from "../fixtures";
6
-
7
- describe("Parsers:CombinatorialBasis", () => {
8
- it("toBasisConfig", () => {
9
- // eslint-disable-next-line new-cap
10
- const basisConfig2 = CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
11
- {
12
- element: "Si",
13
- coordinate: [0, 0, 0],
14
- },
15
- {
16
- element: "Li",
17
- coordinate: [0.3, 0.3, 0.3],
18
- },
19
- {
20
- element: "Fe",
21
- coordinate: [0.5, 0.5, 0.5],
22
- },
23
- ]);
24
- const [basis1, basis2] = [
25
- new Basis(FeLiSiBasis),
26
- Basis.fromElementsAndCoordinates(basisConfig2),
27
- ];
28
-
29
- expect(basis1.isEqualTo(basis2)).to.equal(true);
30
- });
31
-
32
- it("Regular XYZ", () => {
33
- const xyz = `
34
- Si 0.0 0.0 0.0
35
- O 0.5 0.5 0.5
36
- `;
37
- const basis = new CombinatorialBasis(xyz);
38
- expect(basis.uniqueElements).deep.equal(["O", "Si"]);
39
- const basis1 = Basis.fromElementsAndCoordinates(basis.allBasisConfigs[0]);
40
- const basis2 = new Basis(OSiBasis);
41
- expect(basis1.isEqualTo(basis2)).to.equal(true);
42
- });
43
-
44
- it("Permutation XYZ", () => {
45
- const permutation = `
46
- Si/Ge/As 0.0 0.0 0.0
47
- Si/Ge 0.5 0.5 0.5
48
- `;
49
- const basis = new CombinatorialBasis(permutation);
50
- expect(basis.uniqueElements).deep.equal(["As", "Ge", "Si"]);
51
- const basisList1 = basis.allBasisConfigs.map((c) => Basis.fromElementsAndCoordinates(c));
52
- const basisList2 = [Si2Basis, Ge2Basis, AsGeBasis].map((c) => new Basis(c));
53
-
54
- basisList1.forEach((basis1) => {
55
- const condition = basisList2
56
- .map((basis2) => basis2.isEqualTo(basis1))
57
- .reduce((a, b) => a || b);
58
- expect(condition).to.equal(true);
59
- });
60
- });
61
-
62
- it("Combination XYZ", () => {
63
- const combination = `
64
- Si,Ge,As 0.0 0.0 0.0
65
- Si,Ge 0.5 0.5 0.5
66
- `;
67
- const basis = new CombinatorialBasis(combination);
68
- expect(basis.uniqueElements).deep.equal(["As", "Ge", "Si"]);
69
-
70
- const basisList1 = basis.allBasisConfigs.map((c) => Basis.fromElementsAndCoordinates(c));
71
- expect(basisList1.length).to.equal(6);
72
-
73
- const basisList2 = [
74
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
75
- {
76
- element: "Si",
77
- coordinate: [0, 0, 0],
78
- },
79
- {
80
- element: "Si",
81
- coordinate: [0.5, 0.5, 0.5],
82
- },
83
- ]),
84
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
85
- {
86
- element: "Si",
87
- coordinate: [0, 0, 0],
88
- },
89
- {
90
- element: "Ge",
91
- coordinate: [0.5, 0.5, 0.5],
92
- },
93
- ]),
94
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
95
- {
96
- element: "Ge",
97
- coordinate: [0, 0, 0],
98
- },
99
- {
100
- element: "Si",
101
- coordinate: [0.5, 0.5, 0.5],
102
- },
103
- ]),
104
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
105
- {
106
- element: "Ge",
107
- coordinate: [0, 0, 0],
108
- },
109
- {
110
- element: "Ge",
111
- coordinate: [0.5, 0.5, 0.5],
112
- },
113
- ]),
114
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
115
- {
116
- element: "As",
117
- coordinate: [0, 0, 0],
118
- },
119
- {
120
- element: "Si",
121
- coordinate: [0.5, 0.5, 0.5],
122
- },
123
- ]),
124
- CombinatorialBasis.toBasisConfigForElementsAndCoordinates([
125
- {
126
- element: "As",
127
- coordinate: [0, 0, 0],
128
- },
129
- {
130
- element: "Ge",
131
- coordinate: [0.5, 0.5, 0.5],
132
- },
133
- ]),
134
- ].map((c) => Basis.fromElementsAndCoordinates(c));
135
-
136
- basisList1.forEach((basis1) => {
137
- const condition = basisList2
138
- .map((basis2) => basis2.isEqualTo(basis1))
139
- .reduce((a, b) => a || b);
140
- expect(condition).to.equal(true);
141
- });
142
- });
143
-
144
- it("Mixing combination and permutation should fail", () => {
145
- const mixedInMultipleLines = `
146
- Si/Ge/As 0.0 0.0 0.0\n
147
- Si,Ge 0.5 0.5 0.5
148
- `;
149
- const mixedInOneLine = `
150
- Si/Ge,As 0.0 0.0 0.0
151
- `;
152
- // Wrapping into function as recommended in: http://chaijs.com/api/bdd/
153
- expect(() => new CombinatorialBasis(mixedInMultipleLines)).to.throw();
154
- expect(() => new CombinatorialBasis(mixedInOneLine)).to.throw();
155
- });
156
- });
@@ -1,10 +0,0 @@
1
- /**
2
- * Registers ESSE schemas for made unit tests.
3
- * Kept as CommonJS so mocha `--require` can load it without ESM JSON import issues.
4
- * Library / web-app code must not import `@mat3ra/esse/dist/js/schemas.json` — the host
5
- * (web-app) registers the (possibly extended) schema set once at startup.
6
- */
7
- const JSONSchemasInterface = require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface").default;
8
- const allSchemas = require("@mat3ra/esse/dist/js/schemas.json");
9
-
10
- JSONSchemasInterface.setSchemas(allSchemas);
package/tests/js/setup.ts DELETED
@@ -1,6 +0,0 @@
1
- import chai from "chai";
2
- import chaiAlmost from "chai-almost";
3
-
4
- const TOLERANCE = 1e-3;
5
-
6
- chai.use(chaiAlmost(TOLERANCE));
@@ -1,22 +0,0 @@
1
- import { Utils } from "@mat3ra/utils";
2
-
3
- import { Basis } from "../../../src/js/basis/basis";
4
- import tools from "../../../src/js/tools";
5
- import { H2HFinal, H2HImage, H2HInitial, Si2Basis, Si2BasisRepeated } from "../fixtures";
6
-
7
- const { assertDeepAlmostEqual } = Utils.assertion;
8
-
9
- describe("Tools:Basis", () => {
10
- it("should return a repeated basis", () => {
11
- const basis = new Basis(Si2Basis);
12
- const repeatedBasis = tools.basis.repeat(basis, [2, 1, 1]);
13
- assertDeepAlmostEqual(Si2BasisRepeated, repeatedBasis.toJSON());
14
- });
15
-
16
- it("should return interpolated basises", () => {
17
- const finalBasis = new Basis(H2HFinal.basis);
18
- const initialBasis = new Basis(H2HInitial.basis);
19
- const images = tools.basis.interpolate(initialBasis, finalBasis, 1);
20
- assertDeepAlmostEqual(H2HImage.basis, images[0].toJSON());
21
- });
22
- });