Le champ num prof fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité VACATAIRE pour renforcer l'identifiant.
+
Le champ date contrat fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité CONTRAT.
+
Le champ salaire horaire contrat était déjà un simple attribut de l'entité CONTRAT.
+
+
+
+
+ PROFESSEUR (
+ num prof,
+ nom prof,
+ prénom prof,
+ téléphone prof
+ )
+
+
Le champ num prof constitue la clé primaire de la table. C'était déjà un identifiant de l'entité PROFESSEUR.
+
Les champs nom prof, prénom prof et téléphone prof étaient déjà de simples attributs de l'entité PROFESSEUR.
Le champ num prof constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère PROFESSEUR.
+
Le champ statut vacataire était déjà un simple attribut de l'entité VACATAIRE.
+
+
+
+
+
+
+
diff --git a/test/zoo/inheritance_weak/mld/strong_child_0_mld.mcd b/test/zoo/inheritance_weak/mld/strong_child_0_mld.mcd
new file mode 100644
index 0000000..ce43dd8
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_0_mld.mcd
@@ -0,0 +1,16 @@
+%%mocodo
+:::
+VACATAIRE: #num prof > PROFESSEUR > num prof, statut vacataire
+:::
+
+
+:
+CONTRAT: #num prof > VACATAIRE > num prof, _date contrat, salaire horaire contrat
+:::
+SALARIÉ: #num prof > PROFESSEUR > num prof, date embauche salarié, échelon salarié, salaire salarié
+:
+
+
+:::
+PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof
+:::
diff --git a/test/zoo/inheritance_weak/mld/strong_child_0_mld.md b/test/zoo/inheritance_weak/mld/strong_child_0_mld.md
new file mode 100644
index 0000000..471e7d4
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_0_mld.md
@@ -0,0 +1,16 @@
+- **CONTRAT** (_#num prof_, date contrat, salaire horaire contrat)
+ - Le champ _num prof_ fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité _VACATAIRE_ pour renforcer l'identifiant.
+ - Le champ _date contrat_ fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité _CONTRAT_.
+ - Le champ _salaire horaire contrat_ était déjà un simple attribut de l'entité _CONTRAT_.
+
+- **PROFESSEUR** (num prof, nom prof, prénom prof, téléphone prof)
+ - Le champ _num prof_ constitue la clé primaire de la table. C'était déjà un identifiant de l'entité _PROFESSEUR_.
+ - Les champs _nom prof_, _prénom prof_ et _téléphone prof_ étaient déjà de simples attributs de l'entité _PROFESSEUR_.
+
+- **SALARIÉ** (_#num prof_, date embauche salarié, échelon salarié, salaire salarié)
+ - Le champ _num prof_ constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère _PROFESSEUR_.
+ - Les champs _date embauche salarié_, _échelon salarié_ et _salaire salarié_ étaient déjà de simples attributs de l'entité _SALARIÉ_.
+
+- **VACATAIRE** (_#num prof_, statut vacataire)
+ - Le champ _num prof_ constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère _PROFESSEUR_.
+ - Le champ _statut vacataire_ était déjà un simple attribut de l'entité _VACATAIRE_.
diff --git a/test/zoo/inheritance_weak/mld/strong_child_0_mld.svg b/test/zoo/inheritance_weak/mld/strong_child_0_mld.svg
new file mode 100644
index 0000000..2ac05e3
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_0_mld.svg
@@ -0,0 +1,81 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/mld/strong_child_0_mld.tex b/test/zoo/inheritance_weak/mld/strong_child_0_mld.tex
new file mode 100644
index 0000000..e3d7f77
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_0_mld.tex
@@ -0,0 +1,46 @@
+\documentclass[a4paper]{article}
+\usepackage[normalem]{ulem}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\frenchsetup{StandardLayout=true}
+
+\newcommand{\relat}[1]{\textsc{#1}}
+\newcommand{\attr}[1]{#1}
+\newcommand{\prim}[1]{\uline{#1}}
+\newcommand{\foreign}[1]{\#\textsl{#1}}
+
+\title{Conversion en relationnel\\du MCD \emph{inheritance\_weak}}
+\author{\emph{Généré par Mocodo}}
+
+\begin{document}
+\maketitle
+
+\begin{itemize}
+ \item \relat{CONTRAT} (\foreign{\prim{num prof}}, \prim{date contrat}, \attr{salaire horaire contrat})
+ \begin{itemize}
+ \item Le champ \emph{num prof} fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité \emph{VACATAIRE} pour renforcer l'identifiant.
+ \item Le champ \emph{date contrat} fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité \emph{CONTRAT}.
+ \item Le champ \emph{salaire horaire contrat} était déjà un simple attribut de l'entité \emph{CONTRAT}.
+ \end{itemize}
+
+ \item \relat{PROFESSEUR} (\prim{num prof}, \attr{nom prof}, \attr{prénom prof}, \attr{téléphone prof})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. C'était déjà un identifiant de l'entité \emph{PROFESSEUR}.
+ \item Les champs \emph{nom prof}, \emph{prénom prof} et \emph{téléphone prof} étaient déjà de simples attributs de l'entité \emph{PROFESSEUR}.
+ \end{itemize}
+
+ \item \relat{SALARIÉ} (\foreign{\prim{num prof}}, \attr{date embauche salarié}, \attr{échelon salarié}, \attr{salaire salarié})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère \emph{PROFESSEUR}.
+ \item Les champs \emph{date embauche salarié}, \emph{échelon salarié} et \emph{salaire salarié} étaient déjà de simples attributs de l'entité \emph{SALARIÉ}.
+ \end{itemize}
+
+ \item \relat{VACATAIRE} (\foreign{\prim{num prof}}, \attr{statut vacataire})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère \emph{PROFESSEUR}.
+ \item Le champ \emph{statut vacataire} était déjà un simple attribut de l'entité \emph{VACATAIRE}.
+ \end{itemize}
+
+\end{itemize}
+
+\end{document}
diff --git a/test/zoo/inheritance_weak/mld/strong_child_0_mld.txt b/test/zoo/inheritance_weak/mld/strong_child_0_mld.txt
new file mode 100644
index 0000000..6f63705
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_0_mld.txt
@@ -0,0 +1,16 @@
+- CONTRAT (_#num prof_, _date contrat_, salaire horaire contrat)
+ - Le champ « num prof » fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité « VACATAIRE » pour renforcer l'identifiant.
+ - Le champ « date contrat » fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité « CONTRAT ».
+ - Le champ « salaire horaire contrat » était déjà un simple attribut de l'entité « CONTRAT ».
+
+- PROFESSEUR (_num prof_, nom prof, prénom prof, téléphone prof)
+ - Le champ « num prof » constitue la clé primaire de la table. C'était déjà un identifiant de l'entité « PROFESSEUR ».
+ - Les champs « nom prof », « prénom prof » et « téléphone prof » étaient déjà de simples attributs de l'entité « PROFESSEUR ».
+
+- SALARIÉ (_#num prof_, date embauche salarié, échelon salarié, salaire salarié)
+ - Le champ « num prof » constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère « PROFESSEUR ».
+ - Les champs « date embauche salarié », « échelon salarié » et « salaire salarié » étaient déjà de simples attributs de l'entité « SALARIÉ ».
+
+- VACATAIRE (_#num prof_, statut vacataire)
+ - Le champ « num prof » constitue la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité-mère « PROFESSEUR ».
+ - Le champ « statut vacataire » était déjà un simple attribut de l'entité « VACATAIRE ».
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_debug.tsv b/test/zoo/inheritance_weak/mld/strong_child_1_debug.tsv
new file mode 100644
index 0000000..5511db4
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_debug.tsv
@@ -0,0 +1,12 @@
+this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note
+CONTRAT num prof ! strengthening_primary_foreign_key True VACATAIRE PROFESSEUR DF
+CONTRAT date contrat ! primary_key True
+CONTRAT salaire horaire contrat normal_attribute False
+PROFESSEUR num prof ! primary_key True
+PROFESSEUR nom prof normal_attribute False
+PROFESSEUR prénom prof normal_attribute False
+PROFESSEUR téléphone prof normal_attribute False
+PROFESSEUR statut vacataire ? deleted_child_attribute False VACATAIRE XT
+PROFESSEUR date embauche salarié ? deleted_child_attribute False SALARIÉ XT
+PROFESSEUR échelon salarié ? deleted_child_attribute False SALARIÉ XT
+PROFESSEUR salaire salarié ? deleted_child_attribute False SALARIÉ XT
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.gv b/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.gv
new file mode 100644
index 0000000..a9384c6
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.gv
@@ -0,0 +1,4 @@
+digraph {
+ node [shape=box]
+ "PROFESSEUR" -> "CONTRAT"
+}
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.svg b/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.svg
new file mode 100644
index 0000000..e7bdf63
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_dependencies.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.html b/test/zoo/inheritance_weak/mld/strong_child_1_mld.html
new file mode 100644
index 0000000..06682b2
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
Le champ num prof fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité PROFESSEUR pour renforcer l'identifiant.
+
Le champ date contrat fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité CONTRAT.
+
Le champ salaire horaire contrat était déjà un simple attribut de l'entité CONTRAT.
Le champ num prof constitue la clé primaire de la table. C'était déjà un identifiant de l'entité PROFESSEUR.
+
Les champs nom prof, prénom prof et téléphone prof étaient déjà de simples attributs de l'entité PROFESSEUR.
+
Le champ à saisie facultative statut vacataire a migré à partir de l'entité-fille VACATAIRE (supprimée).
+
Le champ à saisie facultative date embauche salarié a migré à partir de l'entité-fille SALARIÉ (supprimée).
+
Le champ à saisie facultative échelon salarié a migré à partir de l'entité-fille SALARIÉ (supprimée).
+
Le champ à saisie facultative salaire salarié a migré à partir de l'entité-fille SALARIÉ (supprimée).
+
+
+
+
+
+
+
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.mcd b/test/zoo/inheritance_weak/mld/strong_child_1_mld.mcd
new file mode 100644
index 0000000..f73b91d
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.mcd
@@ -0,0 +1,8 @@
+:
+CONTRAT: #num prof > PROFESSEUR > num prof, _date contrat, salaire horaire contrat
+:::
+
+
+:::
+PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof, statut vacataire, date embauche salarié, échelon salarié, salaire salarié
+:
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.md b/test/zoo/inheritance_weak/mld/strong_child_1_mld.md
new file mode 100644
index 0000000..02be592
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.md
@@ -0,0 +1,12 @@
+- **CONTRAT** (_#num prof_, date contrat, salaire horaire contrat)
+ - Le champ _num prof_ fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité _PROFESSEUR_ pour renforcer l'identifiant.
+ - Le champ _date contrat_ fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité _CONTRAT_.
+ - Le champ _salaire horaire contrat_ était déjà un simple attribut de l'entité _CONTRAT_.
+
+- **PROFESSEUR** (num prof, nom prof, prénom prof, téléphone prof, statut vacataire?, date embauche salarié?, échelon salarié?, salaire salarié?)
+ - Le champ _num prof_ constitue la clé primaire de la table. C'était déjà un identifiant de l'entité _PROFESSEUR_.
+ - Les champs _nom prof_, _prénom prof_ et _téléphone prof_ étaient déjà de simples attributs de l'entité _PROFESSEUR_.
+ - Le champ à saisie facultative _statut vacataire_ a migré à partir de l'entité-fille _VACATAIRE_ (supprimée).
+ - Le champ à saisie facultative _date embauche salarié_ a migré à partir de l'entité-fille _SALARIÉ_ (supprimée).
+ - Le champ à saisie facultative _échelon salarié_ a migré à partir de l'entité-fille _SALARIÉ_ (supprimée).
+ - Le champ à saisie facultative _salaire salarié_ a migré à partir de l'entité-fille _SALARIÉ_ (supprimée).
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.svg b/test/zoo/inheritance_weak/mld/strong_child_1_mld.svg
new file mode 100644
index 0000000..ded00aa
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.svg
@@ -0,0 +1,45 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.tex b/test/zoo/inheritance_weak/mld/strong_child_1_mld.tex
new file mode 100644
index 0000000..5d88412
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.tex
@@ -0,0 +1,38 @@
+\documentclass[a4paper]{article}
+\usepackage[normalem]{ulem}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\frenchsetup{StandardLayout=true}
+
+\newcommand{\relat}[1]{\textsc{#1}}
+\newcommand{\attr}[1]{#1}
+\newcommand{\prim}[1]{\uline{#1}}
+\newcommand{\foreign}[1]{\#\textsl{#1}}
+
+\title{Conversion en relationnel\\du MCD \emph{inheritance\_weak}}
+\author{\emph{Généré par Mocodo}}
+
+\begin{document}
+\maketitle
+
+\begin{itemize}
+ \item \relat{CONTRAT} (\foreign{\prim{num prof}}, \prim{date contrat}, \attr{salaire horaire contrat})
+ \begin{itemize}
+ \item Le champ \emph{num prof} fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité \emph{PROFESSEUR} pour renforcer l'identifiant.
+ \item Le champ \emph{date contrat} fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité \emph{CONTRAT}.
+ \item Le champ \emph{salaire horaire contrat} était déjà un simple attribut de l'entité \emph{CONTRAT}.
+ \end{itemize}
+
+ \item \relat{PROFESSEUR} (\prim{num prof}, \attr{nom prof}, \attr{prénom prof}, \attr{téléphone prof}, \attr{statut vacataire?}, \attr{date embauche salarié?}, \attr{échelon salarié?}, \attr{salaire salarié?})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. C'était déjà un identifiant de l'entité \emph{PROFESSEUR}.
+ \item Les champs \emph{nom prof}, \emph{prénom prof} et \emph{téléphone prof} étaient déjà de simples attributs de l'entité \emph{PROFESSEUR}.
+ \item Le champ à saisie facultative \emph{statut vacataire} a migré à partir de l'entité-fille \emph{VACATAIRE} (supprimée).
+ \item Le champ à saisie facultative \emph{date embauche salarié} a migré à partir de l'entité-fille \emph{SALARIÉ} (supprimée).
+ \item Le champ à saisie facultative \emph{échelon salarié} a migré à partir de l'entité-fille \emph{SALARIÉ} (supprimée).
+ \item Le champ à saisie facultative \emph{salaire salarié} a migré à partir de l'entité-fille \emph{SALARIÉ} (supprimée).
+ \end{itemize}
+
+\end{itemize}
+
+\end{document}
diff --git a/test/zoo/inheritance_weak/mld/strong_child_1_mld.txt b/test/zoo/inheritance_weak/mld/strong_child_1_mld.txt
new file mode 100644
index 0000000..ddded48
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_1_mld.txt
@@ -0,0 +1,12 @@
+- CONTRAT (_#num prof_, _date contrat_, salaire horaire contrat)
+ - Le champ « num prof » fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité « PROFESSEUR » pour renforcer l'identifiant.
+ - Le champ « date contrat » fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité « CONTRAT ».
+ - Le champ « salaire horaire contrat » était déjà un simple attribut de l'entité « CONTRAT ».
+
+- PROFESSEUR (_num prof_, nom prof, prénom prof, téléphone prof, statut vacataire?, date embauche salarié?, échelon salarié?, salaire salarié?)
+ - Le champ « num prof » constitue la clé primaire de la table. C'était déjà un identifiant de l'entité « PROFESSEUR ».
+ - Les champs « nom prof », « prénom prof » et « téléphone prof » étaient déjà de simples attributs de l'entité « PROFESSEUR ».
+ - Le champ à saisie facultative « statut vacataire » a migré à partir de l'entité-fille « VACATAIRE » (supprimée).
+ - Le champ à saisie facultative « date embauche salarié » a migré à partir de l'entité-fille « SALARIÉ » (supprimée).
+ - Le champ à saisie facultative « échelon salarié » a migré à partir de l'entité-fille « SALARIÉ » (supprimée).
+ - Le champ à saisie facultative « salaire salarié » a migré à partir de l'entité-fille « SALARIÉ » (supprimée).
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_debug.tsv b/test/zoo/inheritance_weak/mld/strong_child_2_debug.tsv
new file mode 100644
index 0000000..7c4a1a7
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_debug.tsv
@@ -0,0 +1,16 @@
+this relation name attribute optionality unicities nature is primary adjacent source outer source association name datatype leg note
+CONTRAT num prof ! strengthening_primary_foreign_key True VACATAIRE VACATAIRE DF
+CONTRAT date contrat ! primary_key True
+CONTRAT salaire horaire contrat normal_attribute False
+SALARIÉ num prof ! deleted_parent_primary_key True PROFESSEUR PROFESSEUR XT
+SALARIÉ nom prof deleted_parent_attribute False PROFESSEUR XT
+SALARIÉ prénom prof deleted_parent_attribute False PROFESSEUR XT
+SALARIÉ téléphone prof deleted_parent_attribute False PROFESSEUR XT
+SALARIÉ date embauche salarié normal_attribute False
+SALARIÉ échelon salarié normal_attribute False
+SALARIÉ salaire salarié normal_attribute False
+VACATAIRE num prof ! deleted_parent_primary_key True PROFESSEUR PROFESSEUR XT
+VACATAIRE nom prof deleted_parent_attribute False PROFESSEUR XT
+VACATAIRE prénom prof deleted_parent_attribute False PROFESSEUR XT
+VACATAIRE téléphone prof deleted_parent_attribute False PROFESSEUR XT
+VACATAIRE statut vacataire normal_attribute False
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.gv b/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.gv
new file mode 100644
index 0000000..ea92ec3
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.gv
@@ -0,0 +1,4 @@
+digraph {
+ node [shape=box]
+ "VACATAIRE" -> "CONTRAT"
+}
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.svg b/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.svg
new file mode 100644
index 0000000..612dd4f
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_dependencies.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.html b/test/zoo/inheritance_weak/mld/strong_child_2_mld.html
new file mode 100644
index 0000000..4919cf8
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
Le champ num prof fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité VACATAIRE pour renforcer l'identifiant.
+
Le champ date contrat fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité CONTRAT.
+
Le champ salaire horaire contrat était déjà un simple attribut de l'entité CONTRAT.
+
+
+
+
+ SALARIÉ (
+ num prof,
+ nom prof,
+ prénom prof,
+ téléphone prof,
+ date embauche salarié,
+ échelon salarié,
+ salaire salarié
+ )
+
+
Le champ num prof constitue la clé primaire de la table. Il était clé primaire de l'entité-mère PROFESSEUR (supprimée).
+
Le champ nom prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Le champ prénom prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Le champ téléphone prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Les champs date embauche salarié, échelon salarié et salaire salarié étaient déjà de simples attributs de l'entité SALARIÉ.
Le champ num prof constitue la clé primaire de la table. Il était clé primaire de l'entité-mère PROFESSEUR (supprimée).
+
Le champ nom prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Le champ prénom prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Le champ téléphone prof est un simple attribut. Il était simple attribut de l'entité-mère PROFESSEUR (supprimée).
+
Le champ statut vacataire était déjà un simple attribut de l'entité VACATAIRE.
+
+
+
+
+
+
+
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.mcd b/test/zoo/inheritance_weak/mld/strong_child_2_mld.mcd
new file mode 100644
index 0000000..8d118bb
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.mcd
@@ -0,0 +1,11 @@
+%%mocodo
+:::
+VACATAIRE: num prof, nom prof, prénom prof, téléphone prof, statut vacataire
+:::
+
+
+:
+CONTRAT: #num prof > VACATAIRE > num prof, _date contrat, salaire horaire contrat
+:::
+SALARIÉ: num prof, nom prof, prénom prof, téléphone prof, date embauche salarié, échelon salarié, salaire salarié
+:
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.md b/test/zoo/inheritance_weak/mld/strong_child_2_mld.md
new file mode 100644
index 0000000..d652f60
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.md
@@ -0,0 +1,18 @@
+- **CONTRAT** (_#num prof_, date contrat, salaire horaire contrat)
+ - Le champ _num prof_ fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité _VACATAIRE_ pour renforcer l'identifiant.
+ - Le champ _date contrat_ fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité _CONTRAT_.
+ - Le champ _salaire horaire contrat_ était déjà un simple attribut de l'entité _CONTRAT_.
+
+- **SALARIÉ** (num prof, nom prof, prénom prof, téléphone prof, date embauche salarié, échelon salarié, salaire salarié)
+ - Le champ _num prof_ constitue la clé primaire de la table. Il était clé primaire de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _nom prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _prénom prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _téléphone prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Les champs _date embauche salarié_, _échelon salarié_ et _salaire salarié_ étaient déjà de simples attributs de l'entité _SALARIÉ_.
+
+- **VACATAIRE** (num prof, nom prof, prénom prof, téléphone prof, statut vacataire)
+ - Le champ _num prof_ constitue la clé primaire de la table. Il était clé primaire de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _nom prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _prénom prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _téléphone prof_ est un simple attribut. Il était simple attribut de l'entité-mère _PROFESSEUR_ (supprimée).
+ - Le champ _statut vacataire_ était déjà un simple attribut de l'entité _VACATAIRE_.
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.svg b/test/zoo/inheritance_weak/mld/strong_child_2_mld.svg
new file mode 100644
index 0000000..65d37df
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.svg
@@ -0,0 +1,61 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.tex b/test/zoo/inheritance_weak/mld/strong_child_2_mld.tex
new file mode 100644
index 0000000..9038a20
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.tex
@@ -0,0 +1,46 @@
+\documentclass[a4paper]{article}
+\usepackage[normalem]{ulem}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\frenchsetup{StandardLayout=true}
+
+\newcommand{\relat}[1]{\textsc{#1}}
+\newcommand{\attr}[1]{#1}
+\newcommand{\prim}[1]{\uline{#1}}
+\newcommand{\foreign}[1]{\#\textsl{#1}}
+
+\title{Conversion en relationnel\\du MCD \emph{inheritance\_weak}}
+\author{\emph{Généré par Mocodo}}
+
+\begin{document}
+\maketitle
+
+\begin{itemize}
+ \item \relat{CONTRAT} (\foreign{\prim{num prof}}, \prim{date contrat}, \attr{salaire horaire contrat})
+ \begin{itemize}
+ \item Le champ \emph{num prof} fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité \emph{VACATAIRE} pour renforcer l'identifiant.
+ \item Le champ \emph{date contrat} fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité \emph{CONTRAT}.
+ \item Le champ \emph{salaire horaire contrat} était déjà un simple attribut de l'entité \emph{CONTRAT}.
+ \end{itemize}
+
+ \item \relat{SALARIÉ} (\prim{num prof}, \attr{nom prof}, \attr{prénom prof}, \attr{téléphone prof}, \attr{date embauche salarié}, \attr{échelon salarié}, \attr{salaire salarié})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. Il était clé primaire de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{nom prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{prénom prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{téléphone prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Les champs \emph{date embauche salarié}, \emph{échelon salarié} et \emph{salaire salarié} étaient déjà de simples attributs de l'entité \emph{SALARIÉ}.
+ \end{itemize}
+
+ \item \relat{VACATAIRE} (\prim{num prof}, \attr{nom prof}, \attr{prénom prof}, \attr{téléphone prof}, \attr{statut vacataire})
+ \begin{itemize}
+ \item Le champ \emph{num prof} constitue la clé primaire de la table. Il était clé primaire de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{nom prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{prénom prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{téléphone prof} est un simple attribut. Il était simple attribut de l'entité-mère \emph{PROFESSEUR} (supprimée).
+ \item Le champ \emph{statut vacataire} était déjà un simple attribut de l'entité \emph{VACATAIRE}.
+ \end{itemize}
+
+\end{itemize}
+
+\end{document}
diff --git a/test/zoo/inheritance_weak/mld/strong_child_2_mld.txt b/test/zoo/inheritance_weak/mld/strong_child_2_mld.txt
new file mode 100644
index 0000000..bdf98af
--- /dev/null
+++ b/test/zoo/inheritance_weak/mld/strong_child_2_mld.txt
@@ -0,0 +1,18 @@
+- CONTRAT (_#num prof_, _date contrat_, salaire horaire contrat)
+ - Le champ « num prof » fait partie de la clé primaire de la table. C'est une clé étrangère qui a migré à partir de l'entité « VACATAIRE » pour renforcer l'identifiant.
+ - Le champ « date contrat » fait partie de la clé primaire de la table. C'était déjà un identifiant de l'entité « CONTRAT ».
+ - Le champ « salaire horaire contrat » était déjà un simple attribut de l'entité « CONTRAT ».
+
+- SALARIÉ (_num prof_, nom prof, prénom prof, téléphone prof, date embauche salarié, échelon salarié, salaire salarié)
+ - Le champ « num prof » constitue la clé primaire de la table. Il était clé primaire de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « nom prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « prénom prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « téléphone prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Les champs « date embauche salarié », « échelon salarié » et « salaire salarié » étaient déjà de simples attributs de l'entité « SALARIÉ ».
+
+- VACATAIRE (_num prof_, nom prof, prénom prof, téléphone prof, statut vacataire)
+ - Le champ « num prof » constitue la clé primaire de la table. Il était clé primaire de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « nom prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « prénom prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « téléphone prof » est un simple attribut. Il était simple attribut de l'entité-mère « PROFESSEUR » (supprimée).
+ - Le champ « statut vacataire » était déjà un simple attribut de l'entité « VACATAIRE ».
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.mcd
new file mode 100644
index 0000000..e5f32a3
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Class table inheritance: all entities are preserved
+
+DF, _11 CONTRAT, 1N> VACATAIRE
+VACATAIRE: statut vacataire
+
+CONTRAT: date contrat, salaire horaire contrat
+/XT\ PROFESSEUR -> VACATAIRE, SALARIÉ
+SALARIÉ: date embauche salarié, échelon salarié, salaire salarié
+
+PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.svg b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.svg
new file mode 100644
index 0000000..cd0a258
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_create_df_arrows=across.svg
@@ -0,0 +1,87 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drain.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drain.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drain.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.mcd
new file mode 100644
index 0000000..123c7a3
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Class table inheritance: all entities are preserved
+
+DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_
+ENTITÉ 1_: at 1 1
+
+ENTITÉ 2_: at 2 1, at 2 2
+/XT\ ENTITÉ 4_ -> ENTITÉ 1_, ENTITÉ 3_
+ENTITÉ 3_: at 3 1, at 3 2, at 3 3
+
+ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.svg b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.svg
new file mode 100644
index 0000000..7b848a0
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_drown.svg
@@ -0,0 +1,86 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.5.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=2.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_explode_arity=3.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_split.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_split.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_0_rw_split.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.mcd
new file mode 100644
index 0000000..210e8ad
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Single table inheritance: children are merged into the parent table
+
+DF, _11 CONTRAT, 1N> VACATAIRE
+VACATAIRE: statut vacataire
+
+CONTRAT: date contrat, salaire horaire contrat
+/XT\ PROFESSEUR <- VACATAIRE, SALARIÉ
+SALARIÉ: date embauche salarié, échelon salarié, salaire salarié
+
+PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.svg b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.svg
new file mode 100644
index 0000000..c52c66d
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_create_df_arrows=across.svg
@@ -0,0 +1,86 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drain.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drain.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drain.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.mcd
new file mode 100644
index 0000000..0624f24
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Single table inheritance: children are merged into the parent table
+
+DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_
+ENTITÉ 1_: at 1 1
+
+ENTITÉ 2_: at 2 1, at 2 2
+/XT\ ENTITÉ 4_ <- ENTITÉ 1_, ENTITÉ 3_
+ENTITÉ 3_: at 3 1, at 3 2, at 3 3
+
+ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.svg b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.svg
new file mode 100644
index 0000000..e28fc06
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_drown.svg
@@ -0,0 +1,85 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.5.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=2.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_explode_arity=3.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_split.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_split.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_1_rw_split.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.mcd
new file mode 100644
index 0000000..10b9f11
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Concrete table inheritance: parent disappears
+
+DF, _11 CONTRAT, 1N> VACATAIRE
+VACATAIRE: statut vacataire
+
+CONTRAT: date contrat, salaire horaire contrat
+/XT\ PROFESSEUR => VACATAIRE, SALARIÉ
+SALARIÉ: date embauche salarié, échelon salarié, salaire salarié
+
+PROFESSEUR: num prof, nom prof, prénom prof, téléphone prof
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.svg b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.svg
new file mode 100644
index 0000000..4e03309
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_create_df_arrows=across.svg
@@ -0,0 +1,88 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drain.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drain.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drain.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.mcd
new file mode 100644
index 0000000..022658f
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.mcd
@@ -0,0 +1,11 @@
+% https://github.com/laowantong/mocodo/issues/118
+% Concrete table inheritance: parent disappears
+
+DF, _11 ENTITÉ 2_, 1N ENTITÉ 1_
+ENTITÉ 1_: at 1 1
+
+ENTITÉ 2_: at 2 1, at 2 2
+/XT\ ENTITÉ 4_ => ENTITÉ 1_, ENTITÉ 3_
+ENTITÉ 3_: at 3 1, at 3 2, at 3 3
+
+ENTITÉ 4_: at 4 1, at 4 2, at 4 3, at 4 4
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.svg b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.svg
new file mode 100644
index 0000000..ebc6c43
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_drown.svg
@@ -0,0 +1,87 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.5.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=2.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3,weak.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3,weak.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3,weak.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_explode_arity=3.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_split.mcd b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_split.mcd
new file mode 100644
index 0000000..b5b10f4
--- /dev/null
+++ b/test/zoo/inheritance_weak/rewritten/strong_child_2_rw_split.mcd
@@ -0,0 +1 @@
+% same as the source file
diff --git a/test/zoo/inheritance_weak/strong_child_0.svg b/test/zoo/inheritance_weak/strong_child_0.svg
new file mode 100644
index 0000000..5ca271b
--- /dev/null
+++ b/test/zoo/inheritance_weak/strong_child_0.svg
@@ -0,0 +1,86 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/strong_child_1.svg b/test/zoo/inheritance_weak/strong_child_1.svg
new file mode 100644
index 0000000..d6bed43
--- /dev/null
+++ b/test/zoo/inheritance_weak/strong_child_1.svg
@@ -0,0 +1,85 @@
+
+
\ No newline at end of file
diff --git a/test/zoo/inheritance_weak/strong_child_2.svg b/test/zoo/inheritance_weak/strong_child_2.svg
new file mode 100644
index 0000000..a8b6d32
--- /dev/null
+++ b/test/zoo/inheritance_weak/strong_child_2.svg
@@ -0,0 +1,87 @@
+
+
\ No newline at end of file