Symbolically check if a predicate is True.
(self, name: str, args: list[Point])
| 770 | raise ValueError(f'Not recognize {name}') |
| 771 | |
| 772 | def check(self, name: str, args: list[Point]) -> bool: |
| 773 | """Symbolically check if a predicate is True.""" |
| 774 | if name == 'ncoll': |
| 775 | return self.check_ncoll(args) |
| 776 | if name == 'npara': |
| 777 | return self.check_npara(args) |
| 778 | if name == 'nperp': |
| 779 | return self.check_nperp(args) |
| 780 | if name == 'midp': |
| 781 | return self.check_midp(args) |
| 782 | if name == 'cong': |
| 783 | return self.check_cong(args) |
| 784 | if name == 'perp': |
| 785 | return self.check_perp(args) |
| 786 | if name == 'para': |
| 787 | return self.check_para(args) |
| 788 | if name == 'coll': |
| 789 | return self.check_coll(args) |
| 790 | if name == 'cyclic': |
| 791 | return self.check_cyclic(args) |
| 792 | if name == 'circle': |
| 793 | return self.check_circle(args) |
| 794 | if name == 'aconst': |
| 795 | return self.check_aconst(args) |
| 796 | if name == 'rconst': |
| 797 | return self.check_rconst(args) |
| 798 | if name == 'acompute': |
| 799 | return self.check_acompute(args) |
| 800 | if name == 'rcompute': |
| 801 | return self.check_rcompute(args) |
| 802 | if name in ['eqangle', 'eqangle6']: |
| 803 | if len(args) == 5: |
| 804 | return self.check_aconst(args) |
| 805 | return self.check_eqangle(args) |
| 806 | if name in ['eqratio', 'eqratio6']: |
| 807 | if len(args) == 5: |
| 808 | return self.check_rconst(args) |
| 809 | return self.check_eqratio(args) |
| 810 | if name in ['simtri', 'simtri2', 'simtri*']: |
| 811 | return self.check_simtri(args) |
| 812 | if name in ['contri', 'contri2', 'contri*']: |
| 813 | return self.check_contri(args) |
| 814 | if name == 'sameside': |
| 815 | return self.check_sameside(args) |
| 816 | if name in 'diff': |
| 817 | a, b = args |
| 818 | return not a.num.close(b.num) |
| 819 | if name in ['fixl', 'fixc', 'fixb', 'fixt', 'fixp']: |
| 820 | return self.in_cache(name, args) |
| 821 | if name in ['ind']: |
| 822 | return True |
| 823 | raise ValueError(f'Not recognize {name}') |
| 824 | |
| 825 | def get_lines_thru_all(self, *points: list[gm.Point]) -> list[Line]: |
| 826 | line2count = defaultdict(lambda: 0) |