Newer
Older
RDLProofSystem / src / test / java / rewrite / RewriteInferenceTest.java
@Sakoda2269 Sakoda2269 19 days ago 4 KB 依存関係の推論を実装
//package rewrite;
//import static org.junit.jupiter.api.Assertions.*;
//
//import org.junit.jupiter.api.Test;
//
//import java.util.List;
//
//import inference.rewrite.RewriteInferenceSystem;
//import models.formulas.EquationFormula;
//import models.formulas.Then;
//import models.terms.DependencyTerm;
//import models.terms.PrimedTerm;
//import models.terms.Resource;
//import utils.Utils;
//
//public class RewriteInferenceTest {
//
//	@Test
//	void RewriteInferenceTest1() {
//		Resource totalAmount = new Resource("totalAmount", 1);
//		Resource quantity = new Resource("quantity", 1);
//		Resource unitPrice = new Resource("unitPrice", 1);
//		Resource productId = new Resource("productID", 1);
//		Resource productName = new Resource("productName", 1);
//		Resource soledProductId = new Resource("soledProductId", 1);
//		PrimedTerm totalAmountP = new PrimedTerm(totalAmount);
//		PrimedTerm quantityP = new PrimedTerm(quantity);
//		PrimedTerm unitPriceP = new PrimedTerm(unitPrice);
//		PrimedTerm productIdP = new PrimedTerm(productId);
//		PrimedTerm productNameP = new PrimedTerm(productName);
//		PrimedTerm soledProductIdP = new PrimedTerm(soledProductId);
//		Resource a = new Resource("a", 0);
//		Resource b = new Resource("b", 0);
//		Resource c = new Resource("c", 0);
//		Resource d = new Resource("d", 0);
//		Resource e = new Resource("e", 0);
//		Resource salesId = new Resource("salesId", 1);
//		PrimedTerm salesIdP = new PrimedTerm(salesId);
//		Resource mul = new Resource("mul", 1);
//		Resource mul1= new Resource("mul1", 1);
//		Resource mul2 = new Resource("mul2", 1);
//		
//		// reference1
//		DependencyTerm te1 = new DependencyTerm(unitPrice, productId, soledProductId);
//		DependencyTerm te2 = new DependencyTerm(mul, mul1, quantity, mul2, te1);
//		EquationFormula eq1 = new EquationFormula(totalAmount, te2);
//		
//		//reference2
//		DependencyTerm te3 = new DependencyTerm(unitPriceP, productIdP, soledProductIdP);
//		DependencyTerm te4 = new DependencyTerm(mul, mul1, quantityP, mul2, te3);
//		EquationFormula eq2 = new EquationFormula(totalAmountP, te4);
//		
//		//input1
//		DependencyTerm te5 = new DependencyTerm(soledProductIdP, salesIdP, a);
//		EquationFormula eq3 = new EquationFormula(te5, b);
//		
//		//input2
//		DependencyTerm te6 = new DependencyTerm(quantityP, salesIdP, a);
//		EquationFormula eq4 = new EquationFormula(te6, c);
//		
//		//input3, 4, 5
//		EquationFormula eq5 = new EquationFormula(productIdP, productId);
//		EquationFormula eq6 = new EquationFormula(productNameP, productName);
//		EquationFormula eq7 = new EquationFormula(unitPriceP, unitPrice);
//		
//		// value copy
//		DependencyTerm te7 = new DependencyTerm(totalAmountP, salesIdP, a);
//		DependencyTerm te8 = new DependencyTerm(unitPriceP, productIdP, b);
//		DependencyTerm te9 = new DependencyTerm(mul, mul1, c, mul2, te8);
//		EquationFormula eq8 = new EquationFormula(te7, te9);
//		
//		
//		//----------------------change value-------------------
//		//input6
//		DependencyTerm te10 = new DependencyTerm(unitPriceP, productIdP, d);
//		EquationFormula eq9 = new EquationFormula(te10, e);
//		
//		//input7, 8, 9, 10
//		EquationFormula eq10 = new EquationFormula(productNameP, productName);
//		EquationFormula eq11 = new EquationFormula(salesIdP, salesId);
//		EquationFormula eq12 = new EquationFormula(soledProductIdP, soledProductId);
//		EquationFormula eq13 = new EquationFormula(quantityP, quantity);
//		
//		//value copy
//		EquationFormula eq14 = new EquationFormula(totalAmountP, totalAmount);
//		
//		//value copy conclusion
//		DependencyTerm te11 = new DependencyTerm(totalAmountP, salesIdP, a);
//		DependencyTerm te12 = new DependencyTerm(totalAmount, salesId, a);
//		EquationFormula eq15 = new EquationFormula(te11, te12);
//		
//		//value copy change value
//		RewriteInferenceSystem ris = new RewriteInferenceSystem(List.of(eq9, eq10, eq11, eq12, eq13, eq14), eq15);
//		assertTrue(ris.inference());
//		
//		//reference conclusion
//		DependencyTerm te13 = new DependencyTerm(soledProductId, salesId, a);
//		EquationFormula eq16 = new EquationFormula(d, te13);
//		Then th1 = new Then(eq16, eq15);
//		
//		//reference change value
//		RewriteInferenceSystem ris2 = new RewriteInferenceSystem(List.of(eq1, eq2, eq9, eq10, eq11, eq12, eq13), th1);
//		
//		assertFalse(ris2.inference());
//	}
//	
//}