@@ -27,17 +27,17 @@ int test_parser(const std::string &base_path, const std::string &filename) {
2727
2828 std::shared_ptr<View> root = db->new_view ();
2929
30+ Object test = root->get_object (" test.Test" );
3031 Object second = root->get_object (" test.Second" );
3132 Object first = root->get_object (" test.First" );
3233
3334 std::cout << " before change: First.member == "
3435 << *root->get_object (" test.First" ).get <Int>(" member" )
3536 << std::endl;
3637
37- std::optional<std::shared_ptr<Object>> optional_wat3 = first.get_optional <Object>(" wat3" , 0 );
38-
39- if (optional_wat3.has_value ()) {
40- if ((*optional_wat3)->get_name () != " test.Second" ) {
38+ std::optional<std::shared_ptr<Object>> wat3_first = first.get_optional <Object>(" wat3" , 0 );
39+ if (wat3_first.has_value ()) {
40+ if ((*wat3_first)->get_name () != " test.Second" ) {
4141 std::cout << " First.wat3 has wrong value at t=0" << std::endl;
4242 return 1 ;
4343 }
@@ -47,6 +47,19 @@ int test_parser(const std::string &base_path, const std::string &filename) {
4747 return 1 ;
4848 }
4949
50+ std::optional<std::shared_ptr<Object>> wat3_second = second.get_optional <Object, true >(" wat3" , 0 );
51+ if (wat3_second.has_value ()) {
52+ std::cout << " Second.wat3 should be None" << std::endl;
53+ return 1 ;
54+ }
55+
56+ std::optional<std::shared_ptr<Object>> wat3_test = test.get_optional <Object, true >(" wat3" , 0 );
57+ if (wat3_test.has_value ()) {
58+ std::cout << " Test.wat3 should be None" << std::endl;
59+ return 1 ;
60+ }
61+
62+
5063 Object patch = root->get_object (" test.FirstPatch" );
5164 for (int i = 0 ; i < 3 ; i++) {
5265 Transaction tx = root->new_transaction ();
@@ -56,8 +69,8 @@ int test_parser(const std::string &base_path, const std::string &filename) {
5669 }
5770 }
5871
59- optional_wat3 = first.get_optional <Object>(" wat3" );
60- if (optional_wat3 .has_value ()) {
72+ wat3_first = first.get_optional <Object>(" wat3" );
73+ if (wat3_first .has_value ()) {
6174 std::cout << " First.wat3 should be None by patch" << std::endl;
6275 return 1 ;
6376 }
@@ -250,7 +263,6 @@ std::pair<flags_t, params_t> argparse(int argc, char** argv) {
250263
251264
252265int main (int argc, char **argv) {
253-
254266 auto args = nyan::argparse (argc, argv);
255267 nyan::flags_t flags = args.first ;
256268 nyan::params_t params = args.second ;
0 commit comments