Skip to content

Review market tests documentation #40

Review market tests documentation

Review market tests documentation #40

GitHub Actions / test-result-Petstore failed Sep 3, 2024 in 0s

59 tests run, 49 passed, 0 skipped, 10 failed.

Annotations

Check failure on line 1 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstore0DatagenLive.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstore0DatagenLive.testPlacedPet0OrdersByCategoryAndOrderStatus

Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
 expected:<..." ON Customer0.id = [Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
     LEFT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
     RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
  -...> but was:<..." ON Customer0.id = ["Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
     LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
     RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
  -...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
 expected:<..." ON Customer0.id = [Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
     LEFT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
     RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
  -...> but was:<..." ON Customer0.id = ["Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
     LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
     RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
  -...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus(TestPetstore0DatagenLocal.java:135)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 135 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstore0DatagenLocal.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus

Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
 expected:<..." ON Customer0.id = [Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
     LEFT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
     RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
  -...> but was:<..." ON Customer0.id = ["Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
     LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
     RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
  -...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 7 column 44.
failed rules-placed-pet0-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet0-orders-by-category-order-status.xml.html
 expected:<..." ON Customer0.id = [Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = Order0.customerId
     INNER JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = Order0.customerId
     LEFT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE (Order0.customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = Order0.customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = Order0.customerId
     RIGHT JOIN Pet0 ON Order0.petId = Pet0.id
   WHERE ((Order0.petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON Order0].petId = Pet0.id
  -...> but was:<..." ON Customer0.id = ["Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE Pet0.category::name = 'Dogs' AND "Order0".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet0.category::name = 'Dogs' is TRUE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet0.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT(Pet0.category::name = 'Dogs') AND ("Order0".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet0.category::name = 'Dogs' is FALSE
  --(T) "Order0".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order0".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer0
     INNER JOIN "Order0" ON Customer0.id = "Order0".customerId
     INNER JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE NOT("Order0".status = 'placed') AND (Pet0.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order0".status = 'placed' is FALSE
  --(T) Pet0.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     LEFT JOIN "Order0" ON Customer0.id = "Order0".customerId
     LEFT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE ("Order0".customerId IS NULL) AND (Customer0.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet0.category::name = 'Dogs'] ; ["Order0".status = 'placed'] ; 
  --summary: [Customer0] left [Order0] ON Customer0.id = "Order0".customerId
  --There exist some row in table Customer0
  --which does not join to any table in Order0</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer0
     RIGHT JOIN "Order0" ON Customer0.id = "Order0".customerId
     RIGHT JOIN Pet0 ON "Order0".petId = Pet0.id
   WHERE (("Order0".petId IS NULL) AND (Pet0.id IS NOT NULL))
     AND (Pet0.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order0".status = 'placed'] ; 
  --summary: [Order0] right [Pet0] ON "Order0"].petId = Pet0.id
  -...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstore0DatagenLocal.testPlacedPet0OrdersByCategoryAndOrderStatus(TestPetstore0DatagenLocal.java:135)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 1 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLive.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLive.testPlacedPetOrdersByAddressAndOrderStatus

Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus(TestPetstoreDatagenLocal.java:140)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 1 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLive.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLive.testTotalPetsToDeliverByAddress

Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress(TestPetstoreDatagenLocal.java:190)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 1 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLive.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLive.testPlacedPetOrdersByCategoryAndOrderStatus

Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus(TestPetstoreDatagenLocal.java:125)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 1 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLive.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLive.testTotalOrdersToDeliverByAddress

Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress(TestPetstoreDatagenLocal.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 140 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLocal.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus

Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-address-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-address-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Customer_address_xa.zip = '99999' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Customer_address_xa.zip = '99999' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Customer_address_xa.zip = '99999']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Customer_address_xa.zip = '99999') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Customer_address_xa.zip = '99999' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Customer_address_xa.zip = '99999')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Customer_address_xa.zip = '99999' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; 
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The following condition in the WHERE holds:
  --WHERE "Order".status = 'placed'</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".customerId IS NULL) AND (Customer.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Customer_address_xa.zip = '99999'</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Customer_address_xa.zip = '99999'] ; ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Customer_address_xa.zip = '99999' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByAddressAndOrderStatus(TestPetstoreDatagenLocal.java:140)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 190 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLocal.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress

Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pets-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pets-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   HAVING count(distinct Customer_address_xa.zip)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up groups that are different only because of the filed: Customer_address_xa.zip</description>
  </fpcrule>
  <fpcrule><id>11</id><category>G</category><type>A</type><subtype>A</subtype><location>1.g.1.[SUM("Order".quantity)]</location>
    <sql>SELECT Customer_address_xa.zip , SUM("Order".quantity)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalPetsToDeliverByAddress(TestPetstoreDatagenLocal.java:190)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 125 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLocal.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus

Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-placed-pet-orders-by-category-order-status.xml.
- Visual diffs at: target/diff-petstore-rules-placed-pet-orders-by-category-order-status.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Order.petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE Pet.category::name = 'Dogs' AND "Order".status = 'placed'</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>TT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) Pet.category::name = 'Dogs' is TRUE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.1.[Pet.category::name = 'Dogs']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT(Pet.category::name = 'Dogs') AND ("Order".status = 'placed')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) Pet.category::name = 'Dogs' is FALSE
  --(T) "Order".status = 'placed' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>S</category><type>T</type><subtype>FT</subtype><location>1.w.2.["Order".status = 'placed']</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'placed') AND (Pet.category::name = 'Dogs')</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'placed' is FALSE
  --(T) Pet.category::name = 'Dogs' is TRUE</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [Pet.category::name = 'Dogs'] ; ["Order".status = 'placed'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (("Order".petId IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs')</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: ["Order".status = 'placed'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order
--The following condition in the WHERE holds:
  --WHERE Pet.category::name = 'Dogs'</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND (Pet.category::name = 'Dogs' AND "Order".status = 'placed')</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>9</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT *
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testPlacedPetOrdersByCategoryAndOrderStatus(TestPetstoreDatagenLocal.java:125)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Check failure on line 176 in st-tdg-test/src/test/java/test4giis/tdrules/tdg/st/test/petstore/TestPetstoreDatagenLocal.java

See this annotation in the file changed.

@github-actions github-actions / test-result-Petstore

TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress

Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
Raw output
org.junit.ComparisonFailure: Strings are different. First diff at line 8 column 42.
failed rules-total-pet-orders-by-address.xml.
- Visual diffs at: target/diff-petstore-rules-total-pet-orders-by-address.xml.html
 expected:<...r" ON Customer.id = [Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = Order.customerId
     LEFT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = Order.customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Order.petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON Order.petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = Order.customerId
     RIGHT JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order.petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = Order.customerId
     INNER JOIN Pet ON Order].petId = Pet.id
    ...> but was:<...r" ON Customer.id = ["Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip</parsedsql>
<fpcrules>
  <fpcrule><id>1</id><category>S</category><type>T</type><subtype>FF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE NOT("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(F) "Order".status = 'approved' is FALSE</description>
  </fpcrule>
  <fpcrule><id>2</id><category>S</category><type>T</type><subtype>TF</subtype><location>1.w.1.[WHERE "Order".status = 'approved']</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>--A set of joined tables such that:
--The WHERE condition fulfills:
  --(T) "Order".status = 'approved' is TRUE</description>
  </fpcrule>
  <fpcrule><id>3</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.1.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Customer_address_xa.fk_xa IS NULL) AND (Customer.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Customer] left [Customer_address_xa] ON Customer.id = Customer_address_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Order, Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Customer_address_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>4</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.2.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     LEFT JOIN "Order" ON Customer.id = "Order".customerId
     LEFT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".customerId IS NULL) AND (Customer.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Customer] left [Order] ON Customer.id = "Order".customerId
  --There exist a set of rows joined from tables Customer, Customer_address_xa
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>5</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.3.[INNER JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ("Order".petId IS NULL) AND (Pet.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Order] right [Pet] ON "Order".petId = Pet.id
  --There exist a set of rows joined from tables Pet, Pet_tags_xa, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Order</description>
  </fpcrule>
  <fpcrule><id>6</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.4.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     INNER JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_tags_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_tags_xa] ON Pet.id = Pet_tags_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_photoUrls_xa, Category Pet_category_xref
  --which does not join to any table in Pet_tags_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>7</id><category>J</category><type>L</type><subtype>O</subtype><location>1.j.5.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     INNER JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     INNER JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     INNER JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE ((Pet_photoUrls_xa.fk_xa IS NULL) AND (Pet.id IS NOT NULL))
     AND ("Order".status = 'approved')
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
  --summary: [Pet] left [Pet_photoUrls_xa] ON Pet.id = Pet_photoUrls_xa.fk_xa
  --There exist a set of rows joined from tables Customer, Customer_address_xa, Order, Pet, Pet_tags_xa, Category Pet_category_xref
  --which does not join to any table in Pet_photoUrls_xa
--The WHERE condition is TRUE.</description>
  </fpcrule>
  <fpcrule><id>8</id><category>J</category><type>R</type><subtype>O</subtype><location>1.j.6.[LEFT JOIN]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     RIGHT JOIN "Order" ON Customer.id = "Order".customerId
     RIGHT JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     RIGHT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE (Pet.category::id IS NULL) AND (Pet_category_xref.id IS NOT NULL)
   GROUP BY Customer_address_xa.zip</sql>
    <description>
--The JOIN tables fulfill:
--COMMENT: Reduced conditions: [WHERE "Order".status = 'approved'] ; 
  --summary: [Pet] right [Category Pet_category_xref] ON Pet.category::id = Pet_category_xref.id
  --There exist some row in table Category Pet_category_xref
  --which does not join to any table in Pet</description>
  </fpcrule>
  <fpcrule><id>9</id><category>G</category><type>G</type><subtype>G</subtype><location>1.g.[GROUP BY Customer_address_xa.zip]</location>
    <sql>SELECT Customer_address_xa.zip , COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order".petId = Pet.id
     LEFT JOIN Pet_tags_xa ON Pet.id = Pet_tags_xa.fk_xa
     LEFT JOIN Pet_photoUrls_xa ON Pet.id = Pet_photoUrls_xa.fk_xa
     LEFT JOIN Category Pet_category_xref ON Pet.category::id = Pet_category_xref.id
   WHERE "Order".status = 'approved'
   GROUP BY Customer_address_xa.zip
   HAVING count(*)&gt;1</sql>
    <description>--A set of joined tables such that:
--The WHERE condition is TRUE.
--There exist a set of rows in the input tables that make up a group with at least two rows</description>
  </fpcrule>
  <fpcrule><id>10</id><category>G</category><type>G</type><subtype>A</subtype><location>1.g.1.[Customer_address_xa.zip]</location>
    <sql>SELECT COUNT(*)
   FROM Customer
     LEFT JOIN Customer_address_xa ON Customer.id = Customer_address_xa.fk_xa
     INNER JOIN "Order" ON Customer.id = "Order".customerId
     INNER JOIN Pet ON "Order"].petId = Pet.id
    ...>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at giis.visualassert.FrameworkAssert.failNotEquals(FrameworkAssert.java:25)
	at giis.visualassert.VisualAssert.assertEquals(VisualAssert.java:13)
	at test4giis.tdrules.tdg.st.test.BaseAll.assertModel(BaseAll.java:205)
	at test4giis.tdrules.tdg.st.test.petstore.TestPetstoreDatagenLocal.testTotalOrdersToDeliverByAddress(TestPetstoreDatagenLocal.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)