"""
Hoque and Tatsuoka (1998)
=========================

Anisotropic elasticity of Toyoura sand, Hostun sand, Ticino sand, and Hime gravel [^1].

[^1]: Hoque, E., & Tatsuoka, F. (1998). Anisotropy in Elastic Deformation of Granular Materials. Soils and Foundations,
      38(1), 163–179. https://doi.org/10.3208/sandf.38.163
"""

import pandas as pd

from micromechanical.cli.plot import PlotCLI, PlotConfig

config: PlotConfig = PlotCLI.loadConfig("../../calibrations/micromechanical-plots.yaml")

# %%
# Kinematic Hypothesis
# --------------------
# Parameters

parameters = {}
for plot_name, plot_config in config.plots.items():
    if not plot_name.startswith("Hoque1998") or not plot_name.endswith("Kinematic"):
        continue

    parameters["-".join(plot_name.split("-")[1:3])] = {
        key: value
        for key, value in plot_config.calibration.read(config.root).parameters.items()
        if key not in ["F12", "F13", "F23" "sigc", "sig1", "sig2", "sig3", "force_numerical",
                       "force_dependent_stiffness", "major_axes"]
    }  # fmt: skip

pd.DataFrame(parameters).T

# %%
# Figures

for plot_name, plot_config in config.plots.items():
    if not plot_name.startswith("Hoque1998") or not plot_name.endswith("Kinematic"):
        continue

    plot_config.plot(plot_name, grids=config.grids, save=False, overwrite=False)

# %%
# Static Hypothesis
# -----------------
# Parameters

parameters = {}
for plot_name, plot_config in config.plots.items():
    if not plot_name.startswith("Hoque1998") or not plot_name.endswith("Static"):
        continue

    parameters["-".join(plot_name.split("-")[1:3])] = {
        key: value
        for key, value in plot_config.calibration.read(config.root).parameters.items()
        if key not in ["F12", "F13", "F23" "sigc", "sig1", "sig2", "sig3", "force_numerical",
                       "force_dependent_stiffness", "major_axes"]
    }  # fmt: skip

pd.DataFrame(parameters).T

# %%
# Figures

for plot_name, plot_config in config.plots.items():
    if not plot_name.startswith("Hoque1998") or not plot_name.endswith("Static"):
        continue

    plot_config.plot(plot_name, grids=config.grids, save=False, overwrite=False)
