Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add validation methods #7

Merged
merged 15 commits into from
Sep 11, 2024
Merged

Add validation methods #7

merged 15 commits into from
Sep 11, 2024

Conversation

ronaldtse
Copy link
Contributor

Fixes #4

@ronaldtse
Copy link
Contributor Author

Current failures:

Failures:

  1) Modspec::ConformanceClass#validate returns no errors for a valid conformance class
     Failure/Error: expect(errors).to be_empty
       expected `["Conformance test /conf/basic-ypr/position has no corresponding requirement", "Conformance test /conf/basic-ypr/angles has no corresponding requirement"].empty?` to be truthy, got false
     # ./spec/modspec/conformance_class_spec.rb:27:in `block (3 levels) in <top (required)>'

  2) Modspec::ConformanceTest#validate returns no errors for a valid conformance test
     Failure/Error: expect(errors).to be_empty
       expected `["Conformance test /conf/basic-ypr/position has no corresponding requirement"].empty?` to be truthy, got false
     # ./spec/modspec/conformance_test_spec.rb:27:in `block (3 levels) in <top (required)>'

  3) Modspec::Suite.from_yaml_files combines all YAML files in spec/fixtures and validates the combined suite
     Failure/Error: expect(errors).to be_empty
       expected `["Cycle detected: /req/global/target-independence -> /req/global/target-independence", "Cycle detecte.../req/time/duration", "Requirement /req/stream/element has an invalid dependency: /req/time/instant"].empty?` to be truthy, got false
     # ./spec/modspec/suite_spec.rb:67:in `block (3 levels) in <top (required)>'

Finished in 0.03458 seconds (files took 0.1282 seconds to load)
68 examples, 3 failures

Failed examples:

rspec ./spec/modspec/conformance_class_spec.rb:25 # Modspec::ConformanceClass#validate returns no errors for a valid conformance class
rspec ./spec/modspec/conformance_test_spec.rb:25 # Modspec::ConformanceTest#validate returns no errors for a valid conformance test
rspec ./spec/modspec/suite_spec.rb:47 # Modspec::Suite.from_yaml_files combines all YAML files in spec/fixtures and validates the combined suite

These are bugs to be fixed, since there are not meant to be errors.

@ronaldtse
Copy link
Contributor Author

Remaining failing spec:

  1) Modspec::Suite.from_yaml_files combines all YAML files in spec/fixtures and validates the combined suite
     Failure/Error: expect(errors).not_to include(a_string_matching(/Requirement .* has an invalid dependency/))
     
       expected ["Requirement /req/advanced/valid-time has an invalid dependency: /req/time/instant", "Requirement /r.../req/time/duration", "Requirement /req/stream/element has an invalid dependency: /req/time/instant"] not to include (a string matching /Requirement .* has an invalid dependency/)
       Diff:
       @@ -1,7 +1,13 @@
       -[(a string matching /Requirement .* has an invalid dependency/)]
       +["Requirement /req/advanced/valid-time has an invalid dependency: /req/time/instant",
       + "Requirement /req/advanced/frame-spec has an invalid dependency: /req/frame-spec",
       + "Requirement /req/chain/valid-time has an invalid dependency: /req/time/instant",
       + "Requirement /req/graph/valid-time has an invalid dependency: /req/time/instant",
       + "Requirement /req/series-irregular/inner-frame-and-time has an invalid dependency: /req/time/instant",
       + "Requirement /req/series-regular/duration has an invalid dependency: /req/time/duration",
       + "Requirement /req/stream/element has an invalid dependency: /req/time/instant"]
       
     # ./spec/modspec/suite_spec.rb:103:in `block (3 levels) in <top (required)>'

Finished in 0.06774 seconds (files took 0.17196 seconds to load)
71 examples, 1 failure

Failed examples:

rspec ./spec/modspec/suite_spec.rb:80 # Modspec::Suite.from_yaml_files combines all YAML files in spec/fixtures and validates the combined suite

I'm not sure why it's failing... the identifiers seem correct...

@ronaldtse
Copy link
Contributor Author

@hasaniskandar Thanks for handling this.

@hasaniskandar
Copy link
Contributor

@hasaniskandar Thanks for handling this.

My pleasure, sir.
The issue has been fixed in #8. Please let me know if you have any feedback or questions.

@opoudjis
Copy link

@ronaldtse Tests pass; pushed update to lutaml-model gemspec to include bigdecimal, which is breaking Ruby 3.4.

Merge and release?

@ronaldtse
Copy link
Contributor Author

We are now using lutaml-model 0.3.10 which provides a validation stack that collects all validation errors.

@ronaldtse
Copy link
Contributor Author

Merging. Thank you @hasaniskandar !

@ronaldtse ronaldtse merged commit b5c7396 into main Sep 11, 2024
13 of 14 checks passed
@ronaldtse ronaldtse deleted the rt-add-validation branch September 11, 2024 00:20
@ronaldtse
Copy link
Contributor Author

@opoudjis this is now released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Provide "validate" method
3 participants