A ${valueObject} can be easily created and checked with an embedded table. There is no problem with creating multiple copies of the same ${valueObject} because of the nature of ''value objects''.

Here's a simple example of using embedded tables for creating and checking ''value objects''.

!**< def
!define table1 (|x|1|
|y|2|
)
!define table2 (|x|0|y|0|
)
!define test (!|fitlibrary.specify.valueObject.ParseMyPoint|

|'''check'''|a point|${table1}|${table1}|

|'''check'''|a point|${table2}|${table2}|

|'''check'''|a point|${table1}|${table2}|
)
**!
|!-fitlibrary.spec.SpecifyFixture-!|
|${test}|!-<table border="1" cellspacing="0">
<tr><td>fitlibrary.specify.valueObject.ParseMyPoint</td>
</tr>
</table>
<br><table border="1" cellspacing="0">
<tr><td><b>check</b></td>
<td>a point</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td>1</td>
</tr>
<tr><td>y</td>
<td>2</td>
</tr>
</table>
</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td class="pass">1</td>
</tr>
<tr><td>y</td>
<td class="pass">2</td>
</tr>
</table>
</td>
</tr>
</table>
<br><table border="1" cellspacing="0">
<tr><td><b>check</b></td>
<td>a point</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td>0</td>
<td>y</td>
<td>0</td>
</tr>
</table>
</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td class="pass">0</td>
<td>y</td>
<td class="pass">0</td>
</tr>
</table>
</td>
</tr>
</table>
<br><table border="1" cellspacing="0">
<tr><td><b>check</b></td>
<td>a point</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td>1</td>
</tr>
<tr><td>y</td>
<td>2</td>
</tr>
</table>
</td>
<td><table border="1" cellspacing="0">
<tr><td>x</td>
<td class="fail">0 <span class="fit_label">expected</span><hr>1 <span class="fit_label">actual</span></td>
<td>y</td>
<td class="fail">0 <span class="fit_label">expected</span><hr>2 <span class="fit_label">actual</span></td>
</tr>
</table>
</td>
</tr>
</table>-!|

You can mix the notations for ''value objects'', using a String in one cell and an embedded table in another